B.4. Ceph ブロックデバイスの手動インストール
以下の手順では、シンプロビジョニングされ、サイズが変更可能な Ceph ブロックデバイスをインストールおよびマウントする方法を説明します。
Ceph ブロックデバイスは、Ceph Monitor ノードと OSD ノードとは別のノードにデプロイする必要があります。同じノードでカーネルクライアントとカーネルサーバーデーモンを実行すると、カーネルのデッドロックが発生する可能性があります。
前提条件
- 「Ceph コマンドラインインターフェイスのインストール」 セクションに記載されているタスクを実施するしておく。
- QEMU を使用する仮想マシンのバックエンドとして Ceph ブロックデバイスを使用する場合は、デフォルトのファイル記述子を増やします。詳細は、ナレッジベースの記事 Ceph - VM hangs when transferring large amounts of data to RBD disk を参照してください。
手順
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 管理ガイドの ユーザー管理 セクションを参照してください。
ブロックデバイスイメージを作成します。
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 クライアントを使用してブロックデバイスイメージにアクセスするユーザーに機能します。
-
新規に作成されたイメージをブロックデバイスにマッピングします。
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
ファイルシステムを作成してブロックデバイスを使用します。
mkfs.ext4 /dev/rbd/<pool_name>/<image_name>
以下のように、プール名とイメージ名を指定します。
# mkfs.ext4 /dev/rbd/rbd/image1
このアクションには少し時間がかかる場合があります。
新しく作成されたファイルシステムをマウントします。
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 4 の ブロックデバイスガイド