Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

附录 D. 手动安装 Ceph 块设备

以下步骤演示了如何安装和挂载精简调配、可调整的 Ceph 块设备。

重要

Ceph 块设备必须部署到与 Ceph 监控器和 OSD 节点上独立的节点上。在同一节点上运行内核客户端和内核服务器守护进程可能会导致内核死锁。

先决条件

流程

  1. 创建名为 client.rbd 的 Ceph 块设备用户,该用户对 OSD 节点上的文件具有完整权限 (osd 'allow rwx') 并将结果输出到密钥环文件:

    ceph auth get-or-create client.rbd mon 'profile rbd' osd 'profile rbd pool=<pool_name>' \
    -o /etc/ceph/rbd.keyring

    <pool_name> 替换为您要允许 client.rbd 访问的池的名称,如 rbd

    # ceph auth get-or-create \
    client.rbd mon 'allow r' osd 'allow rwx pool=rbd' \
    -o /etc/ceph/rbd.keyring

    有关创建用户的更多信息,请参见 Red Hat Ceph Storage 3 管理指南中的用户管理一节。

  2. 创建块设备镜像:

    rbd create <image_name> --size <image_size> --pool <pool_name> \
    --name client.rbd --keyring /etc/ceph/rbd.keyring

    指定 <image_name><image_size><pool_name>,例如:

    $ rbd create image1 --size 4096 --pool rbd \
    --name client.rbd --keyring /etc/ceph/rbd.keyring
    警告

    默认 Ceph 配置包括以下 Ceph 块设备功能:

    • layering
    • exclusive-lock
    • object-map
    • deep-flatten
    • fast-diff

    如果使用内核 RBD(krbd)客户端,您将无法映射块设备镜像,因为 Red Hat Enterprise Linux 7.3 中包含的当前内核版本不支持 object-mapbigh-flattenfast-diff

    要临时解决这个问题,请禁用不支持的功能。使用以下选项之一完成此操作:

    • 动态禁用不支持的功能:

      rbd feature disable <image_name> <feature_name>

      例如:

      # rbd feature disable image1 object-map deep-flatten fast-diff
    • rbd create 命令中使用 --image-feature layering 选项在新创建的块设备镜像仅启用 layering
    • 在 Ceph 配置文件中禁用默认功能:

      rbd_default_features = 1

    这是一个已知问题,请参阅 Red Hat Ceph Storage 3 发行说明中已知问题 章节。

    所有这些功能适用于使用用户空间 RBD 客户端访问块设备镜像的用户。

  3. 将新创建的镜像映射到块设备:

    rbd map <image_name> --pool <pool_name>\
    --name client.rbd --keyring /etc/ceph/rbd.keyring

    例如:

    # rbd map image1 --pool rbd --name client.rbd \
    --keyring /etc/ceph/rbd.keyring
    重要

    内核块设备目前仅支持 CRUSH 映射中的传统的 straw bucket 算法。如果将 CRUSH 可调项设置为最佳效果,您必须将它们设置为旧或较早的主版本,否则您将无法映射镜像。

    或者,将 straw2 替换为 CRUSH 映射中的 straw。详情请参阅 Red Hat Ceph Storage 3 存储策略指南中的编辑 CRUSH map 章节。

  4. 通过创建文件系统来使用块设备:

    mkfs.ext4 -m5 /dev/rbd/<pool_name>/<image_name>

    指定池名称和镜像名称,例如:

    # mkfs.ext4 -m5 /dev/rbd/rbd/image1

    这可能需要一些时间。

  5. 挂载新创建的文件系统:

    mkdir <mount_directory>
    mount /dev/rbd/<pool_name>/<image_name> <mount_directory>

    例如:

    # mkdir /mnt/ceph-block-device
    # mount /dev/rbd/rbd/image1 /mnt/ceph-block-device

如需了解更多详细信息,请参阅 Red Hat Ceph Storage 3 的块设备指南