注意

本文档适用于 Ceph 的开发版本。

块设备与 CloudStack

您可以通过 libvirt 将 Ceph 块设备镜像与 CloudStack 4.0 及更高版本一起使用,libvirt 会配置 QEMU 接口以连接到 librbd。Ceph 将块设备镜像作为对象跨集群条带化,这意味着大型 Ceph 块设备镜像比独立服务器具有更好的性能!

要将 Ceph 块设备与 CloudStack 4.0 及更高版本一起使用,您必须首先安装 QEMU、libvirt 和 CloudStack。我们建议为您的 CloudStack 安装使用单独的物理主机。CloudStack 建议最低配置为 4GB RAM 和双核处理器,但更多的 CPU 和 RAM 将提供更好的性能。下图描绘了 CloudStack/Ceph 技术栈。

重要

要将 Ceph 块设备与 CloudStack 一起使用,您必须能够访问正在运行的 Ceph 存储集群。

CloudStack 集成了 Ceph 的块设备,为 CloudStack 的主存储提供了后端。下面的说明详细介绍了 CloudStack 主存储的设置。

注意

我们建议使用 Ubuntu 14.04 或更高版本进行安装,这样您就可以使用包安装而不是从源代码编译 libvirt。

为与 CloudStack 一起使用而安装和配置 QEMU 不需要任何特殊处理。确保您有一个正在运行的 Ceph 存储集群。安装 QEMU 并配置它以与 Ceph 一起使用;然后,安装 libvirt 版本 0.9.13 或更高版本(您可能需要从源代码编译)并确保它与 Ceph 一起运行。

注意

Ubuntu 14.04 和 CentOS 7.2 将默认启用支持 RBD 存储池的 libvirt

创建池

默认情况下,Ceph 块设备使用 rbd 池。为 CloudStack NFS 主存储创建一个池。确保您的 Ceph 集群正在运行,然后创建池。

ceph osd pool create cloudstack

有关指定池的放置组数量的详细信息,请参阅创建池;有关应为池设置的放置组数量的详细信息,请参阅放置组

新创建的池在使用前必须进行初始化。使用 rbd 工具初始化池

rbd pool init cloudstack

创建 Ceph 用户

要访问 Ceph 集群,我们需要一个具有正确凭据的 Ceph 用户来访问我们刚刚创建的 cloudstack 池。虽然我们可以为此使用 client.admin,但建议创建一个只访问 cloudstack 池的用户。

ceph auth get-or-create client.cloudstack mon 'profile rbd' osd 'profile rbd pool=cloudstack'

在添加主存储时使用下一步中命令返回的信息。

有关其他详细信息,请参阅用户管理

添加主存储

要将 Ceph 块设备添加为主存储,步骤包括

  1. 登录 CloudStack UI。

  2. 单击左侧导航栏中的基础设施

  3. 主存储下选择查看全部

  4. 单击右上角的添加主存储按钮。

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

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

    • 区域。

    • Pod。

    • 集群。

    • 主存储名称。

    • 对于协议,选择 RBD

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

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

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

    • 对于 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 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入