在Ubuntu 12.10 上安装部署Openstack
OpenStack系统有几个关键的项目,它们能够独立地安装但是能够在你的云计算中共同工作。这些项目包括:OpenStack Compute,OpenStack Object Storage,OpenStack Identity Service,以及OpenStack Image Service。你可以独立地安装这些项目中的任何一个,然后即可以独立也可以把它们作为一个联合体来配置。这个指导手册指导用有用的包(packages)在Ubuntu 12.10上的一个安装。这个手册也提供了一个与给出的配置文件例子一样好的配置解释。
相关阅读:
推荐阅读:
- 安装OpenStack浏览
OpenStack Compute与Image services共同工作来提供对虚拟机服务(virtual servers)进行访问以及通过REST API对镜象(images)进行访问。身份验证服务(Identity Service)为所有的OpenStack服务提供了一个公共的授权层。你必须使用身份验证服务来安装OpenStack Dashboard,OpenStack Dashboard是为OpenStack组件提供了一个基于web的用户接口。OpenStack对象存储服务(Object Storage service)为虚拟机镜象不仅提供一个存储方法,也提供了一个使用REST API的基于云的对象存储系统,这个对象存储系统来存储与恢复诸如镜象或视频。这个过程是以身份验证开始,然后通过Image以及Compute,也提供有关一个对象存储(Object Storage)安装部署信息。
以下为全部的步骤:
- 回顾主要的支持平台。Red Hat Enterprise Linux,Scientific Linux,CentOS,Fedora,Ubuntu是目前最好的测试平台。
- 安装身份验证服务(Keystone)。
- 配置身份验证服务(Identity Service)。
- 安装镜象服务(Glance)。
- 配置镜象服务。
- 安装Compute(Nova)。
- 回顾在安装Compute时所做的假设。
- 用FlatDHCP来配置Compute,使用192.168.100.0/24网络地址作为我们所有客户机虚机的固定网段,网桥命名为br100。
- 用MySQL创建和初始化Compute数据库。
- 添加镜象。
- 安装OpenStack Object Storage(Swift)。
- 安装OpenStack Dashboard。
- 启动(launch)Dashboard。
- 通过Dashboard添加键值对(keypair)。
- 通过Dashboard启动一个镜象来验证整个的安装过程。
云计算与镜象系统需求(Compute and Image System Requirements)
硬件:OpenStack组件被设计运行在标准的硬件上。
为了最小的产品部署,我们作如下建议,云控制节点,计算节点,镜象服务,对象,帐户,容器以及为了对象存储的代理服务器。
表1.1 硬件配置建议
Server | Recommended Hardware | Notes |
Cloud Controller node (runs network, volume, API, scheduler and image services) | Processor: 64-bit x86
Memory: 12 GB RAM
Disk space: 30 GB (SATA or SAS or SSD) Volume storage: two disks with 2 TB (SATA) for volumes attached to the compute nodes Network: one 1 GB Network Interface Card (NIC) | Two NICS are recommended but not required. A quad core server with 12 GB RAM would be more than sufficient for a cloud controller node. 32-bit processors will work for the cloud controller node. The package repositories referred to in this guide do not contain i386 packages |
Compute nodes (runs Virtual instances) | Processor: 64-bit x86 Memory: 32 GB RAM Disk space: 30 GB (SATA) Network: two 1 GB NICs | Note that you cannot run 64-bit VM instances on a 32-bit compute node. A 64-bit compute node can run either 32- or 64-bit VMs, however. With 2 GB RAM you can run one m1.small instance on a node or three m1.tiny instances without memory swapping, so 2 GB RAM would be a minimum for a test-environment compute node. As an example, Rackspace Cloud Builders use 96 GB RAM for compute nodes in OpenStack deployments. Specifically for virtualization on certain hypervisors on the node or nodes running nova-compute, you need a x86 machine with an AMD processor with SVM extensions (also called AMD-V) or an Intel processor with VT (virtualization technology) extensions. For XenServer and XCP refer to the XenServer installation guide and the XenServer harware compatibility list. For LXC, the VT extensions are not required. The packages referred to in this guide do not contain i386 packages. |
注一:在openstack的某些部份工作在各种操作系统期间,最完整的特性、支持的产品主机环境是linux。操作系统:OpenStack对于下列发布的操作系统都有软件包:CentOS,Debian,Fedora,RHEL,以及ubuntu。这些包是由社区成员维护着。额外的链接请参考:http://wiki.openstack.org。
注二:OpenStack Compute的Folsom发行版需要ubuntu12.04或更新版本,ubuntu 11.10携带的libvirt版本没有与OpenStack适当的支持功能,是由于有一个#101183的bug。
数据库:对于OpenStack Compute,你必须使用PostgreSQL和MySQL二种数据的之一,或者把它当做OpenStack Compute安装过程中的一个部份来安装。对于对象存储(Object Storage),容器和帐号服务有SQLite数据库,你也可以把它作为安装过程的一部份进行安装。
许可(Permissions):你可以用root的用户来安装OpenStack Compute,Image Service,或对象存储,如果你配置了sudoer文件使得所有许可能用,也可以用带有sudo许可的用户来安装这些组件。
网络时间协议(Network Time Protocol):你必须安装象NTP一样的时间同步程序(synchronization program)。对于Compute,时间同步能够保持你的云控制器与计算结点花同样的时间服务来避免在计算结点上的启动的虚似机时刻表。对于对象存储(Object Storage),当需要更新内容以便最新的内容去复盖的时候,时间同步确保对象复制是正确无误的。
云计算网络规划(Compute Network Planning)
即要保存网络资源,也要确保网络管理员理解网络的需求,理解为了访问API的公网IP地址,以及必要的虚拟机。这节提供了一些建议以及最小的需求。建议流量(throughput)最小为1000Mbps,这整个过程显示了单个服务器的网络配置。
对于OpenStack Compute,网络配置在多节点安装上,这个安装是在不同的物理机之间的一个子网上。对于虚拟机实例之间的网络,有三个网络操作是可用的:flat,DHCP,以及VLAN。在运行nova-network的服务器上,建议使用两个网卡(NICs –Network Interface Cards)。
网络管理(Management Network(RFC1918 IP Range,没有公共路由)):建议在云基础设施内部,这个网络应用于所有的内部服务器。建议IP地址大小为255(CIDR / 29)。
公共网络(Publicly routable IP range):在基础设施里,网络应用于提供公共的IP,用来对API端点的访问。最小大小为8个IP(CIDR/29)。
虚拟机网络(RFC1918 IO Range,没有公共路由):这个网络应用于给云实例提供主IP地址。建议大小:1024个IPS(CIDR/22)。
浮动IP网络(Publicly routable IP Range):这个网络应用于给选择的云实例提供公共的IP访问。最小16个IP(CIDR/28)
安装网络时间协议(Installing NetWork Time Protocol-NTP)
在同步交叉多个机器中,为了保持所有的服务,你必须安装NTP,如果你想做一个多节点的配置,你将配置一个服务器作为参考服务器。
$ sudo apt-get install –y ntp
在你的控制节点上设置NTP服务以便它接收数据,这是通过修改ntp.conf文件以及重启该服务来完成的。用root用户来操作:
#sed –I 's/server ntp.ubuntu.com/server ntp.ubuntu.com\nserver 127.127.1.0\nfudge 127.127.1.0 stratum 10/g' /etc/ntp.conf
在你的计算节点上设置NTP客户端以便时间在控制节点以及计算节点之间保持同步。在计算节点上按下面的操作做下克龙。
# ntpdate 'controllernode ip'
Hwclock –w
- OpenStack术语
版本名称(Version Names)
每个openstack版本都有一个名称,按照递增的顺序(例如,在Diablo后面是Essex)。对应于这些版本,也有相应的版本号。但对于OpenStack Compute和OpenStack Object Storage来说,数据策划是不同的。象下面的表所示:
表2.1
Release name | Release Date | OpenStack Compute Version number | OpenStack Object Storage Version number |
Folsom | September 2012 | 2012.2 | 1.7.2 |
Essex | April 2012 | 2012.1 | 1.4.6 |
Diablo | October 2011 | 2011.3 | 1.4.3 |
Cactus | April 2011 | 2011.2 | 1.3.0 |
Bexar | March 2011 | 2011.1 | 1.2.0 |
Austin | October 2010 | 0.9.0 | 1.0.0 |
从Cactus版本开始,OpenStack采取了六个月一个版本的计划表。Folsom是2012年10月的计划产品。
代码名称(Code Names)
每一个OpenStack服务都有一个代码名称。例如,镜象服务命名为Glance。在下面的表格中列出了所有的名称。
表2.2
Service name |
Identity |
Compute |
Image |
Dashboard |
Object Storage |
Volumes |
Networking |
这些代码名称对应于配置文件的名称以及命令行应用程序,例如,身份验证服务有一个名称为keystone.conf配置文件。
OpenStack 服务与Linux服务
在Linux世界,一个服务(也叫守护程序)适用于一个单个的程序,这个程序是运行在后台的,典型的例子是对端口的监听程序来响应服务请求。从另一方面讲,一个OpenStack对应于协调工作的Linux服务的一个集合。
OpenStack服务是被多个Linux服务执行。例如,nova-compute和nova-scheduler(调度)是Linux的两个服务,这两个服务是执行Compute服务的。OpenStack也依赖于几个第三方的服务,象数据(典型的MySQL)以及消息载体(a message broker)(典型的如RabbitMQ 或 Qpid)。
在这篇文档中,我们通常地用术语"服务"来即适用于(refer to)Linux底层服务,又适用于高层OpenStack服务。无论我们提到的高层OpenStack服务(e.g.,Image)或者底层Linux服务(e.g.,glance-api),
存储:对象,块,文件(Storage:objects,blocks,and files)
许多云计算用事例请求持久的(persistent)远程存储。存储解决方案常常被分成三个类型:对象存储(object storage),块存储(block storage),以及文件存储(file storage)。
要注意的是,有些存储解决方案支持多种类型。例如,NexentaSro 既支持块存储,又支持文件存储(with announcements for future support for object storage),预料将来会支持对象存储。GlusterFS 支持文件存储以及对象存储,Ceph Storage 支持对象存储,块存储,以及文件存储。
对象存储(Object storage)
在OpenStack里边:对象存储服务(Swift)
有关的概念:亚马逊(Amazon) S3,Rackspace Cloud File,Ceph Storage
对于对象存储,文件是通过一个HTTP接口被暴露的,典型的是用REST API。所有的客户端数据在用户层是这样做的:操作系统不知道(is unaware of)远程存储系统是怎么出现的。在OpenStack里,对象存储服务提供了这种功能(this type of functionality)。用户通过发出HTTP请求(by making HTTP requests)来访问和修改文件。因为通过一个对象存储系统提供的数据访问口是在抽象的底层(at a low level of abstraction)。人们常常在对象存储的顶端构建一个基于文件的应用程序,这个程序提供一个高级的抽象。例如,可以配置OpenStack镜象服务作为后台去使用对象存储服务。对象存储解决方案的另一个用途是对于主机的静态页面内容来说,是作为一个内容传递网络(a content delivery netwoik(CDN))(例如,镜象,以及媒体文件。image,and medial files)。因为对象存储已经提供了一个HTTP接口。
块存储 Block storage (SAN)
在OpenStack里:Volumes(nova-volume服务)是在OpenStack Compute里,或者cinder作为一个独立的Volume服务。
相关的概念:Amazon Elastci Block Store(EBS),Ceph RADOS Block Device(RBD),iSCSI.
对于块相信,文件是通过底层的计算机公共接口对外暴露的,象SCSI 或 ATA,通过网络这是可访问的。块存储是与SAN(storage area network)同意思的。
客户端是在设备层上通过操作系统来访问数据的:用户访问数据是通过挂载一个远程的设备,就象在本地挂载设备一样,物理硬盘(例如,在Linux中用"mount"命令行)。在OpenStack里,组成云计算服务的一个部份的nova-volume服务提供这类功能。使用iSCSI作为一个依附在网络上的SCSI硬盘一样把远程数据对外暴露。
因为数据是用物理设备的方式对外暴露的,终端用户有负责对暴露的硬盘设备创建分区和格式化。另外,在OpenStack Compute里边,一个设备在同一个时间只能被附加于是一个服务器上。所以块存储不能同时地(concurrently)用于在虚似机实例之间共享数据。