首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

自食狗粮 - 通过RDO管理一个异构集群

自食狗粮 - 通过RDO管理一个异构集群

背景在工作的过程中,开发人员会根据需要自己在团队拥有的若干台服务器上自行建立虚拟机供自己使用。 由于没有统一的管理,会出现各种问题:
  • 对于团队经理来说,无法随时了解当前的资产(如服务器)的状态和利用率,无法及时的判断是否 需要进行硬件的扩容等。
  • 对于团队的IT负责人,无法随时了解服务器及其中的虚拟机的各项指标,难以进行集中式的管理。
  • 对于开发人员来说,每个人都需要通过命令行工具自己手动创建自己所需的虚拟机,过程繁琐, 影响工作效率。
  • 由于所有的开发人员都拥有root权限和带外管理的工具(如支持IPMI标准的IMM/AMM/FSP)密码, 一个人的误操作(如重启服务器)有可能影响其他人的工作。
  • 团队中的各项公共的服务(如HTTP服务器、Pipeline)由不同的人维护,由于个人使用的技术不同,各项服务的构建方式都不同,维护起来麻烦。

2. 目标
目前我所在组的mission之一是推动RDO社区在ppc64le架构上面的开发工作,从而提供给PowerLinux及OpenPOWER客户或合作伙伴一种便利的方式搭建ppc64le架构上面的IaaS层。针对目前工作中的现状,跟老板商量之后团队决定利用现有服务器搭建一个小的私有云,能达到以下一些目标
  • 算是在一个Production环境实测RDO在x86+Power架构上的互操作性
  • 管理目前团队目前的硬件设备(服务器),能监测硬件设备的状态
  • 通过浏览器或者命令行工具自动的创建和管理虚拟机
  • 提供不同的操作系统和不同硬件架构的虚拟机
  • 为开发人员提供测试新技术方式
  • 尽量使用开源的软件和技术构建
换句话说,我们打算吃自己的狗粮了。

3. 架构
3.1 硬件与网络资源
目前团队拥有的硬件设备有:
  • 数据中心1中5台x86_64架构的服务器
  • 数据中心2中2台Power8服务器
所有的服务器都只有一块网卡。
此外,由于安全策略的限制,可供虚拟机使用的内网IP地址不能访问外部网络。
团队拥有的设备的规划如下:

                                                        
            

机器代号


            
            

架构


            
            

位置


            
            

基础架构云角色


            
            

X1


            
            

x86_64


            
            

数据中心1


            
            

控制节点、网络节点、HTTP/S


            

SH代理服务器


            
            

X2


            
            

x86_64


            
            

数据中心1


            
            

计算节点、


            
            

X3


            
            

x86_64


            
            

数据中心1


            
            

计算节点、


            
            

X4


            
            

x86_64


            
            

数据中心1


            
            

计算节点、


            
            

X5


            
            

x86_64


            
            

数据中心1


            
            

暂不加入Openstack


            
            

P1


            
            

Power8


            
            

数据中心2


            
            

计算节点


            
            

P2


            
            

Power8


            
            

数据中心2


            
            

暂不加入Openstack


            

各台服务器的物理连接情况如图3-1  


3.2 部署Openstack
Power Linux提供了跟x86架构的Linux几乎一样的体验,加上使用Libvirt(或其衍生的工具,比如virsh)管理PowerKVM和管理x86平 台的KVM也一样,实际上部署这样一个异构(x86_64 + Power架构)的Openstack的过程跟一个普通的x86_64架构过程很接近。一个熟悉Openstack部署的IT管理员可以很快的上手完成相关工作。

3.2.1 准备
部署Openstack各项服务之前需要做如下准备
  • 安装操作系统(由于我们的工作平台就是CentOS,所以很自然选择Cent OS 7.2,Power平台选择ppc64le架构的pCent OS 7.2)
  • 配置Openstack Mitaka版本的yum源(对于Power服务器,需要准备好部分rpm包之后配置本地源)
  • 在X1机器上安装packstack工具
3.2.2 部署和配置Openstack服务
通过packstack生成配置输入文件(answer file),经过修改确认之后再使用packstack工具部署Openstack服务。 其中需要注意的点包括
  • 由于只有一块物理网卡,配置时管理网络和数据网络无法分离
  • 网络虚拟化技术选择Open vSwitch(因Cent OS 7的内核版本低于LinuxBridge所需的版本,mac    vtap相关配置不熟悉)
  • 网络类型选择VxLAN (也可以选择GRE)
  • 此阶段只安装Packstack默认选择的服务(Nova, Cinder, Glance, Neutron, Ceilometer, Keystone, Horizon)
  • Nova服务中虚拟CPU的分配比例为16,虚拟内存比例为1.2,虚拟硬盘比例为1,将来可能会做出调整





3.2.3 进行相关配置
由于公司内部安全策略要求,虚拟机使用的Floating IP不能访问企业外部网络,虚拟机不能直接进行更新软件包、下载软件等操作。为此,在X2服务器上安装Squid软件作为HTTP服务器。为使用SSH代理,在各台虚拟机上配合proxytunnel工具使用。
为了方便开发者使用,将以上配置集成到自制的系统镜像之中。此外,由于镜像中关于网络的配置不能保留,准备好包含配置DNS服务器、yum源、用户名密码等内容的cloudinit脚本作为例子供组内成员使用。
到这里,供团队使用的异构Openstack云就搭建完成了。目前team正在和RDO社区密切合作推动ppc64le架构下相关dependency package的delivery,有兴趣做早期尝试的朋友可以联系笔者获取测试包。
返回列表