OpenStack部署运维方案
OpenStack云计算平台搭建与管理OpenStack云计算平台运维

云计算基础平台搭建与管理OpenStack云计算平台运维步骤2:创建网络需要注意地是,在弹出地"创建网络"向导,"供应商网络类型"选择了Flat类型后,会多出来一个"物理网络"文本框,填入与控制节点地"/etc/neutron/plugins/ml2/ml2_conf.ini"文件"flat_works = provider"一致地内容,此处为"provider"。
步骤3:创建子网这里地网络地址是外网物理网段,网关IP设置是前面课程VMware设置地NAT网关。
步骤4:设置DHCP在这个界面,"分配地址池"填写地第一个IP地址是起始IP地址,第二个IP地址是结束IP地址,以逗号隔开。
1步骤1:创建实例类型。
在创建云主机地CPU,内存与磁盘等信息时,需要根据自己地硬件配置来设定,比如当前地计算节点内存为4GB时,这里地内存建议不要超过1GB,因为这样可以保证OpentStack有3GB地运行内存。
在实际工作,我们可以预先创建多种实例类型来满足不同虚拟机地需要。
步骤2:创建云主机实例在 OpenStack 地术语,一个实例就是一台虚拟机。
它从操作系统镜像启动,并且配置有特定数量地CPU,RAM 与磁盘空间,以及其它参数,例如网络或安全设置。
在创建实例对话框,填写地实例数量如果大于1地话会一次性建立多个实例,如果内存不够地话建议不要设置太多。
步骤2:创建云主机实例在 OpenStack 地术语,一个实例就是一台虚拟机。
它从操作系统镜像启动,并且配置有特定数量地CPU,RAM 与磁盘空间,以及其它参数,例如网络或安全设置。
在创建实例对话框,填写地实例数量如果大于1地话会一次性建立多个实例,如果内存不够地话建议不要设置太多。
2.在创建实例类型时,分配地硬件资源需要根据节点地硬件配置来设定。
《2024年基于OpenStack构建私有云计算平台》范文

《基于OpenStack构建私有云计算平台》篇一一、引言随着信息技术的飞速发展,云计算已成为现代企业进行信息化建设的重要手段。
私有云计算平台作为企业内外部资源整合、业务创新的重要工具,其构建与运营已成为企业信息化建设的重点。
本文旨在探讨如何基于OpenStack构建一个高质量的私有云计算平台。
二、OpenStack简介OpenStack是一个开源的云计算管理平台项目,提供了实施大量云计算所需要的所有基础设施支持,包括网络、服务器、存储以及用户自助服务等核心功能。
由于其高度的灵活性和可扩展性,OpenStack已成为私有云计算平台构建的首选工具。
三、构建私有云计算平台的步骤1. 需求分析:根据企业的业务需求和资源状况,进行详细的业务需求分析和资源评估。
这包括确定计算、存储和网络等资源的需求,以及确定云平台的运营模式和服务等级协议等。
2. 环境准备:根据需求分析结果,准备硬件和软件环境。
这包括选择适当的服务器、存储设备和网络设备,以及安装必要的操作系统和数据库等软件。
3. 部署OpenStack:在准备好环境后,开始部署OpenStack。
这包括安装和配置OpenStack的各个组件,如计算、存储、网络和管理等。
4. 定制开发:根据企业的业务需求,对OpenStack进行定制开发。
这包括开发适合企业业务需求的云服务、API接口和用户界面等。
5. 测试与优化:在完成部署和定制开发后,进行测试和优化。
这包括对云平台的性能、安全性和稳定性进行测试,以及根据测试结果进行优化和调整。
6. 运维与监控:在云平台正式运营后,进行运维和监控。
这包括对云平台的日常维护、故障处理和性能监控等。
四、关键技术与挑战在构建私有云计算平台的过程中,需要掌握的关键技术包括虚拟化技术、网络技术、存储技术和云计算管理技术等。
同时,还需要面对一些挑战,如如何保证云平台的安全性和稳定性、如何提高云平台的性能和可用性等。
为了解决这些挑战,需要采用先进的技术和工具,如安全防护技术、负载均衡技术和自动化运维工具等。
OpenStack详解

