zhufeng518 发表于 2016-1-9 09:31:18

Openstack Havana Dashboard测试和使用

  基本尽量把各个项目的bug列表和Blueprint过一遍,加上相关的链接,各位开发者如果感兴趣,可以去修复。给Openstack贡献代码, 其实对个人的好处是很多的,能力和视野都会提高很多,在国内,如果你是某个项目的Core,那么你基本就是去各大外企都不是问题,成为Core,并不是想 象中那么高难度,尤其一些新项目。对于新手,如何提交第一个patch给Openstack,其实可以参考文章提到的各种bug和功能,这样会更快成为一 个Commiter.
  
   

登陆

  用户注册的功能,这个并不难,可以自己开发。不过目前是不支持用户找回密码,这个是需要keystone的支持https://bugs.launchpad.net/keystone/+bug/884451 ,Dashboard才能实现取回密码。

Setting
  

用户设置
  基本所有的系统,都是右上角 “setting” 进行用户的设置

  对于Dashboard来说,分为3栏,项目,管理员和Settings,
  不过目前来说,用户设置里的语言和时区的设置,只是保存在cokie里,没没有存放在数据库里。默认语言是根据浏览器的语言来决定。用户的个性化的 设置,都是无法保存。因为目前keystone无法存放这些数据。你也无法修改用户的邮箱,所以也就导致你无法实现取回密码功能。https://bugs.launchpad.net/horizon/+bug/884492
  如果希望修改默认时区,你需要修改 /etc/openstack-dashboard/local_settings 文件,不过我尝试修改,重启Apache,并不生效,还没确认这是否是bug。

#TIME_ZONE = "UTC"
TIME_ZONE = "Asia/Chongqing"
  
  例如虚拟机的数量太多,需要分页,多少条一页,这个目前还是无法实现。https://blueprints.launchpad.net/horizon/+spec/v3-pagination-support
  据说这次香港峰会,会集中讨论这个问题,因为各个组件都有类似的需求。

修改密码
  

  在最新的H版本,用户已经可以修改自己的密码,修改完密码后,会强行退出再登陆,因为token需要update。很难想象,这样简单的功能,居然是到H版本才实现。
  密码强度要求,这个其实可以在前端去实现,不过密码过期的功能,目前是没有,这个也是需要keystone提供的功能。https://blueprints.launchpad.net/keystone/+spec/user-password-expiration
  用户操作日志也是没有的,用户的所有操作,都有消息提醒,不过这些消息,都没有记录下来,对于Dashboard来说,他是不知道记录在哪里,目前 看来应该是Ceilometer该做的事情。有一个stacktach的项目,可以将notification持久化,并且可以在web页面上进行搜索, 或者使用cli做分析。

Admin(管理员权限)
  这个tab,只有管理员权限的用户才能访问。

System Panel(系统面板)

Overview(概况)
  Overview:这里会列出所有的系统的虚拟机使用情况。包括删除的虚拟机。可以下载Excel表格,其实简单的计量功能。对于起步阶段,应该是可以满足计费的需求。目前我下载的CSV,中文是乱码,这也是一个bug:https://bugs.launchpad.net/horizon/+bug/1226910
  项目名字,其实就是租户,在Openstack里,有点混乱,不同的版本,有时候是租户,有时候是project,没有接触过共有云的人,对租户的概念接触比较少,不好理解。你就把租户或项目理解成部门或者企业,租户下才有用户,用户才能设置密码。


Resouce Usage(资源使用情况)
  这个是H版本新增加的功能,显示系统资源的使用情况。这是通过Ceilometer实现的功能,目前Ceilometer在计量方面做的工作,还是不错的,不过在监控上,还是比较弱。估计这也是为啥目前Redhat在RDO项目里集成Nagios的原因。

  这里就使用的租户的概念,显示磁盘,网络的使用情况。而且只是30天内,无法自己定义范围,等待日后完善吧。

  网络的使用情况,上面都是Neutron的影子

  Stats这个标签是重点,可以让你查看某个时间段的使用情况。等日后产生数据,再好好查看一下。


Hypervisors(虚拟机管理器)
  这也是H版本新增加的功能,显示物理机器的资源情况,cpu,内存和硬盘,虚拟机数量

  不过这里其实显示的结果是有点问题。
  VCPU(total)其实是物理资源,就是cpu的核数*2 (超线程),这样的描述让人误会。提交了一个bug https://bugs.launchpad.net/horizon/+bug/1202965
  你可以使用的VCPU:nova会把物理的cpu的核数,按照默认16:1进行虚拟化,这个比例你可以自己设置。但是目前通过api,你是无法获取虚拟化的比例,导致无法正确显示。
  内存和硬盘,情况都是一样,默认内存是1.5:1,硬盘,好像是1:1
  另外还有一个小问题,就是host无法点击进入详细页面,显示更多信息,例如在这台机器的虚拟机列表。

