cuizengshun
作者cuizengshun·2016-12-28 10:38
系统运维工程师·民生银行

PowerVC测试报告-PowerVC使用经验及故障诊断总结

字数 6220阅读 6337评论 0赞 16

在云计算发展如火如荼的今天,从IAAS、PAAS再到SAAS,新技术的发展时时刻刻在给我们的数据中心带来新的惊喜。纵观云基础架构服务的IAAS层面,OpenStack技术是IAAS的中坚力量,它的健康发展维持了IAAS的生态圈良性循环,很多企业基于OpenStack推出了各种解决方案。目前数据中心中的服务器分为两类:一类是x86服务器,一类是小型机。从产品解决方案来看,基于x86平台的解决方案有很多,有我们大家所熟悉的UnitedStack、EasyStack、青云、华为云、Mirantis等等;基于小型机的云平台解决方案也有很多,但绝大多数解决方案是重量级的方案往往比较复杂,配置、运维起来都特别麻烦,因此在Power小型机平台下找到一个简单易用且稳定的IAAS平台解决方案是很多数据中心管理员所关心的问题。那么,PowerVC来了。

1.PowerVC管理虚拟机

1.1. 捕获虚拟机镜像

PowerVC部署虚拟的方式采用了OpenStack的方法,即使用了Glance来管理镜像,因此在部署新的虚拟机之前需要先手工创建镜像。这个方法与传统的使用NIM Server来进行操作系统安装有所不同,它使用的是底层的卷级别的拷贝技术。(备注:如果使用存储盘用于rootvg,则需要存储有快照的license)
手工先在PowerVM环境下创建一个虚拟机出来,并安装好AIX操作系统。在完成这个准备工作后,为了实现在虚拟机创建完成后对主机名、网络等信息的自动设置,还需要对这个AIX操作系统有些配置。有两种方案:一种是activation engine (AE),另一种是cloud-init。cloud-init是一个开源工具,它可以在启动的时候定制你的Iaas平台中虚拟机的包,它可以帮助你重新定义你的虚拟机而不需要重新安装,只需要加入对应的配置项即可。在本文档中使用cloud-init进行测试。
针对新部署的模板机是AIX的环境,在该操作系统上安装cloud-init的包。cloud-init的依赖包如下,请提前安装好。

The following packages are needed to install the python package.
http://www.bullfreeware.com/download/bin/1439/bzip2-1.0.6-2.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1441/db-4.8.24-4.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1639/expat-2.1.0-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2046/gmp-5.1.3-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1587/libffi-3.0.11-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2076/openssl-1.0.1g-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1908/zlib-1.2.5-6.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2013/gettext-0.17-8.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1446/gdbm-1.10-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2024/libiconv-1.14-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2091/bash-4.2-9.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1918/info-5.0-2.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1464/readline-6.2-3.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1486/ncurses-5.9-3.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1742/sqlite-3.7.15.2-2.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2064/python-2.7.6-1.aix6.1.ppc.rpm
http://www.oss4aix.org/download/RPMS/fdupes/fdupes-1.51-1.aix5.1.ppc.rpm

The following packages are need to install cloudinit.
http://www.bullfreeware.com/download/bin/2065/python-devel-2.7.6-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2117/python-xml-0.8.4-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2101/python-boto-2.34.0-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2099/python-argparse-1.2.1-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2102/python-cheetah-2.4.4-2.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2103/python-configobj-5.0.5-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2106/python-jsonpointer-1.0.c1ec3df-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2105/python-jsonpatch-1.8-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2108/python-oauth-1.0.1-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2112/python-pyserial-2.7-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1858/python-prettytable-0.7.2-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2114/python-requests-2.4.3-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/1632/libyaml-0.1.4-1.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/2192/python-PyYAML-3.11-2.aix6.1.ppc.rpm
http://www.bullfreeware.com/download/bin/1903/python-six-1.3.0-1.aix6.1.noarch.rpm
http://www.bullfreeware.com/download/bin/2115/python-setuptools-0.9.8-2.aix6.1.noarch.rpm
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/cloudinit/cloud-init-0.7.5-4.1.aix6.1.ppc.rpm

待依赖包安装好后,便可以安装cloud-init这个rpm包。下载Link:
ftp://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/cloudinit

待安装完成cloud-init后,修改配置文件/opt/freeware/etc/cloud/cloud.cfg,去掉"-update_hostname"这一行。
最后把新安装的模板机关机,就可以进行在PowerVC的界面中进行镜像捕获了。

  • 在进行镜像捕获时,需要先让PowerVC对模板虚拟机进行纳管,纳管界面如下:
  • 可以看到主机下面的所有虚拟机,然后有选择性的进行纳管。
  • 虚拟机纳管后,便可以看到对应的虚拟机。
  • 当虚拟机被纳管后,点击上面的“捕获”,便可以把这个虚拟机做成镜像。
  • 可以看到已经创建好的镜像。

1.2.部署新的虚拟机

  • 在部署虚拟机时,需要先选中要使用的镜像。并点上面的部署按钮。
  • 可以选择虚拟机部署在哪台物理机上,并调整CPU/内存的使用量。
  • 通过HMC可以看到虚拟机已经被自动创建完成。
  • 虚拟机已经创建好。
  • IP地址已经分配好,操作系统可以登录。