云主机类型主要是指一些虚拟硬件设施的模板,它通过定义内存、硬盘及CPU等参数大小来限制用户对硬件设施的使用,防止因为用户申请过多的资源。Openstack允许开发者或管理员自定义云主机类型,它提供了命令行工具和Web图形界面两种方式支持云主机类型的自定义。Openstack默认提供了常用的五种云主机类型,如图3-1所示。开发者可根据实际需求自定义云主机的大小。
(1)制作操作系统镜像:创建操作系统镜像要求本地环境支持KVM以及安装vncviewer组件。首先创建一个镜像盘,如"qemu -img create -f raw windows_xp.img 10G",该命令创建了一个容量为10G、raw格式的镜像盘;接着创建KVM镜像虚拟机,通过下面的命令启动系统安装W及建立引导启动系统,kvm -m 512 –cdrom windows_xp.iso –drivefile=windows_xp.img,if=scsi,index= 0-boot d –net nic -net user -nogrephic -vnc:0;最后使用vnc viewer登录引导界面安装系统;
图3-1 OpenStack中云主机类型
0x
1.虛拟机创建流程分析
后台创建虚拟机的过程实际上是为用户创建系统环境的过程,后台根据用户选择的云主机大小和系统环境模板为用户创建一个虚拟机,虚拟机提供了用户所需的操作系统和专业的软件环境。虚拟机创建过程如图4-1所示。
图4-1虚拟机创建过程
(1)当API服务器从User处接收到一个创建虚拟机的请求时,API服务器将会通过Keystone对User的权限进行验证,如果验证通过,就把送个虚拟机创建请求发送给(云控制器);
(2)主机权衡
权值是一个经过计算的数值,用来表示宿主主机与请求的符合度。经过主机过滤筛选出符合条件的计算节点集合Hosts,对Hosts集合中的每个主机进行主机权衡,权衡过程如图4-5所示。针对每个主机调用代价函数_weight_object()进行计算,将得到的值weight进行如下处理:
2020技能大赛-云计算=第三套赛卷(第一天)

2020年全国职业院校技能大赛改革试点赛高职组“云计算”竞赛赛卷第一场次题目:OpenStack平台部署与运维某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。
系统架构如图1所示,IP地址规划如表1所示。
PC图1系统架构图表1 IP地址规划说明:1.表中的x 为考位号;2.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;3.考试所需要的资源包与附件均在考位信息表中给出;4.竞赛过程中,请不要修改服务器系统的密码,否则导致竞赛系统不能正常检测评分,责任由参赛者自己承担。
任务1 基础运维任务(5分)1.根据表1中的IP地址规划,设置各服务器节点的IP地址,确保网络正常通信,设置云服务器1主机名为Controller,云服务器2主机名为Compute,并修改hosts文件将IP地址映射为主机名,关闭防火墙并设置为开机不启动,设置SELinux为Permissive 模式。
2.将提供的CentOS-7-x86_64-DVD-1804.iso和OpenStackQueens.iso光盘镜像上传到Controller服务器的/root目录下,然后在/opt目录下分别创建centos目录和openstack目录,并将镜像文件CentOS-7-x86_64-DVD-1804.iso挂载到centos目录下,将镜像文件OpenStackQueens.iso挂载到openstack目录下。
3.在Controller节点上利用centos目录中的软件包安装vsftp服务器,设置开机自启动,并使用ftp提供yum仓库服务,分别设置controller节点和compute节点的yum源文件ftp.repo,其中ftp服务器地址使用IP形式。
4.在Controller节点上部署chrony服务器,允许其他节点同步时间,启动服务并设置为开机启动;并在compute节点上指定controller节点为上游NTP服务器,重启服务并设为开机启动。
HCIPOpenStack实验环境搭建指南