Instances(云主机)
  这里就是列出所有的虚拟机,并且可以对虚拟机进行操作,例如迁移,删除等。这个地方的信息比Overview详细很多。


Volumes(云硬盘)
  显示用户使用和创建的卷。H版本增加的Volume Types的功能,就是假设你有两种的存储,高速的SSD,和普通的SAS存储,你通过volume Type区分,用户创建卷的时候进行选择。
  管理员必须添加一个volume type,用户才能创建卷。

  创建出来的volume type,如何和后端的存储进行绑定,我还没看明白,至少Dashboard目前是没有提供这个功能。
  卷的列表里,是可以对卷进行删除操作。


Flavors(云主机类型)
  这个其实看上去比较简单,其实非常复杂。目前默认有5个Flavor,你可以编辑Flavor,创建Flavor.

  目前支持指定某个Flavor给租户使用。当用户要求的虚拟机不在Flavor里,那么你就可以使用这种方式,为特定的租户创建一个Flavor。 目前AWS,国内的青云,应该都是类似这种方式。Public=true,表示所有租户都可以使用,Public=False 表示只有某些租户可以使用。

  普通用户是不能自己创建Flavor,也不能自己定义虚拟机的配置。不过对于私有云来说,其实是可以通过扩展一下nova的API就可以实现。这个同事已经验证,类似青云那种设计,用户可以自己定义虚拟机配置。
  Flavor extra Specs:这个地方看上去不起眼,不过很多功能和需求,都是可以通过这个地方满足,例如你希望对虚拟机的cpu资源限制,网络带宽限制,磁盘IO限制,都可以通过这里设置参数。

  目前添加这些参数,还是非常复杂,这个Blueprint是专门解决这个问题,Intel网卡的pci_passthrough的功能,都是通过这里进行设置 https://blueprints.launchpad.net/horizon/+spec/flavor-extra-specs-templates

Images(镜像)
  就是镜像的管理,可以上传镜像,你需要知道你上传的image是什么格式。Glance支持很多格式,但是对于企业来说,其实用不了那么多格式,你可以进行配置,具体 http://openstack.redhat.com/forum/discussion/554/havana-horizon-no-formats-available-for-images/p1
  可以使用一个ubuntu做好的image:链接填写下面地址就可以。
  http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

  我上传了一个Ubuntu 12.04的官方提供的image。这个image的格式是QCOW2,你需要指定,否则会出错。
  Public, 就是表示该Image可以所有租户都可以看见。对于Image来说,用户自己也是可以上传image,设置是否只是自己访问,还是所有租户都可以看见。
  Protected:如果打钩,那么你在列表里就无法删除,可以避免误删除。如果需要删除,通过编辑,去掉打钩,就可以删除。
  镜像对硬盘和内存的最小需求,其实是为了日后创建虚拟机的时候,如果Flavor无法满足Image的需求的情况下,就会隐藏该Flavor。https://bugs.launchpad.net/horizon/+bug/1116122  这个功能在H版本,应该是有机会实现,作为一个Bug修复。
  可以从本地上传一个操作系统的ISO

  我尝试上传4G的ISO,百兆的网络,火狐下,居然一点问题都没有,上传成功。
  使用ISO来安装操作系统,你需要创建一个单独的Flavor,或者修改已有的Flavor,让Ephemeral disk不为0,你才能进行安装。

  设置Protected,就没有more的删除按钮。
  目前在image的详细页面里,image的上传时间UTC时间,而不是你设置的时区的时间。这个有待改进的地方。

Networks(网络)
  这部分是我一直没搞明白的,借助龚永生的文档,终于搞定。这篇文档,所有打算玩Neutron,都应该好好看看。http://www.ustack.com/blog/neutron_intro/  网络部分,还有很多细节,后面逐步完善。
  这里管理员创建的网络,有点类似数据中心的接入,联通线路,电信线路。对于租户来说,可以选择不同的线路出去。不过目前路由器的出口,只能是1条线路。
  我实验有一个网络 10.1.198.0/24 专门给虚拟机的Floating IP使用,网关是10.1.198.1。如果你希望你的网络和机器的网络是一个网段,可以参考文档 http://openstack.redhat.com/Neutron_with_existing_external_network  不过我没试验成功。

  记住要勾选External Network, 点击创建。
  进入网络的详细页面,

  extnet的详细资料,黄色的部分,应该好好理解,我是采用RDO all in One安装,所以网络是local,

  创建Subnet,所谓Subnet,我的理解就是Floating IP 地址池,分配公网IP给虚拟机。

  Subnet Detail,这里是不需要设置。
  添加后

  

