http://manual.blog.51cto.com/3300438/967858
三、OpenStack结构
你可以把OpenStack Compute理解为结合现有Linux技术构建云计算环境的工具箱。
以下我们通过图例说明构建OpenStack Compute云环境的基础技术。圆形表示构成OpenStack Compute的Linux服务,矩形表示外部组件(不属于OpenStack项目),实线表示OpenStack组件与外部组件间的交互,虚线表示外部组件之间的交互。所有组成OpenStack Compute的服务都与后端消息队列(如:RabbitMQ,Qpid)以及后端数据库(如:MySQL)交互,这种交互图中没有连线。同时其他的一些非必须的外部组件技术同样不在该图示中展示,如:nova-api,OpenStack Identity以及OpenStack Image服务。
方案1:
方案2:
如图所示,多数外部组件可以有很多替代产品。
技术与软件:
nova-compute
nova-compute服务依靠虚拟化驱动管理虚拟机。默认驱动为libvirt,可以驱动KVM,但libvirt同样可以驱动其他hypervisor(管理虚拟机的技术)技术。如果你需要使用Xen云平台或XenServer,则Xen虚拟化技术使用单独的驱动。Open-iscsi用来挂载远程块设备,也被称为卷。Open-iscsi将远程设备当作与本地设备一样使用。
nova-network
nova-network服务依赖于一些Linux网络技术,它使用Linux桥接技术来连接虚拟机与物理主机。如果是运行在VLAN网络模式,这些桥设备可以通过Linux VLAN技术相关联。iptables负责安全策略实施与NAT功能。DNSmasq用来快速部署DNS服务器并为虚拟机实例分配IP地址、DNS等网络参数。
在未来的OpenStack发行版本中,nova-network的功能将被独立称为OpenStack的一个独立项目,代码名称为Quantum。
译者再次备注一下,OpenStack提供的手册文档是2012年4月31日,而目前根据OpenStack官网信息显示OpenStack Networking已经是一个独立的项目了。
nova-volume
默认,nova-volume服务使用LVM创建和管理本地卷,并使用IET或tgt通过iSCSI方式发布出去。nova-volume同样可以配置使用其他基于iSCSI的存储技术。
未来的OpenStack发行版本中,nova-volume的功能将被独立为OpenStack项目,代码名称为Cinder。
openstack-dashboard
openstack-dashboard是基于Django的应用程序,它默认运行在Apache Web服务器上。你可以使用memcache来改善它的性能。一个基于web的VNC客户端-novnc,使用novnc连接VNC控制台与KVM实例连接。
四、安装环境构思
OpenStack Compute有大量的配置选项,为了简化本安装指南,我们对需要部署的环境做了一些假设。
- 你已经有了一些安装有Fedora17,RHEL6.2,Scientific Linux6.1或CentOS6发行版的compute节点。备注OpenStack同样支持Ubuntu,但本文档不做说明。
- 你已经选定了一台作为云控制节点,它将除nova-compute外的所有服务(RabbitMQ,MySQL,Identity,Image,nova-api,nova-network,nova-scheduler,nova-volume)。
- 云控制器的磁盘分区使用的是LVM。
- 你的云控制器有一个LVM卷组(VG)名为”nova-volumes”共VM使用,你可以安装系统的使用创建,也可以在安装nova服务前使用剩余空间创建。
- 确保你的主机名可以被正确的解析,另外如果你使用RabbitMQ作为后端消息队列或许会遇到些麻烦,Fedora默认使用Qpid作为消息队列。
- 192.168.206.130是主机上eth0网卡的主IP地址。
- 192.168.100.0/24作为虚拟主机的网络范围,通过桥接br100连接宿主主机。
- FlatDHCP with a single network interface.
- 使用KVM或Xen(XenServer or XCP)作为hypervisor。
- 在RHEL上启用EPEL软件仓库,方法: $ sudo rpm -Uvhhttp://download.fedoraproject.org/pub/epel/6/i386/epelrelease-6-5.noarch.rpm