1.3.给虚拟机分配存储卷

  • 可以给虚拟机进行分配存储卷。选中要操作的虚拟机。
  • 可以选择要创建的卷的大小以及存储来源。
  • 存储卷已经自动创建好,另外Zone也自动划分好。
  • 操作系统上需要执行cfgmgr扫描一下磁盘。

1.4.启动虚拟机

可以通过PowerVC对虚拟机进行启动。

1.5.停止虚拟机

可以通过PowerVC对虚拟机进行停止。

2.PowerVC故障诊断

PowerVC收集日志的命令为powervc-diag,该命令类似AIX下的snap命令,可以把所有相关的日志进行收集。

同时由于PowerVC是基于OpenStack开发的,因此很多日志其实都是和OpenStack相关的,它的日志目录在/var/log下,在该目录下有OpenStack的各个组件相关的LOG。

3.PowerVC使用总结及思考

想到OpenStack,很多人脑海中感觉这也是个重量级的解决方案,多个模块之间的复杂数据流向以及认证关系,在配置安装时经常会遇到各种各样的问题。那么PowerVC如何呢。架构复杂程度如何?部署是否简单呢?升级是否容易呢?

首先考虑架构的复杂度。X86平台下的云平台解决方案,它管理了数十个物理机、上千个虚拟机,虚拟化功能要靠KVM实现,网络功能要靠OVS或者SDN来实现,存储往往使用分布式存储Ceph来实现,这对计算节点、网络节点、存储节点的负载压力就有了较大的要求,因此就考虑部署多个计算节点或者网络节点来实现负载均衡,这样会带来两个问题,一个是多个节点之间的通信以及协调问题,另一个是高可用实现的问题。这两个问题往往是在实际生产中部署时比较复杂的点。那么分析PowerVC的架构,它虽然也用了OpenStack的架构,但其实它是有很多sponsor:它的虚拟化是通过PowerVM来实现的,网络是通过SEA来实现的,存储没有使用Ceph而是使用了Cinder来调用第三方存储的driver,管理物理机也是调用的HMC,这些措施的一个很明显的好处就是PowerVC可以仅仅安装在一台redhat上!由于把负载和任务分给了其它的组建,PowerVC便不再需要配置到多个节点上,这样就可以把OpenStack的组件部署到了一台机器上,从而大大简化了配置以及后期维护的复杂程度。

再次考虑部署的复杂度。开源版本的OpenStack在安装时,需要人工download各种软件包,并手工修改配置文件,包括创建用户、配置数据库、配置相互关系等,配置较为复杂。目前很多企业在推出自己的OpenStack解决方案时,也都在做安装配置简化的工作。有些解决方案是把OpenStack的各个组件做成虚拟机,在部署时直接把已经灌好的镜像拷贝部署;也有些解决方案是把OpenStack放在Docker容器中,以容器的方式来部署OpenStack。分析PowerVC的部署方案,由于上面提到PowerVC只需要部署在一台机器上,因此它的部署方案是把相关的组件做成一堆RPM包,直接一个命令install就可以完成静默式安装了,在安装完成后,不需要进行任何手工的配置,所有数据库用户、所有keystone的认证关系便全部都搞定了。

最后考虑升级的复杂度。OpenStack自从2010年10月第一个版本问世以来,平均每6个月更新一个版本,那么所有基于OpenStack的方案进行升级时能否平滑的进行升级对于实际的生产环境也是一个很重要的问题。对于X86架构下的OpenStack解决方案,在升级时需要考虑升级后的兼容性问题,但在PowerVC下似乎变得简单些,由于PowerVC与计算和网络没有强依赖关系,因此从理论上升级PowerVC会更简单且安全些。

那么,它的不足之处呢?
任何事情都是有两面性的,由于PowerVC把计算、网络、存储等模块都分配了其它组件来实现,虽然在部署、运维中会大大降低了复杂程度,但纵观整个架构,PowerVC更像是用了OpenStack方法论的调度管理并加上自动化工具,从某种意义上来说,倒挺像VMware中的VC的角色。同时,另外一个担心之处在于,随着OpenStack的技术发展,在今年10月最新推出的OpenStack N(Newton)版本中,引入了两个重要的新功能:Ironic裸机管理服务和Magnum容器编排集群管理。从某种意义上来讲,IAAS和PAAS的关系发展越来越密切,在OpenStack的发展趋势中会更多的引入Docker相关的支持,那么,PowerVC在OpenStack版本的发展中如何发展呢,由于PowerVC并没有使用裸机管理、容器等技术,它只是用了OpenStack的几大核心组件,因此在未来发展中,PowerVC能否用到更多的新技术呢,我们拭目以待。但就目前情况而言,它仍是Power平台环境中一个不错的选择。

编者注:

在本次PowerVC的测试以及文档编写过程中,非常感谢中国民生银行的甘荃、陈晓峰、赵永杰、毕伟光、赵子健、王向虎、林子强等同事的大力支持。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

16

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

PowerVC专栏
本专栏主要分享PwerVM和PowerVC相关方面的架构、实施、运维等经验,以及企业私有云建设的相关经验及总结。

作者其他文章

相关文章

相关问题

相关资料

X社区推广