随着越来越多的企业考虑选择不同的私有云平台,组织了解开源的OpenStack与市场上其他流行的云计算软件之间的区别是很重要的。本文我将介绍OpenStack和一些必备的OpenStack组件。
OpenStack生态系统
OpenStack和Amazon EC2非常类似,两大平台都允许用户使用仪表盘或者API部署虚拟机。除OpenStack免费之外,两大产品的重大差别是Amazon EC2是一个公有云服务,而OpenStack允许你构建自己的私有云或者订阅OpenStack公有云厂商的服务。
OpenStack不是一个hypervisor,但能够与一些不同的hypervisor一起使用。用户可以选择在机器或者拥有内置hypervisor的操作系统(比如Linux KVM)上部署hypervisor。使用OpenStack裸金属部署项目Ironic,用户能够将虚拟机推送到裸金属服务器上。
OpenStack包括很多组件,部分组件如下:
Horizon(仪表盘)为OpenStack服务提供基于Web的用户界面。
Nova(计算)包括控制器和计算节点。计算节点使用OpenStack的镜像服务提取虚拟机镜像并在目标服务器上创建虚拟机。针对不同平台比如提供了不同的API,比如XenAPI、VMwareAPI、针对Linux KVM的API、针对Amazon EC2 以及微软 Hyper-V的API。
Neutron(网络)创建虚拟网络以及网络接口,连接众多专用厂商的网络产品。
Swift(对象存储)与Amazon S3类似,它使用REST Web服务检索单个对象,比如一个镜像。
Cinder(块存储)包括磁盘文件,诸如日志等等。与对象存储相比,Cinder只允许替换文件,块存储允许你增加文件内容。
Keystone(身份存储)授权用户以及进程基于Keystone生成的认证令牌访问不同的OpenStack工具。
Glance(镜像服务)生成虚拟机镜像。这恰恰是OpenStack作为云操作系统独到之处:由于镜像可以是各种虚拟机,这意味着不同平台之间有很多不同的版本,但都来自于一个公共源。Glance是你已经上传的虚拟机目录,整个组织都可以使用。
Trove(数据库服务器)为不同的数据库提供支持。
OpenStack组件使用各种版本的MySQL数据库、消息队列服务器以及Python执行任务。OpenStack甚至提供了一个Python 命令行接口。下面列举了一些示例命令帮助你上手。
你可以使用如下命令从公共Linux资源库下载Keystone:
apt-get install keystone python-keystoneclient
然后使用如下命令在Keystone上创建用户:
keystone user-create --name Sam --description "Sam"
输入如下命令,列出使用Nova的虚拟机镜像:
nova image-list
输入“python”命令打开一个Python shell,然后输入类似如下命令:
from keystoneclient.v2_0 import client
然后可以开始创建用户并给用户授权,一次执行一个命令。
不熟悉Python?不必担心,OpenStack允许你选择使用Python CLI或者仪表盘。
作为开源平台的OpenStack
Rackspace以及NASA开发了OpenStack然后将其作为一个开源平台。这当然意味着任何开发人员都可以编写新例程或者修复现有例程,然后使用Github产看源代码变化情况。大多数OpenStack贡献者为大赞助商比如Rackspace工作,另一个主要的赞助商PayPal使用OpenStack运营其平台。
有很多OpenStack项目,很多是专业项目,比如裸金属安装。大多数用户甚至不需要OpenStack源代码,因为可以获取已编译的Python包,可以使用apt-get工具安装OpenStack。
如果你有兴趣了解更多的OpenStack或者测试OpenStack组件,OpenStack还提供了开发版本。
你可以按照我们编写的指南在Ubuntu桌面上安装OpenStack。或者你可以使用Canonical的OpenStack自动驾驶向导部署OpenStack。
本文转自d1net(转载)