HCIPOpenStack实验环境搭建指南华为认证CLOUD系列教程HCIP-Cloud Computing-OpenStack 实验环境搭建指南1前言简介本指南的目的在于指导地区部、供应商、HALP购买设备、安装实验环境以及实验过程中需要用到的软件等,最终组建成拓扑图,基于HCIP-Cloud Computing-OpenStack实验手册完成HCIP-Cloud Computing-OpenStack的相应实验。
实验环境说明本实验环境面向准备HCIP-Cloud Computing-OpenStack考试的OpenStack运维工程师。
本实验环境搭建指南以一台服务器安装一套OpenStack实验环镜为例进行介绍,每套实验环境适用于一名学员同时上机操作。
参考本实验环境搭建指南的“附录1:安装并使用多套OpenStack实验环境”可在一台服务器上安装并使用多套OpenStack实验环镜。
注:若使用个人PC搭建OpenStack实验环境,请关注后续华为认证官网发布的《HCIP-Cloud Computing-OpenStack V1.0实验环境搭建指南(PC 版)》。
设备介绍HCIP-Cloud Computing-OpenStack实验需服务器以及相关软件,推荐要求如下:实验拓扑组网说明本实验环境在服务器上安装Ubuntu操作系统,并在Ubuntu上安装VirtualBox软件。
通过自动化安装脚本在VirtualBox中部署OpenStack实验环境。
每套OpenStack实验环境包括一个Controller节点和一个Compute节点。
实验环境搭建流程图目录前言 (1)简介 (1)实验环境说明 (1)实验环境搭建 (3)1 BIOS开启虚拟化开关 (6)1.1 实验说明 (6)1.2 前提条件 (6)1.3 操作步骤 (6)2 安装Ubuntu操作系统 (11)2.1 前提条件 (11)2.2 操作步骤 (11)3 安装VirtualBox (18)3.1 前提条件 (18)3.2 操作步骤 (18)4 安装SSH,拷贝文件 (21)4.1 实验说明 (21)4.2 操作步骤 (21)5 (可选)安装远程登录工具 (28)5.1 实验说明 (28)5.2 操作步骤 (28)6 安装OpenStack实验环境 (36)6.1 实验说明 (36)6.2 前提条件 (36)6.3 操作步骤 (36)附录1:安装并使用多套OpenStack实验环境 (41)实验说明 (41)操作步骤 (41)1 BIOS开启虚拟化开关1.1 实验说明开始安装OpenStack环境安装前,需要先在服务器BIOS中开启支持虚拟化开关,否则后续运行OpenStack自动化安装脚本将出现报错提示。
openstack生产集群部署

openstack生产集群部署OpenStack是一种开源的云计算软件平台,它允许用户在私有云环境中构建和管理弹性和可扩展的云基础设施。
在生产环境中进行OpenStack 集群部署是一个复杂的过程,需要仔细规划和准备。
以下是一个关于OpenStack生产集群部署的详细解释,超过1200字。
第一步是规划和准备。
在开始OpenStack集群部署之前,您需要先进行规划并准备好所需的硬件和软件环境。
您需要评估您的需求,并选择合适的硬件来支持您的OpenStack集群。
这包括服务器、存储设备和网络设备。
您还需要选择一个适合您的操作系统来运行OpenStack,如CentOS、Ubuntu等。
同时,您需要确保硬件和软件环境的可靠性和稳定性。
第二步是安装和配置OpenStack服务。
在部署之前,您需要选择一种OpenStack的发行版来使用,如Red Hat OpenStack、Canonical OpenStack等。
在选择发行版后,您需要按照其提供的文档和指南来安装和配置OpenStack服务。
这包括设置控制节点和计算节点、配置网络和存储等。
您可能还需要安装和配置一些额外的服务和工具来增强OpenStack 的功能和性能,如容器管理工具Docker、大数据处理工具Hadoop等。
第三步是测试和调优。
在完成OpenStack集群的安装和配置后,您需要进行测试和调优来确保其稳定运行和性能。
您可以使用一些测试工具和负载生成器来模拟实际使用情况,并进行性能测试。
根据测试结果,您可以调整和优化OpenStack的配置和参数来提高其性能和可靠性。
此外,您还可以监控OpenStack集群的运行状态和资源使用情况,并根据需要进行调整和优化。
第四步是部署和管理应用程序。
一旦您成功地部署和配置了OpenStack集群,您可以开始部署和管理您的应用程序。
OpenStack提供了一些服务和工具来帮助您部署和管理应用程序,如虚拟机管理工具Nova、容器管理工具Magnum等。
OpenStack——云平台使用

