CompanynameCompanysloganhere火龙果·整理uml.org.cnOpenstack私有云平台搭建及KVM虚拟化技术交流火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cnOpenStack是一个开源的基础架构即服务(IaaS)云计算平台,可以为公有云和私有云服务提供云计算基础架构平台。OpenStack使用的开发语言是Python,采用Apache许可证发布该项目源代码。OpenStack支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等),通过调用各个的底层Hypervisor的API来实现对客户机的创建和关闭等操作。OpenStack项目最初由Rackspace和NASA(美国国家航空航天局)共同发起,从2010年10月开始,大约每半年正式发布一个版本,目前最新版本为Liberty。2火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn1、安装rhel-server-7.0-x86_64操作系统(最小化安装即可);2、配置局域网,如以公司网络环境为例配置网络为192.168.2.85;配置主机名为openstack.XXX.com,并添加hosts解析:192.168.2.85openstack.XXX.comopenstack3、创建一个LVM卷;fdisk/dev/sdapartproblepvcreate/dev/sda3vgcreatecinder-volumes/dev/sda3注:如果无法使用pvcreate命令,则需配置yum仓库,执行yuminstalllvm2安装环境准备火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn4、配置本地软件仓库(原来的源都可以不要);[epel]name=epelbaseurl=file:///var/ftp//pub/EPELenable=1gpgcheck=0[openstack-juno]name=openstackjunobaseurl=file:///var/ftp//pub/openstack-junoenable=1gpgcheck=0[base]name=rhel7baserepobaseurl=file:///var/ftp//pub/rhelenable=1gpgcheck=05、更新仓库信息;yumcleanallyummakecache4火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn1、安装packstack包;yuminstall-yopenstack-packstack2、创建answers文件packstack--allinon--provision-demo=n--nagios-install=n注:若安装过程出错,则packstack--answer-file=packstack-answers-XXXXX.txt3、重启计算机5安装火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn4、创建ifcfg-enp0s3、ifcfg-br-ex网络配置文件vi/etc/sysconfig/network-scripts/ifcfg-enp0s3DEVICE=enp0s3ONBOOT=yesTYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-exvi/etc/sysconfig/network-scripts/ifcfg-br-exDEVICE=br-exTYPE=OVSBridgeDEVICETYPE=ovsBOOTPROTO=staticIPADDR=192.168.2.85NETMASK=255.255.255.0GATEWAY=192.168.2.1DNS1=221.3.131.116火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn5、创建br-ex,关联enp0s3到br-exovs桥ovs-vsctladd-portbr-exenp0s3;systemctlrestartnetwork76、创建用户demo(密码为:demo)创建demo租户keystonetenant-create--namedemo--descriptionDemoTenant创建demo用户keystoneuser-create--namedemo--tenantdemo--pass=demo--email=demo@example.com火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn6、创建外部网络8火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn7、创建子网9火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn8、创建镜像10火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn9、创建用户网络cpkeystonerc_adminkeystonerc_demo修改keystonerc_demoexportOS_USERNAME=demoexportOS_TENANT_NAME=demoexportOS_PASSWORD=demoexportOS_AUTH_URL=火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn12neutronnet-createdemo-netneutronsubnet-createdemo-net--namedemo-subnet--gateway192.168.1.1192.168.1.0/24neutronrouter-createdemo-routerneutronrouter-interface-adddemo-routerdemo-subnetneutronrouter-gateway-setdemo-routerwlan火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn10、启动实例13火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cnOpenstack主要组件介绍火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn1Dashboard提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn2Nova在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn3Neutron确保为其它OpenStack服务提供网络连接即服务,比如OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn4Keystone为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。5Glance火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn6Swift通过一个RESTful,基于HTTP的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn7Cinder为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。8Ceilometer火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cnKeystone(身份认证)Nova(计算)Neutron(网络)Glance(镜像)Cinder(块存储)Horizon(UI界面)Ceilometer(计量)Swift(对象存储)Heat(部署编排)火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cnKVM虚拟化技术火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cnKVM(KernelVirtualMachine)虚拟机是基于linux内核虚拟化,自linux2.6.20之后就集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如intelVT技术或者AMDV技术),是基于硬件的完全虚拟化。查看CPU是否支持虚拟化:grep-o-E'svm|vmx'/proc/cpuinfo火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn安装虚拟化平台软件yumgrouplistyum-ygroupinstallVirtualizationVirtualizationClientVirtualizationPlatform启动libvirtd服务systemctlstartlibvirtd.servicesystemctlenablelibvirtd.service火龙果·整理uml.org.cnCompanynameCompanysloganhere火龙果·整理uml.org.cn创建网桥viifcfg-enp0s3BOOTPROTO=noneDEVICE=enp0s3HWADDR=08:00:27:13:79:13NM_CONTROLLED=noONBOOT=yesBRIDGE=br1BOOTPROTO=staticDEVICE=br1TYPE=BridgeNM_CONTROLLED=noIPADDR=192.168.2.XNETMASK=255.255.255.0GATEWAY=192.168.2.1DNS1=221.3.131.11配置完毕后执行:systemctlstopNetworkManager