我想启动并运行一个测试云,为可能部署 12.04 做准备。我稍微研究了一下 UEC,但很难找到任何有用的新堆栈入门资料。Diablo 上有通用文档,但 Ubuntu 中可能已经有很多方便的资料,因此特定指南可以节省时间。
此外,虽然我很想这样做,但我的预算不包括 4-6,000 美元来运行由 Canonical 支持的小型集群。
答案1
安装 OpenStack
如果您想快速启动并运行,请访问此处:
这个答案更详细地介绍了如何将 Juju 与 OpenStack 结合使用。
范围
OpenStack 平台功能强大,用途广泛。本文档部分主要涉及使用(但不限于)MAAS、Juju 和 Ubuntu 等 Canonical 组件部署“标准”运行的 OpenStack 系统。在适当的情况下,将提及其他方法和软件。
假设
- MAAS 的使用- 请首先遵循这些说明。
- Juju 的使用
- 本地网络配置 - 本文档假设您具有足够的本地网络配置,包括用于访问 OpenStack 云的单独接口。理想的网络在 [MAAS][MAAS 的 OpenStack 文档] 中列出。
规划安装
在部署任何服务之前,盘点可用资源及其使用方式非常有用。OpenStack 由许多相互关联的服务(Nova、Swift 等)组成,每个服务在主机方面都有不同的需求。例如,提供对象存储的 Swift 服务与提供计算资源的 Nova 服务的要求不同。
每项服务的最低要求和建议均列于官方OpenStack操作指南
使用 MAAS 和 Juju 部署 OpenStack 的推荐节点组成是系统中的所有节点都应该能够运行任何服务。这是系统稳健性的最佳实践,因为任何物理节点一旦发生故障,都可以重新利用另一个节点来代替它。这显然扩展到任何硬件要求,例如额外的网络接口。
如果出于经济或其他原因,您选择使用不同的硬件配置,则应注意,您克服硬件故障的能力将会降低。还需要将部署定位到特定节点 - 请参阅MAAS 标签文档。
创建 OpenStack 配置文件
我们将使用 Juju charms 来部署 OpenStack 的组件。每个 charm 都封装了设置特定服务所需的一切。但是,各个服务都有许多配置选项,其中一些我们想要更改。
为了使此任务更容易、更可重复,我们将创建一个单独的配置文件,其中包含所有服务的相关选项。这是以标准 YAML 格式编写的(如果你不熟悉这个,请访问 www.yaml.org)。
以下是 openstack-config.yaml 的一个示例:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
对于所有服务,我们可以配置为openstack-origin
指向安装源。在本例中,我们将依赖默认设置,它将指向 Ubuntu 14.04 LTS Trusty 版本的相关源。每个服务的进一步配置在这个文件。
其他配置
部署 OpenStack 服务时可以使用其他设置和配置选项。这些在 Juju 使用的各个 charm 的文档中有详细说明,可以通过访问在线 Juju Charm 商店并使用页面左上角的搜索框搜索超级按钮。然后,配置设置在主页的“配置”下详细说明,如下所示:
使用 Juju 部署 OpenStack
现在配置已经定义,我们可以使用 Juju 来部署和关联服务。
初始化 Juju
Juju 需要最少的设置。我们假设它已经配置为与您的 MAAS 集群配合使用(有关更多信息,请参阅 [Juju 安装指南][juju_install])。
首先,我们需要获取 Juju 将使用的图像和工具:
juju sync-tools --debug
然后我们可以创建引导实例:
juju bootstrap --upload-tools --debug
我们使用 upload-tools 开关来使用我们刚刚获取的工具的本地版本。调试开关将提供有用的详细输出。此过程可能需要几分钟,因为 Juju 正在创建实例并安装工具。完成后,您可以使用以下命令检查系统状态:
juju status
这应该返回类似这样的内容:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
部署 OpenStack Charms
现在 Juju 引导节点已启动并运行,我们可以部署安装 OpenStack 所需的服务。为了在部署时正确配置这些服务,我们将使用之前定义的配置文件,通过在--config
每个部署命令中将其与交换机一起传递。如果配置文件的名称和路径不同,请替换为配置文件的名称和路径。
按照以下顺序部署服务很有用,但不是必需的。强烈建议打开另一个终端窗口并运行命令juju debug-log
。这将输出所有服务运行时的日志,并且可用于故障排除。
还建议juju status
定期运行命令,以检查每个服务是否已安装并正常运行。 Juju 将自动尝试从在线 Charm Store 获取最佳版本的 Charm。 如果您在受限或封闭的网络中安装,则可以预先获取所需的 Charm。 请参阅 [离线 Charm 文档] [charms-offline]。
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
添加 OpenStack 服务之间的关系
虽然现在已部署了这些服务,但它们尚未连接在一起。每个服务目前都独立存在。我们使用命令juju add-relation
让它们相互了解并设置任何相关的连接和协议。这些额外的配置由各个 charms 自己处理。
我们应该通过设置 Keystone 授权服务及其数据库来开始添加魅力之间的关系,因为许多其他连接都需要它:
juju add-relation keystone mysql
我们等待关系建立。完成后使用 juju status 检查:
juju status mysql
juju status keystone
这项服务可能需要一些时间才能稳定下来。虽然当然可以继续添加关系(Juju 管理待处理操作的队列),但从总体时间来看,这可能会适得其反,因为许多关系都引用相同的服务。
还需要建立以下关系:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
最后,juju status 的输出应该显示所有关系已完成。OpenStack 云现在正在运行,但在准备使用之前,需要填充一些其他组件。
答案2
Ken Pepple 有一本关于部署 OpenStack 的书: http://shop.oreilly.com/product/0636920021674.do
Ken 的公司(Internap)拥有第一个商业化的 OpenStack 云计算服务。
http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/
Internap 的云建立在 Xen 云平台 (XCP) 上作为虚拟机管理程序。
答案3
部署 RDO 的过程快速而简单。设置 OpenStack 云大约需要 15 分钟,只需 3 个步骤。 http://openstack.redhat.com/Quickstart