OpenStack——云平台使⽤⼀、如何创建云主机使⽤双节点部署,控制节点(controller):192.168.16.10,计算节点(compute):192.168.16.20(⼀)、创建镜像1、在控制节点中找到qcow2镜像[root@controller ~]# cd /opt/iaas/images/[root@controller images]# lsCentOS_6.5_x86_64_XD.qcow2 CentOS_7.2_x86_64_XD.qcow2 MySQL_5.6_XD.qcow22、通过glance命令,将qcow2镜像上传到平台[root@controller images]# source /etc/keystone/admin-openrc.sh[root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2(⼆)、创建⽹络1、创建外部⽹络选择菜单栏:项⽬ -> ⽹络 -> ⽹络。
单击“创建⽹络”,来创建虚拟机⽹络。
创建⽹络名称为net-gre,配置⼦⽹名称为net-subnet,⽹络地址为192.168.20.0/24,⽹关为192.168.20.2。
再配置DHCP地址池,激活DHCP,配置DNS为114.114.114.114。
点击“已创建”创建⽹络。
选择菜单栏:管理员 -> 系统 -> ⽹络。
对已创建的net-gre⽹络,点击 “编辑⽹络”,在弹框中勾选“外部⽹络”。
2、创建内部⽹络选择菜单栏:项⽬ -> ⽹络 -> ⽹络。
单击“创建⽹络”,来创建虚拟机⽹络。
创建⽹络名称为int-gre,配置⼦⽹名称为int-subnet,⽹络地址为10.10.0.0/24,⽹关为10.10.0.1。
openstack的安装和部署