Routers(路由)
  管理员不需要创建路由器,可以查看到所有租户创建的路由器,并且进行删除。

Defaults(默认值)
  这是系统的默认设置,目前就只有Quotas的默认设置,你可以修改这些默认设置,这样非常方便。

  通过 Update Defaults,可以修改所有的Quota的默认设置,如果你希望对用户不做限制,那么就设置成-1.
  作为管理员,还有一个需求,可以订制安全组的默认设置,这个功能,下一个版本应该是可以加入。

System Info(系统信息)
  系统的基本信息
  对于Openstack,有几个概念,让大家很头疼,需要搞明白

  来源:http://kimizhang.wordpress.com/2013/08/26/openstack-zoning-regionavailability-zonehost-aggregate/
  Region:这个概念来自亚马逊,可以理解成一个地区,一个Region,其实是可以对应多个数据中心,这几个数据中心,距离应该是100公里左右。
  Availability zones(AZ):AZ,其实我的理解就是Region的某个数据中心,或者一个数据中心里,不同供电的机房单元类似的概念。
  Cell:当你的在一个数据中心大规模部署的时候,节点数量到了一定程度,那么就会有服务产生瓶颈,那么如何扩展呢?每个Cell有自己的消息队列 和数据库服务,不过所有的Cell,都是统一的Nova API接口。就是一个Region下可以有多个Cell,每个Cell里,有自己的消息队列,数据库。
  Host Aggregates:这个主要用途是设置调度,让某个image或者某个Flavor,创建在某些服务器上。
  http://russellbryantnet.wordpress.com/2013/05/21/availability-zones-and-host-aggregates-in-openstack-compute-nova/
  http://www.mirantis.com/blog/segregation-in-grizzly-availability-zones-versus-host-aggregates/
  Service

  
  Compute Service

  Availability Zones

  Host Aggregates

  Netwrok Agent


Identity Panel(认证面板)

Domains(域)
  H版本增加了Domain的功能,不过Dashboard应该仅仅是显示,还没搞明白Domain的用途。
  

  编辑

  Domain Groups


Projects(项目)
  Project,相当于租户,系统内置两个租户

  为了试验,我创建一个test租户

  由于我现在还没有创建用户,所以别的tab不需要设置

Users(用户)
  系统会创建很多服务的用户

  我们这里创建一个用户:chenshake, 添加到project:test


Groups(组)
  你可以创建组,可以往组里添加用户,不过这个组,我是没搞明白如何使用。


Roles(角色)
  这是系统内置的Roles,添加roles,仅仅是添加一个名字,没有任何地方可以设置。


Project(普通用户)
  这里我不是使用管理员的账号,而是使用我文档上面创建的用户:chenshake 登陆进行完成。下面我就不按照菜单的顺序来介绍,而是按照一个虚拟机的创建流程来截图。

创建网络

  Create Network

  

  直接创建就可以,不需要设置subnet  detail


创建路由器


  

Set Gateway


  结果如图

  
  路由详情

  添加Interface
  Subnet,就会显示刚才创建的网络,点击创建

  结果
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap60_thumb.jpg

查看网络拓扑
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap67_thumb.jpg
  

设置安全组
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap61_thumb.jpg
  默认的安全组,是拒绝所有的访问,
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap62_thumb.jpg
  我们需要打开22端口和允许ping。
  22端口
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap64_thumb.jpg
  允许ping
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap65_thumb.jpg
  
  看看结果
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap63_thumb.jpg

创建秘钥
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap66_thumb.jpg
  下载到windows本地。

申请Floating Ip
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap73_thumb.jpg
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap74_thumb.jpg
  结果
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap75_thumb.jpg

创建虚拟机
  Flavor选择的时候,需要注意,不能选择tiny,因为我的Ubuntu的镜像要求比tiny大。
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap71_thumb.jpg
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap69_thumb.jpg
  选择网络
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap70_thumb.jpg
  把网络添加完,就可以创建虚拟机
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap72_thumb.jpg
  分配floating Ip
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap76_thumb.jpg
  选择刚才申请的IP
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap77_thumb.jpg
  大概过1,2分钟
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap78_thumb.jpg
  这个时候,你就可以ping通虚拟机和ssh到虚拟机上面。
页: [1]
查看完整版本: Openstack Havana Dashboard测试和使用