CompanynameCompanysloganhereOnpestack私有云平台搭建及KVM虚拟化技术交流CompanynameCompanysloganhereOpenStack是一个开源的基础架构即服务(IaaS)云计算平台,可以为公有云和私有云服务提供云计算基础架构平台。OpenStack使用的开发语言是Python,采用Apache许可证发布该项目源代码。OpenStack支持多种不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等),通过调用各个的底层Hypervisor的API来实现对客户机的创建和关闭等操作。OpenStack项目最初由Rackspace和NASA(美国国家航空航天局)共同发起,从2010年10月开始,大约每半年正式发布一个版本,目前最新版本为Liberty。2CompanynameCompanysloganhere1、安装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安装环境准备CompanynameCompanysloganhere4、配置本地软件仓库(原来的源都可以不要);[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、更新仓库信息;yumcleanallyummakecache4CompanynameCompanysloganhere1、安装packstack包;yuminstall-yopenstack-packstack2、创建answers文件packstack--allinon--provision-demo=n--nagios-install=n注:若安装过程出错,则packstack--answer-file=packstack-answers-XXXXX.txt3、重启计算机5安装CompanynameCompanysloganhere4、创建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.116CompanynameCompanysloganhere5、创建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.comCompanynameCompanysloganhere6、创建外部网络8CompanynameCompanysloganhere7、创建子网9CompanynameCompanysloganhere8、创建镜像10CompanynameCompanysloganhere9、创建用户网络cpkeystonerc_adminkeystonerc_demo修改keystonerc_demoexportOS_USERNAME=demoexportOS_TENANT_NAME=demoexportOS_PASSWORD=demoexportOS_AUTH_URL=、启动实例13CompanynameCompanysloganhereOpenstack主要组件介绍CompanynameCompanysloganhere1Dashboard提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。CompanynameCompanysloganhere2Nova在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。CompanynameCompanysloganhere3Neutron确保为其它OpenStack服务提供网络连接即服务,比如OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。CompanynameCompanysloganhere4Keystone为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。CompanynameCompanysloganhere存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。5GlanceCompanynameCompanysloganhere6Swift通过一个RESTful,基于HTTP的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。CompanynameCompanysloganhere7Cinder为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。CompanynameCompanysloganhere为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。8CeilometerCompanynameCompanysloganhereKeystone(身份认证)Nova(计算)Neutron(网络)Glance(镜像)Cinder(块存储)Horizon(UI界面)Ceilometer(计量)Swift(对象存储)Heat(部署编排)CompanynameCompanysloganhereKVM虚拟化技术CompanynameCompanysloganhereKVM(KernelVirtualMachine)虚拟机是基于linux内核虚拟化,自linux2.6.20之后就集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如intelVT技术或者AMDV技术),是基于硬件的完全虚拟化。查看CPU是否支持虚拟化:grep-o-E'svm|vmx'/proc/cpuinfoCompanynameCompanysloganhere安装虚拟化平台软件yumgrouplistyum-ygroupinstallVirtualizationVirtualizationClientVirtualizationPlatform启动libvirtd服务systemctlstartlibvirtd.servicesystemctlenablelibvirtd.serviceCompanynameCompanysloganhere创建网桥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配置完毕后执行:systemctlstopNetworkManagersystemctldisableNetworkManagerservicenetworkrestartCompanynameCompanysloganherevirt-install是一个命令行工具,它能够为KVM、Xen或其它支持libvritAPI的hypervisor创建虚拟机并完成GuestOS安装;此外,它能够基于串行控制台、VNC或SDL支持文本或图形安装界面。安装过程可以使用本地的安装介质如CDROM,也可以通过网络方式如NFS、HTTP或FTP服务实现。对于通过网络安装的方式,virt-install可以自动加载必要的文件以启动安装过程而无须额外提供引导工具。当然,virt-install也支持PXE方式的安装过程,也能够直接使用现有的磁盘映像直接启动安装过程。CompanynameCompanysloganherevirt-install命令有许多选项,这些选项大体可分为下面几大类,同时对每类中的常用选项也做出简单说明。◇一般选项:指定虚拟机的名称、内存大小、VCPU个数及特性等;-nNAME,--name=NAME:虚拟机名称,需全局惟一;-rMEMORY,--ram=MEMORY:虚拟机内在大小,单位为MB;--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置;--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm-cpu?来获取支持的CPU模式;◇安装方法:指定安装方法、GuestOS类型等;-cCDROM,--cdrom=CDROM:光盘安装介质;-lLOCATION,--location=LOCATION:安装源URL,支持FTP、HTTP及NFS等,如;--pxe:基于PXE完成安装;--livecd:把光盘当作LiveCD;--os-type=DISTRO_TYPE:操作