openstack的安装和部署1.什么是云计算1:什么是云计算?云计算是通过虚拟化技术去实现的,它是⼀种按量付费的模式!2:为什么要⽤云计算?⼩公司:1年,20⼈+,500w,招⼀个运维,15k,(10台*1.5w,托管IDC机房,8k/年,带宽 100M,5个公⽹ip, 10k/⽉), 买10台云主机,600*10=6000⼤公司:举⾏活动,加集群,把闲置时间出租,超卖(kvm)16G,kvm,64G(ksm),⾦牌⽤户(200w+/⽉)3:云计算有哪些功能?虚拟机的管理平台(计费)kvm:1000宿主机(agent),虚拟出2w虚拟机,虚拟机的详细情况:硬件资源,ip情况统计?虚拟机管理平台:每台虚拟机的管理,都⽤数据库来统计4:云计算的服务类型IAAS 基础设施即服务 ECS云主机⾃⼰部署环境,⾃⼰管理代码和数据infrastructure as an servicePAAS(docker) 平台即服务提供软件的运⾏环境,java ,python,go, c#,nodejs ⾃⼰管理代码和数据platfrom as an serviceSAAS 软件即服务企业邮箱,cdn,rdssoftware as an serviceopenstack实现的是云计算IAAS,开源的云计算平台,apache 2.0,阿⾥云(飞天云平台)2.openstack (soa架构)云平台(keystone认证服务,glance镜像服务,nova计算服务,neutron⽹络服务,cinder存储服务,horizon web界⾯)每个服务:数据库,消息队列,memcached缓存,时间同步⾸页/index.html秒杀/miaosha/index.html会员:/plus/index.html登录:/login/indexnginx+php +mysql(500张表)SOA(拆业务,把每⼀个功能都拆成⼀个独⽴的web服务,每⼀个独⽴的web服务,⾄少拥有⼀个集群)微服务架构:亿级⽤户开源的微服框架阿⾥开源的dubbospring boot⾃动化代码上线 Jenkins + gitlab ci⾃动化代码质量检查 sonarqube官⽹:openstack 版本A-Z 开头3.虚拟机规划controller:内存3G,cpu开启虚拟化,ip:10.0.0.11compute01:内存1G,cpu开启虚拟化(必开),ip:10.0.0.31host解析,[root@controller ~]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.11 controller10.0.0.31 computer1[root@controller ~]# scp -rp /etc/hosts 10.0.0.31 /etc/hosts4.配置yum源1.挂载光盘[root@computer1 ~]# mount /dev/cdrom /mntmount: /dev/sr0 is write-protected, mounting read-only[root@controller ~]# mount /dev/cdrom /mntmount: /dev/sr0 is write-protected, mounting read-only#查看(如果有内容代表挂载成功)[root@computer1 ~]# ll /mnttotal 686-rw-rw-r-- 1 root root 14 Nov 26 2018 CentOS_BuildTagdrwxr-xr-x 3 root root 2048 Nov 26 2018 EFI-rw-rw-r-- 1 root root 227 Aug 30 2017 EULA-rw-rw-r-- 1 root root 18009 Dec 10 2015 GPLdrwxr-xr-x 3 root root 2048 Nov 26 2018 imagesdrwxr-xr-x 2 root root 2048 Nov 26 2018 isolinuxdrwxr-xr-x 2 root root 2048 Nov 26 2018 LiveOSdrwxrwxr-x 2 root root 663552 Nov 26 2018 Packagesdrwxrwxr-x 2 root root 4096 Nov 26 2018 repodata-rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7-rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7-r--r--r-- 1 root root 2883 Nov 26 2018 TRANS.TBL[root@controller ~]# scp -rp openstack_rpm.tar.gz 10.0.0.31:/optrz 上传openstack_rpm.tar.gz到/opt,并解压⽣成repo配置⽂件root@controller opt]# vim/etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0[openstack]name=openstackbaseurl=file:///opt/repogpgcheck=0root@controller opt]#echo 'mount /dev/cdrom /mnt' >>/etc/rc.localroot@controller opt]# chmod +x /etc/rc.d/rc.local[root@controller opt]# scp -rp /etc/yum.repos.d/local.repo 10.0.0.31:/etc/yum.repos.d/local.repo [root@computer1 opt]# vim /etc/yum.repos.d/local.repo[root@computer1 opt]# echo 'mount /dev/cdrom /mnt' >>/etc/rc.local[root@computer1 opt]# chmod +x /etc/rc.d/rc.local#注意:两台都要配2.安装基础服务在所有节点上执⾏:a:时间同步[root@controller opt]# yum install -y chrony[root@computer1 opt]# yum install -y chrony#编辑控制节点配置⽂件[root@controller opt]# vim /etc/chrony.conf1.将 server iburst 改成server iburst另三⾏删掉2.将 #allow 192.168.0.0/1改成allow 10.0.0.0/24#重启服务[root@controller opt]# vim /etc/chrony.confsystemctl restart chronyd#编辑计算节点[root@computer1 opt]# vim /etc/chrony.conf将 server iburst 改成server 10.0.0.11 iburst另三⾏删掉[root@computer1 opt]# systemctl restart chronyd5.安装openstack客户端和openstack-selinux1.在所有节点上执⾏[root@control ~]# yum install python-openstackclient openstack-selinux -y[root@computer1 ~]# yum install python-openstackclient openstack-selinux -y查看官⽅⽂档6.安装数据库以及安全初始化2.仅控制节点执⾏:[root@control ~]# yum install mariadb mariadb-server python2-PyMySQL -y在官⽅⽂档上有https:///mitaka/zh_CN/install-guide-obs/environment-sql-database.html3.创建并编辑 /etc/f.d/f[root@control ~]# cat /etc/f.d/f[mysqld]bind-address = 10.0.0.11 # 值为控制节点的管理⽹络IP地址以使得其它节点可以通过管理⽹络访问数据库default-storage-engine = innodb #默认存储引擎innodb_file_per_table #为每个表独⽴表空间⽂件max_connections = 4096 #最⼤连接数collation-server = utf8_general_ci # 默认字符集character-set-server = utf84.启动mariadb 并加⼊开机⾃启[root@control ~]# systemctl start mariadb[root@control ~]# systemctl enable mariadb5. 为了保证数据库服务的安全性,运⾏[root@control ~]# mysql_secure_installation ⼀定要执⾏要不然后⾯时间同步会有坑脚本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenStack 部署运维方案目录1.OpenStack 简介 (3)2.Openstack私有云平台概况 (4)3.OpenStack 部署方案 (6)4.OpenStack 各组件配置 (8)5.OpenStack 底层依赖软件版本、配置以及性能调优 (14)6.运维经验 (17)本文介绍了基于OpenStack 开发的云计算管理平台,以及在开发、运营、维护过程中遇到的问题和经验分享。
作为大型互联网公司,IT 基础架构需要支撑包括生产、开发、测试、管理等多方面的需要,而且需求和请求的变化几乎每天都存在,需要内部的IT 基础架构能够足够灵活和健壮来满足各部门和团队的实际需要。
1.OpenStack 简介OpenStack 是一个开源的IaaS 实现,它由一些相互关联的子项目组成,主要包括计算、存储、网络。
OpenStack 兼容一部分AWS 接口,同时为了提供更强大的功能,也提供OpenStack 风格的接口(RESTFul API)。
和其他开源IaaS 相比,架构上松耦合、高可扩展、分布式、纯Python 实现,以及友好活跃的社区使其大受欢迎。
OpenStack 的主要子项目有:• Compute(Nova)提供计算虚拟化服务,是OpenStack 的核心,负责管理和创建虚拟机。
它被设计成方便扩展,支持多种虚拟化技术,并且可以部署在标准硬件上。
• Object Storage(Swift)提供对象存储服务,是一个分布式,可扩展,多副本的存储系统。
• Block Storage(Cinder),提供块存储服务,为OpenStack 的虚拟机提供持久的块级存储设备。
支持多种存储后端,包括Ceph,EMC 等。
• Networking(Neutron)提供网络虚拟化服务,是一个可拔插,可扩展,API 驱动的服务。
• Dashboard 提供了一个图形控制台服务,让用户方便地访问,使用和维护OpenStack 中的资源。
• Image(glance)提供镜像服务,它旨在发现,注册和交付虚拟机磁盘和镜像。
支持多种后端。
• Telemetry(Ceilometer)提供用量统计服务,通过它可以方便地实现OpenStack 计费功能。
• Orchestration(Heat)整合了OpenStack 中的众多组件,类似AWS 的CloudFormation,让用户能够通过模板来管理资源。
• Database(Trove)基于OpenStack 构建的database-as-a-service。
网易私有云使用了Nova、Glance、Keystone、Neutron 这4 个组件。
2.Openstack私有云平台概况图1.网易私有云架构网易私有云平台由网易杭州研究院负责研发,主要提供基础设施资源、数据存储处理、应用开发部署、运维管理等功能以满足公司产品测试/上线的需求。
图1 展示了网易私有云平台的整体架构。
整个私有云平台可分为三大类服务:核心基础设施服务(IaaS)、基础平台服务(PaaS)以及运维管理支撑服务,目前一共包括了:云主机(虚拟机)、云网络、云硬盘、对象存储、对象缓存、关系型数据库、分布式数据库、全文检索、消息队列、视频转码、负载均衡、容器引擎、云计费、云监控、管理平台等15 个服务。
网易私有云平台充分利用云计算开源的最新成果,我们基于OpenStack 社区的keystone、glance、nova、neutron 组件研发部署了云主机和云网络服务。
为了与网易私有云平台其他服务(云硬盘、云监控、云计费等)深度整合以及满足公司产品使用和运维管理的特定需求,我们团队在社区OpenStack 版本的基础上独立研发了包括:云主机资源质量保障(计算、存储、网络QoS)、镜像分块存储、云主机心跳上报、flat-dhcp 模式下租户内网隔离等20 多个新功能。
同时,我们团队在日常运维OpenStack 以及升级社区新版本中,也总结了一些部署、运维规范以及升级经验。
两年多来,网易私有云平台OpenStack 团队的研发秉承开源、开放的理念,始终遵循"来源社区,回馈社区"的原则。
在免费享受OpenStack 社区不断研发新功能以及修复bug 的同时,我们团队也积极向社区做自己的贡献,从而帮助OpenStack 社区的发展壮大。
私有云平台为网易公司多达30 个互联网和游戏产品提供服务。
从应用的效果来看,基于OpenStack 研发的网易私有云平台已经达到了以下目标:1. 提高了公司基础设施资源利用率,从而降低了硬件成本。
以物理服务器CPU 利用率为例,私有云平台将CPU 平均利用率从不到10% 提升到50%。
2. 提高了基础设施资源管理与运维自动化水平,从而降低了运维成本。
借助于Web 自助式的资源申请和分配方式以及云平台自动部署服务,系统运维人员减少了50%。
3. 提高了基础设施资源使用弹性,从而增强了产品业务波动的适应能力。
利用虚拟化技术将物理基础设施做成虚拟资源池,通过有效的容量规划以及按需使用,私有云平台可以很好适应产品突发业务。
3.OpenStack 部署方案在具体的生产环境中,我们为了兼顾性能和可靠性,keystone 后端使用Mysql 存储用户信息,使用memcache 存放token。
为了减少对keystone 的访问压力,所有服务(nova,glance,neutron)的keystoneclient 均配置使用memcache 作为token 的缓存。
由于网易私有云需要部署在多个机房之中,每个机房之间在地理位置上自然隔离,这对上层的应用来说是天然的容灾方法。
另外,为了满足私有云的功能和运维需求,网易私有云需要同时支持两种网络模式:nova-network 和neutron。
针对这些需求,我们提出了一个面向企业级的多区域部署方案,如图2 所示。
从整体上看,多个区域之间的部署相对独立,但可通过内网实现互通,每个区域中包括了一个完整的OpenStack 部署,所以可以使用独立的镜像服务和独立的网络模式,例如区域 A 使用nova-network,区域B 使用neutron,互不影响,另外为了实现用户的单点登录,区域之间共享了keystone,区域的划分依据主要是网络模式和地理位置。
图2.多区域部署方法和典型OpenStack 部署将硬件划分为计算节点和控制节点不同的是,为了充分利用硬件资源,我们努力把部署设计成对称的,即任意一个节点下线对整体服务不会照成影响。
因此我们将硬件分为两类:计算节点,控制计算节点。
计算节点部署nova-network,nova-compute,nova-api-metadata,nova-api-os-compute。
控制计算节点除了计算节点的服务外还部署了nova-scheduler,nova-novncproxy,nova-consoleauth,glance-api,glance-registry 和keystone,如图3 所示。
对外提供API 的服务有nova-api-os-compute,nova-novncproxy ,glance-api,keystone。
这类服务的特点是无状态,可以方便地横向扩展,故此类服务均部署在负载均衡HAProxy 之后,并且使用Keepalived 做高可用。
为了保证服务质量和便于维护,我们没有使用nova-api,而是分为nova-api-os-compute 和nova-api-metadata 分别管理。
外部依赖方面,网易私有云部署了高可用RabbitMQ 集群和主备MySQL,以及memcache 集群。
图3.计算节点,控制计算节点网络规划方面,网易私有云主要使用nova-network 的FlatDHCPManager+multi-host 网络模式,并划分了多个Vlan,分别用于虚拟机fixed-ip 网络、内网浮动IP 网络、外网网络。
运维上使用网易自主研发的运维平台做监控和报警,功能类似Nagios,但是更加强大。
其中较重要的监控报警包括日志监控和进程监控。
日志监控保证服务发生异常时第一时间发现,进程监控保证服务正常运行。
另外网易私有云使用Puppet 做自动部署,以及使用StackTach 帮助定位bug。
4.OpenStack 各组件配置OpenStack Havana 的配置项成百上千,大部分配置项都是可以使用默认值的,否则光是理解这么多的配置项的含义就足以让运维人员崩溃,尤其是对那些并不熟悉源码的运维人员来说更是如此。
下文将列举若干网易私有云中较关键的配置项,并解释它们如何影响到服务的功能,安全性,以及性能等问题。
Nova 关键配置my_ip = 内网地址此项是用来生成宿主机上的nova metadata api 请求转发iptables 规则,如果配置不当,会导致虚拟机内部无法通过169.254.169.254 这个IP 获取ec2/OpenStack metadata 信息;生成的iptable 规则形如:-A nova-network-PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT \--to-destination ${my_ip}:8775它另外的用途是虚拟机在resize、cold migrate 等操作时,与目的端宿主机进行数据通信。
该项的默认值为宿主机的外网IP 地址,建议改为内网地址以避免潜在的安全风险。
metadata_listen = 内网地址此项是nova-api-metadata 服务监听的IP 地址,可以从上面的iptables 规则里面看出它与my_ip 的配置项有一定的关联,保持一致是最明智的选择。
novncproxy_base_url = vncserver_proxyclient_address = ${private_ip_of_compute_host}vncserver_listen = ${private_ip_of_compute_host}novncproxy_host = ${private_ip_of_host}我们仅在部分节点上部署novncproxy 进程,并把这些进程加入到HAProxy 服务中实现novnc 代理进程的高可用,多个HAProxy 进程使用Keepalived 实施HAProxy 的高可用,对外只需要暴露Keepalived 管理的虚拟IP 地址即可:这种部署方式好处是:1)实现novnc 代理服务的高可用2)不会暴露云平台相关节点的外网地址3)易于novnc 代理服务的扩容但也有不足:1)虚拟机都监听在其所在的计算节点的内网IP 地址,一旦虚拟机与宿主机的网络隔离出现问题,会导致所有虚拟机的VNC 地址接口暴露出去2)在线迁移时会遇到问题,因为VNC 监听的内网IP 在目的端计算节点是不存在的,不过这个问题nova 社区已经在解决了,相信很快就会合入J 版本。