【编者按】在之前
报道中,我们有简单的介绍过OpenStack新版本Icehouse,提到:“在OpenStack Icehouse版本正式发布之前的6个月里,有来自全球超过120家公司与机构的员工参与其中,代码贡献者超过1200名,比2013年的Havana版本提高了32%。”如此多机构参加长时间的参加,Icehouse版究竟有什么值得关注的地方,这里我们看陈沙克分享的博文。
以“ 云计算大数据 推动智慧中国 ”为主题的 第六届中国云计算大会 将于5月20-23日在北京国家会议中心隆重举办。产业观察、技术培训、主题论坛、行业研讨,内容丰富,干货十足。 目前还有优惠,需要购买的朋友,请抓住这最后的机会,点击报名!
以下为博文:
OpenStack的Icehouse,4月17日发布,目前Horizon的所有Blueprint都已经发布。Icehouse,对于Horizon来说,大概完成了70%的工作量,很多重要的功能,都需要等待下一个版本去实现,如果全部都实现,其实还是非常酷的。
OpenStack目前已经有10个项目,要对每个项目深入了解,其实都是需要花费大量的时间和精力,Horizon项目是比较简单,也是我最关注的,我整理一下。也希望国内的朋友一起努力,把其他项目的Blueprint都整理一下,方便大家对OpenStack的新版本的理解。
基本把所有的Bueprint (BP)都过了一遍,应该算是看懂一大半以上吧。
BP看起来比较闷,就先八卦一下。
我特别喜欢蒋清野这句话:开放源代码作为一种新的商业模式,并不比传统的闭源模式具有更高的道德水准。同理,在道德层面上对不同的开放源代码实践进行评判也是不合适的。
目前Horizon项目是Redhat和HP在主导。以前HPcloud,自己开发了一个Dashboard,目前已经放弃,专用Horizon来对外提供服务。Redhat自己的Openstack版本,Dashboard也不会自己开发,会使用Horizon。所以他们两家投入大量的力气来修改Horizon。Redhat为了让Horizon的UI符合Redhat企业软件的需求,也就投入大量人手去改善Horizon的UI。
Contents (跳转目录)
这个功能看上去很酷,租户可以设置自己的路由器规则,不过我在router没有找到任何地方可以设置。详细看了一下Blueprint,原来这个功能,是需要Neutron BigSwitch plugin。你用ovs是没戏。
现在Openstack上很多功能,都是厂商增加的,很大程度都会和硬件捆绑。
这是swift相关的功能,当你创建一个容器的时候,你可以设置他的用户的访问权限ACL。这个功能,其实Rackspace和AWS都是有,尤其AWS上的ACL控制,功能是非常强悍的。
这个功能比较酷,国内关心这个的,实在太多。以前Dashboard里提供的迁移,其实是冷迁移,现在已经可以热迁移,不过我还没测试。
Openstack上现在的本地存储是支持,冷迁移和热迁移,只是如果是本地存储,迁移很慢而已。演示是比较酷的。
这也是swift的功能,其实你在dashboard里看到swift上的文件夹,都是假的,对象存储是没有目录的概念。
Dashboard要看的比较好看,就需要有各种的图来显示相关数据。这里提供了柱状图和饼图。以后大家要创建图,就可以直接使用。
Horizon项目为了让所有的代码都符合License,付出很大的代价,凡是不满足License要求的都不用。
如果我们希望编辑一些属性,我们需要点击edit的按钮,跳出一个页面进行编辑,这个显得有点不太友好。有些情况下,可以直接在显示的页面里,直接进行编辑。
以前Horizon对输入的数据是不进行前端的校验,经常造成提交后报错。最典型的一个案例,就是如果你的falvor小于你的镜像要求,那么就会出错,如何在前端去避免这个错误呢。
引入这个Blueprint后,前端就可以做的更加丰富,用户体验更好。不过目前页面里,还没很好使用这个功能,希望下一个版本,能全部实现。
RBAC,基于角色的访问控制(Role-Based Access Control),这个功能,对于一个租户下,多个用户,进行权限划分,就非常重要。
假设A用户是管理员,b用户只有查看的权限,C用户可以创建虚拟机,维护自己的虚拟机。这些企业比较需要的功能,都需要RBAC来实现。甚至某个用户只能看网络,存储。
所以Openstack所有的组件都需要RBAC,这样才算比较完善,目前只有几个组件支持,后续的完善需要到J版本。如果你想相信了解这块,可以去Rackspace看看,他们已经在Web端实现。
这个应该是和JS的代码要求。写代码和Js的朋友可以深入研究一下。
引入插件的机制,让别的项目可以利用使用这个机制,扩展Dashboard。日后Openstack的其他项目,估计都会通过插件的方式,添加到Horizon里。
现在比较流行所谓的APP Store,我想比较类似,如果你启用某个插件,就会具备某个功能。
这应该也是让表格的数据显示更加友好,和上面可以直接编辑表格数据比较类似。
这个功能很酷,引入的向导和工作流。例如虚拟机创建流程和网络创建过程。
这是一个很好的开始。虚拟机的创建流程需要到J版本,才能实现。
这个应该是代码清理,说明真的很多人真的在干活啊。
Dashboard里,你可以通过console访问linux的虚拟机,如果是windows的虚拟机,那么以前是没啥办法的,如果这个windows的虚拟机的RDP端口没有打开,那你就彻底没戏。
通过这个,你可以通过console访问到虚拟机,基本啥都可以做,类似你坐在机器前面,接显示器在干活。
现在卷,已经可以扩大,这个功能,已经在Dashboard里实现。
当你虚拟机多了时候,页面如何显示和搜索,就是一个问题。增加了一个过滤条件,可以基于project来搜索。
这里其实还有点小问题,无法搜索全部。让同事提交一个bug。
这个倒是很好理解,看图
这个Blueprint,非常大,是Redhat主导,让Dashboard的风格,更加符合企业的使用习惯。
看起来非常爽,至少我是这样的感觉。
这个功能我和同事验证了一遍,以后对Dashboard做减法,就更加方便。什么是Panel?
1级菜单:project,admin,setting
二级,admin下的:system Panel和Identity Panel
3级:就是system panel下的菜单。你可以通过配置,让这些菜单是否显示。
/opt/stack/horizon/openstack_dashboard/enabled
里面提供了一个例子
cp _60_admin_remove_panel.py.example _60_admin_remove_panel.py
重启apache,就会发现System info的那个菜单没有了。
镜像服务的RBAC,和RBAC的功能,都是HP提交的。
现在的显示器分辨率大家差异还是不小。以前的做法就用大家最常用的1366×768来设计页面,那么在大显示器显示,效果并不太好。
这个功能我的理解是根据显示器分辨率来显示,改善显示的效果。不同分辨率 效果图
以前用户登录后创建虚拟机失败,很大一部分原因就是选择Flavor和镜像要求不一致,硬盘或者内存不满足需求。
如何解决这个问题呢?那就是你上传镜像的时候,设置好最小内存和最小磁盘,同时在创建虚拟机的流程里,加上各种判断。
填写完这两个参数,你就会发现虚拟机创建流程,当你选择image以后,Flavor会调整,并且小于需求的Flavor无法选择。
看图就明白,这其实是对上面的BP一个完善
把以前需要命令配置的在Dashboard里实现,这些都是管理员设置的。
Dashboard是根据keystone的endpoint来决定使用api的版本的。Horizon支持Cinder的最先版本的API。
支持不同的饼图,
这个就和测试,devstack有关。
以前只能管理员看到全部的使用情况,用户可以看到自己每天的使用情况,就是也有一个Overview的页面
就是创建完的heat 的stack,现在可以update。
这个和测试有关,AngularJS相关的测试,比较有学问,没搞懂。
VPN服务相关。可以对创建的vpn进行修改。
虚拟机创建的过程中,默认会根据你选择的Flavor,把虚拟机的硬盘的根分区调整到最大。不过有些用户并不希望这样,他们希望自己手工区分区。
假设一个镜像他的磁盘是20G,那么他选择一个40G的flavor,选择手动分区,那么你创建完的虚拟机,磁盘是20G,你需要手工的方式把剩下的磁盘20G,进行分区,添加到系统里。
这个和swift有关
经常有人问:如何限制虚拟机的磁盘IO和网络带宽,方法很多,不过最简单的就是通过Flavor。
你可以设置某个flavor的cpu,网络速度和磁盘IO。这个功能,大家要好好测试。
swift有关,可以update 对象的信息。
代码清理工作
前端的,就是让左边的导航,可以收缩起来,更加方便。
现在最新的Django,应该是1.7,J版本,就会升级。Horizon项目更新还是很及时的。基本保证所有的组件都是最新的。
这其实是windows镜像的功能,把虚拟机创建随机生成的密码,可以进行加密。这个做法和AWS是一样的。
感觉着更多是一个bug fix。
原文链接:
Openstack Horizon Icehouse Blueprint介绍(责编/仲浩)