注意
本文档适用于 Ceph 开发版本。
Block Devices and CloudStack
您可以通过libvirt
,将 QEMU 接口配置为librbd
。Ceph 将块设备镜像作为对象跨集群分布,这意味着大型 Ceph 块设备镜像比独立服务器具有更好的性能!
要在 CloudStack 4.0 及更高版本中使用 Ceph 块设备,您必须先安装 QEMU,libvirt
,然后安装 CloudStack。我们建议为您的 CloudStack 安装使用单独的物理主机。CloudStack 推荐至少 4GB 的 RAM 和双核处理器,但更多的 CPU 和 RAM 性能会更好。下图描绘了 CloudStack/Ceph 技术堆栈。
重要
要在 CloudStack 中使用 Ceph 块设备,您必须能够访问正在运行的 Ceph 存储集群。
CloudStack 与 Ceph 的块设备集成,为 CloudStack 提供主存储的后端。以下说明详细介绍了 CloudStack 主存储的设置。
Note
我们建议使用 Ubuntu 14.04 或更高版本进行安装,以便您可以使用软件包安装而不是从源代码编译 libvirt。
为 CloudStack 安装和配置 QEMU 不需要任何特殊处理。确保您有一个正在运行的 Ceph 存储集群。安装 QEMU 并配置它用于 Ceph;然后,安装libvirt
版本 0.9.13 或更高版本(您可能需要从源代码编译)并确保它与 Ceph 一起运行。
Note
Ubuntu 14.04 和 CentOS 7.2 将有libvirt
,默认情况下启用 RBD 存储池支持。
Create a Pool
默认情况下,Ceph 块设备使用rbd
池。为 CloudStack NFS 主存储创建一个池。确保您的 Ceph 集群正在运行,然后创建池。
ceph osd pool create cloudstack
请参阅Create a Pool关于指定池的放置组数量的详细信息,请参阅放置组关于您应该为池设置多少放置组的详细信息。
新创建的池在使用前必须初始化。使用rbd
工具初始化池:
rbd pool init cloudstack
创建一个 Ceph 用户(或使用 fc7bd7: 对于 0.9.7 及更早版本)。以下示例使用 Ceph 用户名称 b6559b: 并引用 4b1081: 验证名称是否存在。
要访问 Ceph 集群,我们需要一个具有正确凭证的用户来访问我们刚刚创建的cloudstack
池。尽管我们可以使用client.admin
来完成此操作,但建议创建一个仅具有对cloudstack
池访问权限的用户。
ceph auth get-or-create client.cloudstack mon 'profile rbd' osd 'profile rbd pool=cloudstack'
在添加主存储时,使用下一步命令返回的信息。
请参阅User Management以获取更多详细信息。
添加主存储
要将 Ceph 块设备作为主存储添加,步骤包括:
登录到 CloudStack UI。
点击基础设施在左侧导航栏上。
选择查看所有在主存储.
"添加池"添加主存储右上角的按钮。
根据您的基础设施设置填写以下信息:
范围(即集群或区域范围)。
区域。
机架。
集群。
主存储的名称。
对于协议,选择
RBD
.对于提供者,选择适当的服务提供类型(即 DefaultPrimary、SolidFire、SolidFireShared 或 CloudByte)。根据选择的服务提供程序,填写与您的设置相关的信息。
添加集群信息 (
cephx
是支持的)。对于RADOS 监控器,提供 Ceph 监控器的 IP 地址或 DNS 名称。请注意,仅 Cloudstack v4.18.0.0 或更高版本支持逗号分隔的 IP 地址或 DNS 名称列表。
对于RADOS 池,提供一个 RBD 池的名称。
对于RADOS 用户,提供一个具有足够权限的用户来访问 RBD 池。注意:不要包含用户名中的
client.
部分。对于RADOS 密钥,提供用户的密钥。
存储标签是可选的。根据您的需要使用标签。有关 CloudStack 中存储标签的更多信息,请参阅存储标签.
点击确定.
创建磁盘提供
要创建新的磁盘提供,请参阅创建新的磁盘提供。rbd
标签匹配。当搜索合适的存储池时,StoragePoolAllocator
将选择rbd
池。如果磁盘提供与rbd
标签不匹配,则StoragePoolAllocator
可能会选择您创建的池(例如,cloudstack
).
限制
直到 v4.17.1.0,CloudStack 将一次只绑定到一个监控器。但是,您可以使用多个 DNS A 或 AAAA 记录进行轮询,以将连接分散到多个监控器。
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.