B.4. Ceph ブロックデバイスの手動インストール

以下の手順では、シンプロビジョニングされ、サイズが変更可能な Ceph ブロックデバイスをインストールおよびマウントする方法を説明します。

重要

Ceph ブロックデバイスは、Ceph Monitor ノードと OSD ノードとは別のノードにデプロイする必要があります。同じノードでカーネルクライアントとカーネルサーバーデーモンを実行すると、カーネルのデッドロックが発生する可能性があります。

前提条件

手順

  1. OSD ノード (osd 'allow rwx') 上のファイルへの完全なパーミッションを持つ client.rbd という名前の Ceph Block Device ユーザーを作成し、結果をキーリングファイルに出力します。

    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 4 管理ガイドユーザー管理 セクションを参照してください。

  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 4G --pool rbd \
    --name client.rbd --keyring /etc/ceph/rbd.keyring
    警告

    デフォルトの Ceph 設定には、以下の Ceph ブロックデバイス機能が含まれます。

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

    カーネル RBD (krbd) クライアントを使用する場合は、ブロックデバイスイメージをマッピングできない可能性があります。

    この問題を回避するには、サポートされていない機能を無効にします。これを行うには、以下のいずれかのオプションを使用します。

    • サポートされていない機能を動的に無効にします。

      rbd feature disable <image_name> <feature_name>

      以下に例を示します。

      # rbd feature disable image1 object-map deep-flatten fast-diff
    • rbd create コマンドで --image-feature layering オプションを使用して、新たに作成されたブロックデバイスイメージで 階層化 のみを有効にします。
    • Ceph 設定ファイルで機能のデフォルトを無効にします。

      rbd_default_features = 1

    これは既知の問題です。詳細は、Red Hat Ceph Storage 4 のリリースノート既知の問題 の章を参照してください。

    これらの機能はすべて、ユーザー空間の 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
  4. ファイルシステムを作成してブロックデバイスを使用します。

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

    以下のように、プール名とイメージ名を指定します。

    # mkfs.ext4 /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

関連情報