注意

本文档适用于 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 块设备作为主存储添加,步骤包括:

  1. 登录到 CloudStack UI。

  2. 点击基础设施在左侧导航栏上。

  3. 选择查看所有主存储.

  4. "添加池"添加主存储右上角的按钮。

  5. 根据您的基础设施设置填写以下信息:

    • 范围(即集群或区域范围)。

    • 区域。

    • 机架。

    • 集群。

    • 主存储的名称。

    • 对于协议,选择RBD.

    • 对于提供者,选择适当的服务提供类型(即 DefaultPrimary、SolidFire、SolidFireShared 或 CloudByte)。根据选择的服务提供程序,填写与您的设置相关的信息。

  6. 添加集群信息 (cephx是支持的)。

    • 对于RADOS 监控器,提供 Ceph 监控器的 IP 地址或 DNS 名称。请注意,仅 Cloudstack v4.18.0.0 或更高版本支持逗号分隔的 IP 地址或 DNS 名称列表。

    • 对于RADOS 池,提供一个 RBD 池的名称。

    • 对于RADOS 用户,提供一个具有足够权限的用户来访问 RBD 池。注意:不要包含用户名中的client.部分。

    • 对于RADOS 密钥,提供用户的密钥。

    • 存储标签是可选的。根据您的需要使用标签。有关 CloudStack 中存储标签的更多信息,请参阅存储标签.

  7. 点击确定.

创建磁盘提供

要创建新的磁盘提供,请参阅创建新的磁盘提供rbd标签匹配。当搜索合适的存储池时,StoragePoolAllocator将选择rbd池。如果磁盘提供与rbd标签不匹配,则StoragePoolAllocator可能会选择您创建的池(例如,cloudstack).

限制

  • 直到 v4.17.1.0,CloudStack 将一次只绑定到一个监控器。但是,您可以使用多个 DNS A 或 AAAA 记录进行轮询,以将连接分散到多个监控器。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.