ブロックデバイスガイド
Red Hat Ceph Storage ブロックデバイスの管理、作成、設定、および使用
概要
第1章 Ceph ブロックデバイスの概要 リンクのコピーリンクがクリップボードにコピーされました!
ブロックは、シーケンスでのデータの長さ (例: 512 バイトのデータブロック) をバイト単位で設定したものです。多くのブロックを 1 つのファイルに統合すると、読み取り/書き込みが可能なストレージデバイスとして使用できます。以下のような回転メディアを使用してデータを保存する最も一般的な方法として、ブロックベースのストレージインターフェイスが挙げられます。
- ハードドライブ
- CD/DVD ディスク
- フロッピーディスク
- 従来の 9 トラックテープ
ブロックデバイスインターフェイスは偏在するので、Red Hat Ceph Storage などのマーシャルデータストレージシステムの操作には仮想ブロックデバイスが理想的です。
Ceph ブロックデバイスは、シンプロビジョニングされ、サイズ変更が可能で、Ceph Storage クラスター内の複数の Object Storage Devices (OSD) にストライプ化したストアデータです。Ceph ブロックデバイスは、Reliable Autonomic Distributed Object Store (RADOS) ブロックデバイス (RBD) としても知られています。Ceph ブロックデバイスは、以下のような RADOS 機能を利用します。
- スナップショット
- レプリケーション
- データの整合性
Ceph ブロックデバイスは、librbd ライブラリーを使用して OSD と対話します。
Ceph ブロックデバイスは、libvirt ユーティリティーおよび QEMU ユーティリティーに依存して Ceph ブロックデバイスと統合するために、Quick Emulator (QEMU) などの Kernel Virtual Machines (KVM) や OpenStack などのクラウドベースのコンピューティングシステムに、無限のスケーラビリティーと、高いパフォーマンスをもたらします。同じストレージクラスターを使用して、Ceph Object Gateway および Ceph ブロックデバイスを同時に運用できます。
Ceph ブロックデバイスを使用するには、実行中の Ceph Storage クラスターにアクセスできる必要があります。Red Hat Ceph Storage クラスターのインストールの詳細は、Red Hat Ceph Storage インストールガイド を参照してください。
第2章 Ceph ブロックデバイスコマンド リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Ceph のブロックデバイスコマンドについて理解しておくと、Red Hat Ceph Storage クラスターを効果的に管理しやすくなります。Ceph ブロックデバイスのさまざまな機能を有効または無効にしたり、ブロックデバイスのプールとイメージを作成および管理したりできます。
2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
2.2. コマンドのヘルプの表示 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイスから、コマンドとサブコマンドのヘルプを表示します。
-h オプションは引き続き、使用できるすべてのコマンドのヘルプを表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
rbd helpコマンドを使用して、特定のrbdコマンドとそのサブコマンドのヘルプを表示します。構文
rbd help COMMAND SUBCOMMAND
rbd help COMMAND SUBCOMMANDCopy to Clipboard Copied! Toggle word wrap Toggle overflow snap listコマンドのヘルプを表示するには、次のコマンドを実行します。rbd help snap list
[root@rbd-client ~]# rbd help snap listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. ブロックデバイスプールの作成 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスクライアントを使用する前に、rbd のプールが存在し、初期化されていることを確認します。
最初にプールを作成してから、これをソースとして指定する必要があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
rbdプールを作成するには、以下を実行します。構文
ceph osd pool create POOL_NAME PG_NUM ceph osd pool application enable POOL_NAME rbd rbd pool init -p POOL_NAME
ceph osd pool create POOL_NAME PG_NUM ceph osd pool application enable POOL_NAME rbd rbd pool init -p POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd pool create example 128 ceph osd pool application enable example rbd rbd pool init -p example
[root@rbd-client ~]# ceph osd pool create example 128 [root@rbd-client ~]# ceph osd pool application enable example rbd [root@rbd-client ~]# rbd pool init -p exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ストラテジーガイドの プール の章を参照してください。
2.4. ブロックデバイスイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスをノードに追加する前に、Ceph Storage クラスターにそのイメージを作成します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
ブロックデバイスイメージを作成するには、以下のコマンドを実行します。
構文
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create data --size 1024 --pool stack
[root@rbd-client ~]# rbd create data --size 1024 --pool stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
stackという名前のプールに情報を格納するdataという名前のイメージが 1 GB のサイズで作成されます。注記イメージを作成する前に、プールが存在することを確認します。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの ブロックデバイスプールの作成 セクションを参照してください。
2.5. ブロックデバイスイメージの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスイメージを一覧表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
rbdプールのブロックデバイスを一覧表示するには、以下を実行します (rbdはデフォルトのプール名です)。rbd ls
[root@rbd-client ~]# rbd lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のプールのブロックデバイスを一覧表示するには、以下を実行します。ただし、
POOL_NAMEはプールの名前に置き換えます。構文
rbd ls POOL_NAME
rbd ls POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd ls swimmingpool
[root@rbd-client ~]# rbd ls swimmingpoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. ブロックデバイスイメージ情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスイメージに関する情報を取得します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
特定のイメージから情報を取得するには、以下を実行します。ただし、
IMAGE_NAMEはイメージの名前に置き換えます。構文
rbd --image IMAGE_NAME info
rbd --image IMAGE_NAME infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --image foo info
[root@rbd-client ~]# rbd --image foo infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow プール内のイメージから情報を取得するには、以下を実行します。ただし、
IMAGE_NAMEはイメージの名前に、POOL_NAMEはプールの名前に置き換えます。構文
rbd --image IMAGE_NAME -p POOL_NAME info
rbd --image IMAGE_NAME -p POOL_NAME infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --image bar -p swimmingpool info
[root@rbd-client ~]# rbd --image bar -p swimmingpool infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. ブロックデバイスイメージのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
Ceph ブロックデバイスイメージはシンプロビジョニングされています。データの保存を開始する前に、実際には物理ストレージを使用しません。ただし、--size オプションでは、設定する最大容量があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
Ceph ブロックデバイスイメージの最大サイズを増減するには、以下を実行します。
構文
rbd resize --image IMAGE_NAME --size SIZE
[root@rbd-client ~]# rbd resize --image IMAGE_NAME --size SIZECopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.8. ブロックデバイスイメージの削除 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスイメージを削除します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
ブロックデバイスを削除するには以下を実行します。ただし、
IMAGE_NAMEは削除するイメージの名前に置き換えます。構文
rbd rm IMAGE_NAME
rbd rm IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd rm foo
[root@rbd-client ~]# rbd rm fooCopy to Clipboard Copied! Toggle word wrap Toggle overflow プールからブロックデバイスを削除するには以下を実行します。ただし、
IMAGE_NAMEは、削除するイメージの名前に、POOL_NAMEはプールの名前に置き換えます。構文
rbd rm IMAGE_NAME -p POOL_NAME
rbd rm IMAGE_NAME -p POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd rm bar -p swimmingpool
[root@rbd-client ~]# rbd rm bar -p swimmingpoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. trash コマンドを使用したブロックデバイスイメージの管理 リンクのコピーリンクがクリップボードにコピーされました!
RADOS Block Device (RBD) イメージは、rbd trash コマンドを使用してゴミ箱に移動できます。
このコマンドは、以下のようなさまざまなオプションを使用できます。
- ゴミ箱からイメージを取り除く。
- ゴミ箱からイメージを一覧表示する。
- ゴミ箱からのイメージの削除を延期する。
- ゴミ箱からイメージを削除する。
- ゴミ箱からのイメージを復元する。
- ゴミ箱からイメージの復元して、名前を変更する。
- ゴミ箱から期限切れのイメージをパージする。
- ゴミ箱からパージをスケジューリングする。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
イメージをゴミ箱に移動します。
構文
rbd trash mv POOL_NAME/IMAGE_NAME
rbd trash mv POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash mv mypool/myimage
[root@rbd-client ~]# rbd trash mv mypool/myimageCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージがゴミ箱に入ると、一意のイメージ ID が割り当てられます。
注記ゴミ箱オプションのいずれかを使用する必要がある場合は、後でこのイメージを指定するのにこのイメージ ID が必要です。
ゴミ箱のイメージを一覧表示します。
構文
rbd trash ls POOL_NAME
rbd trash ls POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash ls mypool
[root@rbd-client ~]# rbd trash ls mypool 1558a57fa43b rename_imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一意の IMAGE_ID
1558a57fa43bは、任意のtrashオプションに使用できます。イメージをゴミ箱に移動し、ゴミ箱からイメージの削除を延期します。
構文
rbd trash mv POOL_NAME/IMAGE_NAME --expires-at "EXPIRATION_TIME"
rbd trash mv POOL_NAME/IMAGE_NAME --expires-at "EXPIRATION_TIME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow EXPIRATION_TIME は、"HH:MM:SS" または "tomorrow" の秒数、時間、日付、時間です。
例
rbd trash mv mypool/myimage --expires-at "60 seconds"
[root@rbd-client ~]# rbd trash mv mypool/myimage --expires-at "60 seconds"Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
myimageはごみ箱に移動します。ただし、60 秒経過するまでゴミ箱から削除できません。ゴミ箱からイメージを復元します。
構文
rbd trash restore POOL_NAME/IMAGE_ID
rbd trash restore POOL_NAME/IMAGE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash restore mypool/14502ff9ee4d
[root@rbd-client ~]# rbd trash restore mypool/14502ff9ee4dCopy to Clipboard Copied! Toggle word wrap Toggle overflow ゴミ箱からイメージを削除します。
構文
rbd trash rm POOL_NAME/IMAGE_ID [--force]
rbd trash rm POOL_NAME/IMAGE_ID [--force]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash rm mypool/14502ff9ee4d
[root@rbd-client ~]# rbd trash rm mypool/14502ff9ee4d Removing image: 100% complete...done.Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの削除を延期した場合は、有効期限までゴミ箱から削除できません。以下のエラーメッセージが表示されます。
例
Deferment time has not expired, please use --force if you really want to remove the image Removing image: 0% complete...failed. 2021-12-02 06:37:49.573 7fb5d237a500 -1 librbd::api::Trash: remove: error: deferment time has not expired.
Deferment time has not expired, please use --force if you really want to remove the image Removing image: 0% complete...failed. 2021-12-02 06:37:49.573 7fb5d237a500 -1 librbd::api::Trash: remove: error: deferment time has not expired.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要イメージをゴミ箱から削除したら、復元できません。
イメージの名前を変更し、ゴミ箱から元の場所に戻します。
構文
rbd trash restore POOL_NAME/IMAGE_ID --image NEW_IMAGE_NAME
rbd trash restore POOL_NAME/IMAGE_ID --image NEW_IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash restore mypool/14502ff9ee4d --image test_image
[root@rbd-client ~]# rbd trash restore mypool/14502ff9ee4d --image test_imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow ゴミ箱から期限切れのイメージを削除します。
構文
rbd trash purge POOL_NAME
rbd trash purge POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd trash purge mypool
[root@rbd-client ~]# rbd trash purge mypoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
mypoolからゴミ箱に移動したイメージをすべて削除します。
2.10. イメージ機能の有効化および無効化 リンクのコピーリンクがクリップボードにコピーされました!
既存のイメージでは、fast-diff、exclusive-lock、object-map または journaling などのイメージ機能を有効または無効にできます。
ディープフラット化 機能は、既存のイメージでのみ無効にできますが、有効化できません。ディープフラット化 を使用するには、イメージ作成時に有効化します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
機能を有効にします。
構文
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAME
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow dataプールのimage1イメージでexclusive-lock機能を有効にするには、以下を実行します。例
rbd feature enable data/image1 exclusive-lock
[root@rbd-client ~]# rbd feature enable data/image1 exclusive-lockCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要fast-diffおよびobject-map機能を有効にする場合には、オブジェクトマップを再構築します。+ 構文
rbd object-map rebuild POOL_NAME/IMAGE_NAME
rbd object-map rebuild POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
機能を無効にします。
構文
rbd feature disable POOL_NAME/IMAGE_NAME FEATURE_NAME
rbd feature disable POOL_NAME/IMAGE_NAME FEATURE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow dataプールのimage2イメージでfast-diff機能を無効にするには、以下を実行します。例
rbd feature disable data/image2 fast-diff
[root@rbd-client ~]# rbd feature disable data/image2 fast-diffCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11. イメージメタデータの使用 リンクのコピーリンクがクリップボードにコピーされました!
Ceph は、カスタムイメージメタデータをキーと値のペアとして追加することをサポートしています。ペアには厳密な形式がありません。
また、メタデータを使用して特定のイメージの RADOS Block Device (RBD) 設定パラメーターを設定することもできます。
rbd image-meta コマンドを使用して、メタデータと連携します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- クライアントノードへの root レベルのアクセス。
手順
新しいメタデータのキー/値のペアを設定するには、以下を行います。
構文
rbd image-meta set POOL_NAME/IMAGE_NAME KEY VALUE
rbd image-meta set POOL_NAME/IMAGE_NAME KEY VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd image-meta set data/dataset last_update 2016-06-06
[root@rbd-client ~]# rbd image-meta set data/dataset last_update 2016-06-06Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
last_updateキーを、dataプールのdatasetイメージの2016-06-06値に設定します。メタデータのキー/値のペアを削除するには、以下を実行します。
構文
rbd image-meta remove POOL_NAME/IMAGE_NAME KEY
rbd image-meta remove POOL_NAME/IMAGE_NAME KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd image-meta remove data/dataset last_update
[root@rbd-client ~]# rbd image-meta remove data/dataset last_updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプール内のdatasetイメージからlast_updateのキーと値のペアを削除します。キーの値を表示するには、次のコマンドを実行します。
構文
rbd image-meta get POOL_NAME/IMAGE_NAME KEY
rbd image-meta get POOL_NAME/IMAGE_NAME KEYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd image-meta get data/dataset last_update
[root@rbd-client ~]# rbd image-meta get data/dataset last_updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
last_updateキーの値を確認します。イメージの全メタデータを表示するには、以下のコマンドを実行します。
構文
rbd image-meta list POOL_NAME/IMAGE_NAME
rbd image-meta list POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd data/dataset image-meta list
[root@rbd-client ~]# rbd data/dataset image-meta listCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのdatasetイメージに設定されたメタデータを一覧表示しています。特定のイメージの Ceph 設定ファイルに設定されている RBD イメージ設定を上書きするには、以下を実行します。
構文
rbd config image set POOL_NAME/IMAGE_NAME PARAMETER VALUE
rbd config image set POOL_NAME/IMAGE_NAME PARAMETER VALUECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd config image set data/dataset rbd_cache false
[root@rbd-client ~]# rbd config image set data/dataset rbd_cache falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのdatasetイメージの RBD キャッシュを無効にします。
関連情報
- 指定可能な設定オプションの一覧は、Red Hat Ceph Storage ブロックデバイスガイドの ブロックデバイスの一般的なオプション セクションを参照してください。
2.12. プール間のイメージの移動 リンクのコピーリンクがクリップボードにコピーされました!
同じクラスターにある異なるプール間で RADOS Block Device (RBD) イメージを移動できます。レプリケートされたプール間、イレイジャーコードのプール間、またはレプリケートされたプールとイレイジャーコードのプールの間での移行が可能です。
このプロセスで、ソースイメージはすべてのスナップショット履歴を含めて、ターゲットイメージにコピーされます。また、オプションでスパースの保持に役立つソースイメージの親へのリンクもコピーされます。ソースイメージは読み取り専用で、ターゲットイメージは書き込み可能です。移行時に、ターゲットイメージがソースイメージにリンクされます。
このプロセスは、新規ターゲットイメージの使用中に、バックグラウンドで安全に実行できます。ただし、新規ターゲットのイメージが、イメージを使用するクライアントの参照先として更新されるように、準備手順前にターゲットイメージを使用してすべてのクライアントを停止してください。
現時点では、krbd カーネルモジュールはライブ移行に対応していません。
前提条件
- ソースイメージを使用するすべてのクライアントを停止しておく。
- クライアントノードへの root レベルのアクセス。
手順
ソースおよびターゲットイメージをクロスリンクする新規ターゲットイメージを作成して、移行を準備します。
構文
rbd migration prepare SOURCE_IMAGE TARGET_IMAGE
rbd migration prepare SOURCE_IMAGE TARGET_IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
- SOURCE_IMAGE: 移動するイメージの名前に置き換えます。POOL/IMAGE_NAME 形式を使用します。
- TARGET_IMAGE: 新しいイメージの名前。POOL/IMAGE_NAME 形式を使用します。
例
rbd migration prepare data/source stack/target
[root@rbd-client ~]# rbd migration prepare data/source stack/targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作成予定の新しいターゲットイメージの状態を確認します。構文
rbd status TARGET_IMAGE
rbd status TARGET_IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 必要に応じて、新規ターゲットイメージ名を使用してクライアントを再起動します。
ソースイメージをターゲットイメージにコピーします。
構文
rbd migration execute TARGET_IMAGE
rbd migration execute TARGET_IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd migration execute stack/target
[root@rbd-client ~]# rbd migration execute stack/targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 移行が完了したことを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソースとターゲットイメージ間のクロスリンクを削除して移行をコミットします。これにより、ソースイメージも削除されます。
構文
rbd migration commit TARGET_IMAGE
rbd migration commit TARGET_IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd migration commit stack/target
[root@rbd-client ~]# rbd migration commit stack/targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow ソースイメージが 1 つ以上のクローンの親である場合は、クローンイメージが使用されていないことを確認した後に
--forceオプションを使用します。例
rbd migration commit stack/target --force
[root@rbd-client ~]# rbd migration commit stack/target --forceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 準備手順の後にクライアントを再起動しなかった場合は、新規ターゲットイメージ名を使用してクライアントを再起動します。
2.13. rbdmap サービス リンクのコピーリンクがクリップボードにコピーされました!
systemd ユニットファイル、rbdmap.service は、ceph-common パッケージに含まれています。rbdmap.service ユニットは、rbdmap シェルスクリプトを実行します。
このスクリプトは、1 つ以上の RBD イメージの RADOS Block Device (RBD) のマッピングと解除を自動化しています。スクリプトはいつでも手動で実行できますが、通常のユースケースでは、システムの起動時に RBD イメージを自動的にマウントし、シャットダウン時にアンマウントします。スクリプトでは、RBD イメージをマウントする map またはマウントを解除する unmap のいずれか 1 つの引数を使用できます。。スクリプトは設定ファイルを解析します。デフォルトは /etc/ceph/rbdmap ですが、RBDMAPFILE という環境変数を使用して上書きできます。設定ファイルの各行は RBD イメージに対応します。
設定ファイルの形式は以下のようになります。
IMAGE_SPEC RBD_OPTS
ここで、IMAGE_SPEC は POOL_NAME / IMAGE_NAME、または IMAGE_NAME だけを指定します。IMAGE_NAME だけを指定する場合は、POOL_NAME は rbd に設定されます。RBD_OPTS は、基礎となる rbd map コマンドに渡すオプションの一覧です。以下のパラメーターとその値は、コンマ区切りの文字列で指定する必要があります。
OPT1=VAL1,OPT2=VAL2,…,OPT_N=VAL_N
これにより、スクリプトは以下のような rbd map コマンドを実行します。
rbd map POOLNAME/IMAGE_NAME --OPT1 VAL1 --OPT2 VAL2
コンマまたは等価記号など、オプションおよび値の場合には、これらの値が置き換えられないように、単純にアポストロフィーを使用することができます。
成功すると、rbd map の操作はイメージを /dev/rbd/rbdX デバイスにマッピングします。この時点で、udev ルールがトリガーされ、分かりやすいデバイス名のシンボリックリンク (例: /dev/rbd/POOL_NAME/IMAGE_NAME) を作成し、実際のマップされたデバイスを参照します。マウントまたはマウント解除を行うには、わかりやすいデバイス名に対応するエントリーを /etc/fstab ファイルに指定する必要があります。RBD イメージの /etc/fstab エントリーを作成する場合は、noauto または nofail マウントオプションを指定することが推奨されます。これにより、init システムが、デバイスの作成前に、先にマウントするのを防ぎます。
2.14. rbdmap サービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
起動時に RADOS Block Device (RBD)、またはシャットダウン時に RADOS Block Device (RBD) を自動的にマップしてマウントするか、マップとマウントを解除します。
前提条件
- マウントを実行するノードへの Root レベルのアクセス。
-
ceph-commonパッケージのインストール。
手順
-
/etc/ceph/rbdmap設定ファイルを開いて編集します。 RBD イメージを設定ファイルに追加します。
例
foo/bar1 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring foo/bar2 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring,options='lock_on_read,queue_depth=1024'
foo/bar1 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring foo/bar2 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring,options='lock_on_read,queue_depth=1024'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 設定ファイルに加えた変更を保存します。
RBD マッピングサービスを有効にします。
例
systemctl enable rbdmap.service
[root@client ~]# systemctl enable rbdmap.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.15. コマンドラインインターフェイスを使用した Ceph ブロックデバイスのパフォーマンスの監視 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage 4.1 以降、パフォーマンスメトリック収集フレームワークは、Ceph OSD および Manager コンポーネントに統合されます。このフレームワークには、他の Ceph ブロックデバイスのパフォーマンス監視ソリューションの構築時にパフォーマンスメトリックを生成して処理するための手段が含まれます。
新しい Ceph Manager モジュール rbd_support は、有効になっている場合にパフォーマンスメトリックを集約します。rbd コマンドには、iotop と iostat の新しい 2 つのアクションがあります。
これらのアクションの初回使用じには、データフィールドの設定に約 30 秒かかります。
前提条件
- Ceph Monitor ノードへのユーザーレベルのアクセス。
手順
rbd_supportCeph Manager モジュールを有効にします。例
ceph mgr module enable rbd_support
[user@mon ~]$ ceph mgr module enable rbd_supportCopy to Clipboard Copied! Toggle word wrap Toggle overflow iotop スタイルのイメージを表示するには、以下のコマンドを実行します。
例
rbd perf image iotop
[user@mon ~]$ rbd perf image iotopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ops、read-ops、write-bytes、read-bytes、write-latency、および read-latency の列は、右と左矢印キーを使用して動的にソートできます。
iostat スタイルのイメージを表示するには、以下を実行します。
例
rbd perf image iostat
[user@mon ~]$ rbd perf image iostatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドは JSON または XML 形式で出力でき、他のコマンドラインツールを使用してソートできます。
2.16. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
-
ブロックデバイスのマッピングとマッピング解除に関する詳細は、3章
rbdカーネルモジュール を参照してください。
第3章 rbd カーネルモジュール リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、rbd カーネルモジュールを使用して Ceph ブロックデバイスにアクセスできます。ブロックデバイスをマップして、マッピングを解除し、これらのマッピングを表示できます。また、rbd カーネルモジュールを使用してイメージの一覧を取得することもできます。
Red Hat Enterprise Linux (RHEL) 以外の Linux ディストリビューションのカーネルクライアントは使用できますが、サポートされていません。これらのカーネルクライアントの使用時に問題がストレージクラスターにある場合には、Red Hat は対応しますが、根本的な原因がカーネルクライアント側にある場合は、ソフトウェアベンダーが問題に対処する必要があります。
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
3.2. Ceph ブロックデバイスの作成および Linux カーネルモジュールクライアントからのデバイスの使用 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Red Hat Ceph Storage ダッシュボードで Linux カーネルモジュールクライアントの Ceph ブロックデバイスを作成できます。システム管理者は、コマンドラインを使用して Linux クライアントでそのブロックデバイスをマップし、パーティション作成、フォーマットおよびマウントが可能です。その後、そのファイルの読み取りと書き込みが可能になります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Red Hat Enterprise Linux クライアント。
3.2.1. ダッシュボードを使用した Linux カーネルモジュールクライアントの Ceph ブロックデバイスの作成 リンクのコピーリンクがクリップボードにコピーされました!
ダッシュボードの Web インターフェイスを使用して、必要な機能だけを有効にし、Linux カーネルモジュールクライアント専用の Ceph ブロックデバイスを作成できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
手順
- ダッシュボードにログインします。
ナビゲーションバーで、Pools をクリックします。
Create ボタンをクリックします。
ダイアログウィンドウで、名前を設定します。
プールタイプを Replicated (レプリケート) に設定します。
配置グループ (PG) 番号を設定します。
PG 番号の選択には、PG calculator を使用します。不明な場合は、Red Hat テクニカルサポート にお問い合わせください。
レプリケートされたサイズを設定します。
rbdアプリケーションを有効にします。プールの作成 をクリックします。
プールが正常に作成されたことを示す通知が表示されます。
Block をクリックします。
Images をクリックします。
Create をクリックします。
は任意のイメージ名、
は先ほど作成した Pool、
は任意サイズのイメージ、
では Layering と Exclusive lock だけが有効な機能となるように設定します。
CreateRBD をクリックします。
イメージが正常に作成されたことを示す通知が表示されます。
関連情報
- 詳細は、コマンドラインでの Linux での Ceph ブロックデバイスのマッピングおよびマウント を参照してください。
- 詳細は、ダッシュボードガイド を参照してください。
3.2.2. コマンドラインを使用した Linux への Ceph ブロックデバイスのマッピングとマウント リンクのコピーリンクがクリップボードにコピーされました!
Linux rbd カーネルモジュールを使用して、Red Hat Enterprise Linux クライアントから Ceph ブロックデバイスをマッピングできます。マッピング後には、パーティション、フォーマット、およびマウントができるため、ファイルに書き込みができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Linux カーネルモジュールクライアントの Ceph ブロックデバイスが作成されている。
- Red Hat Enterprise Linux クライアント。
手順
Red Hat Enterprise Linux クライアントノードで、Red Hat Ceph Storage 4 Tools リポジトリーを有効にします。
Red Hat Enterprise Linux 7
subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
[root@client1 ~]# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
[root@client1 ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-commonRPM パッケージをインストールします。Red Hat Enterprise Linux 7
yum install ceph-common
[root@client1 ~]# yum install ceph-commonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install ceph-common
[root@client1 ~]# dnf install ceph-commonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 設定ファイルを Monitor ノードからクライアントノードにコピーします。
scp root@MONITOR_NODE:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
scp root@MONITOR_NODE:/etc/ceph/ceph.conf /etc/ceph/ceph.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp root@cluster1-node2:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
[root@client1 ~]# scp root@cluster1-node2:/etc/ceph/ceph.conf /etc/ceph/ceph.conf root@192.168.0.32's password: ceph.conf 100% 497 724.9KB/s 00:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーファイルを Monitor ノードからクライアントノードにコピーします。
scp root@MONITOR_NODE:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
scp root@MONITOR_NODE:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp root@cluster1-node2:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
[root@client1 ~]# scp root@cluster1-node2:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring root@192.168.0.32's password: ceph.client.admin.keyring 100% 151 265.0KB/s 00:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをマップします。
rbd map --pool POOL_NAME IMAGE_NAME --id admin
rbd map --pool POOL_NAME IMAGE_NAME --id adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd map --pool block-device-pool image1 --id admin
[root@client1 ~]# rbd map --pool block-device-pool image1 --id admin /dev/rbd0 [root@client1 ~]#Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブロックデバイスにパーティションテーブルを作成します。
parted /dev/MAPPED_BLOCK_DEVICE mklabel msdos
parted /dev/MAPPED_BLOCK_DEVICE mklabel msdosCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
parted /dev/rbd0 mklabel msdos
[root@client1 ~]# parted /dev/rbd0 mklabel msdos Information: You may need to update /etc/fstab.Copy to Clipboard Copied! Toggle word wrap Toggle overflow XFS ファイルシステムのパーティションを作成します。
parted /dev/MAPPED_BLOCK_DEVICE mkpart primary xfs 0% 100%
parted /dev/MAPPED_BLOCK_DEVICE mkpart primary xfs 0% 100%Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
parted /dev/rbd0 mkpart primary xfs 0% 100%
[root@client1 ~]# parted /dev/rbd0 mkpart primary xfs 0% 100% Information: You may need to update /etc/fstab.Copy to Clipboard Copied! Toggle word wrap Toggle overflow パーティションをフォーマットします。
mkfs.xfs /dev/MAPPED_BLOCK_DEVICE_WITH_PARTITION_NUMBER
mkfs.xfs /dev/MAPPED_BLOCK_DEVICE_WITH_PARTITION_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいファイルシステムをマウントするディレクトリーを作成します。
mkdir PATH_TO_DIRECTORY
mkdir PATH_TO_DIRECTORYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
mkdir /mnt/ceph
[root@client1 ~]# mkdir /mnt/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルシステムをマウントします。
mount /dev/MAPPED_BLOCK_DEVICE_WITH_PARTITION_NUMBER PATH_TO_DIRECTORY
mount /dev/MAPPED_BLOCK_DEVICE_WITH_PARTITION_NUMBER PATH_TO_DIRECTORYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
mount /dev/rbd0p1 /mnt/ceph/
[root@client1 ~]# mount /dev/rbd0p1 /mnt/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルシステムがマウントされ、正しいサイズを表示していることを確認します。
df -h PATH_TO_DIRECTORY
df -h PATH_TO_DIRECTORYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
df -h /mnt/ceph/
[root@client1 ~]# df -h /mnt/ceph/ Filesystem Size Used Avail Use% Mounted on /dev/rbd0p1 10G 105M 9.9G 2% /mnt/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、ダッシュボードを使用した Linux カーネルモジュールクライアントの Ceph ブロックデバイスの作成 を参照してください。
- 詳細は、Red Hat Enterprise Linux 8 の ファイルシステムの管理 を参照してください。
- 詳細は、Red Hat Enterprise Linux 7 の ストレージ管理ガイド を参照してください。
3.3. イメージ一覧の取得 リンクのコピーリンクがクリップボードにコピーされました!
Ceph ブロックデバイスイメージの一覧を取得します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ブロックデバイスイメージをマウントするには、まずイメージの一覧を返します。
rbd list
[root@rbd-client ~]# rbd listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. ブロックデバイスのマッピング リンクのコピーリンクがクリップボードにコピーされました!
rbd を使用して、イメージ名をカーネルモジュールにマッピングします。イメージ名、プール名、およびユーザー名を指定する必要があります。rbd がまだロードされていない場合は、RBD カーネルモジュールを読み込みます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
イメージ名をカーネルモジュールにマッピングします。
構文
rbd device map POOL_NAME/IMAGE_NAME --id USER_NAME
rbd device map POOL_NAME/IMAGE_NAME --id USER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd device map rbd/myimage --id admin
[root@rbd-client ~]# rbd device map rbd/myimage --id adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow cephx認証を使用する場合に、キーリングか、シークレットを含むファイルでシークレットを指定します。構文
rbd device map POOL_NAME/IMAGE_NAME --id USER_NAME --keyring PATH_TO_KEYRING
[root@rbd-client ~]# rbd device map POOL_NAME/IMAGE_NAME --id USER_NAME --keyring PATH_TO_KEYRINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow または
rbd device map POOL_NAME/IMAGE_NAME --id USER_NAME --keyfile PATH_TO_FILE
[root@rbd-client ~]# rbd device map POOL_NAME/IMAGE_NAME --id USER_NAME --keyfile PATH_TO_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. マップされたブロックデバイスの表示 リンクのコピーリンクがクリップボードにコピーされました!
rbd コマンドを使用して、カーネルモジュールにマップされるブロックデバイスイメージを表示できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
マップされたブロックデバイスを表示します。
rbd device list
[root@rbd-client ~]# rbd device listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. ブロックデバイスのマッピング解除 リンクのコピーリンクがクリップボードにコピーされました!
unmap オプションを使用してデバイス名を指定し、rbd コマンドでブロックデバイスイメージのマッピングを解除できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ブロックデバイスイメージのマッピングを解除します。
構文
rbd device unmap /dev/rbd/POOL_NAME/IMAGE_NAME
rbd device unmap /dev/rbd/POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd device unmap /dev/rbd/rbd/foo
[root@rbd-client ~]# rbd device unmap /dev/rbd/rbd/fooCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 同じプール内の分離された名前空間内でのイメージの分離 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack または OpenShift Container Storage などの上位システムなしで Ceph ブロックデバイスを直接使用する場合、特定のブロックデバイスイメージへのユーザーアクセスを制限することができませんでした。CephX 機能と組み合わせると、ユーザーを特定のプール名前空間に制限して、イメージへのアクセスを制限することができます。
新規レベルのアイデンティティーである RADOS 名前空間を使用してオブジェクトを特定し、プール内の rados クライアント間を分離できます。たとえば、クライアントは、クライアント向けの名前空間でのみ完全なパーミッションが割り当てられます。これにより、テナントごとに異なる RADOS クライアントが使用されるので、多くの異なるテナントが独自のブロックデバイスイメージにアクセスしているブロックデバイスに特に便利です。
同じプール内の分離された名前空間内でブロックデバイスイメージを分離することができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- すべてのカーネルを 4x および librbd、全クライアントの Librados にアップグレードする。
- モニターおよびクライアントノードへの root レベルのアクセス。
手順
rbdプールを作成します。構文
ceph osd pool create POOL_NAME PG_NUM
ceph osd pool create POOL_NAME PG_NUMCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd pool create mypool 100
[root@mon ~]# ceph osd pool create mypool 100 pool 'mypool' createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow rbdプールを RBD アプリケーションに関連付けます。構文
ceph osd pool application enable POOL_NAME rbd
ceph osd pool application enable POOL_NAME rbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd pool application enable mypool rbd
[root@mon ~]# ceph osd pool application enable mypool rbd enabled application 'rbd' on pool 'mypool'Copy to Clipboard Copied! Toggle word wrap Toggle overflow RBD アプリケーションでプールを初期化します。
構文
rbd pool init -p POOL_NAME
rbd pool init -p POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd pool init -p mypool
[root@mon ~]# rbd pool init -p mypoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow 2 つの名前空間を作成します。
構文
rbd namespace create --namespace NAMESPACE
rbd namespace create --namespace NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー 2 つにこの名前空間へのアクセスを割り当てます。
構文
ceph auth get-or-create client.USER_NAME mon 'profile rbd' osd 'profile rbd pool=rbd namespace=NAMESPACE' -o /etc/ceph/client.USER_NAME.keyring
ceph auth get-or-create client.USER_NAME mon 'profile rbd' osd 'profile rbd pool=rbd namespace=NAMESPACE' -o /etc/ceph/client.USER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.testuser mon 'profile rbd' osd 'profile rbd pool=rbd namespace=namespace1' -o /etc/ceph/client.testuser.keyring ceph auth get-or-create client.newuser mon 'profile rbd' osd 'profile rbd pool=rbd namespace=namespace2' -o /etc/ceph/client.newuser.keyring
[root@mon ~]# ceph auth get-or-create client.testuser mon 'profile rbd' osd 'profile rbd pool=rbd namespace=namespace1' -o /etc/ceph/client.testuser.keyring [root@mon ~]# ceph auth get-or-create client.newuser mon 'profile rbd' osd 'profile rbd pool=rbd namespace=namespace2' -o /etc/ceph/client.newuser.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントのキーを取得します。
構文
ceph auth get client.USER_NAME
ceph auth get client.USER_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブロックデバイスイメージを作成し、プール内の事前定義済みの名前空間を使用します。
構文
rbd create --namespace NAMESPACE IMAGE_NAME --size SIZE_IN_GB
rbd create --namespace NAMESPACE IMAGE_NAME --size SIZE_IN_GBCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create --namespace namespace1 image01 --size 1G rbd create --namespace namespace2 image02 --size 1G
[root@mon ~]# rbd create --namespace namespace1 image01 --size 1G [root@mon ~]# rbd create --namespace namespace2 image02 --size 1GCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 名前空間および関連付けられたイメージの詳細を取得します。
構文
rbd --namespace NAMESPACE ls --long
rbd --namespace NAMESPACE ls --longCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 設定ファイルを Monitor ノードからクライアントノードにコピーします。
scp /etc/ceph/ceph.conf root@CLIENT_NODE:/etc/ceph/
scp /etc/ceph/ceph.conf root@CLIENT_NODE:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.conf root@host02:/etc/ceph/
[root@mon ~]# scp /etc/ceph/ceph.conf root@host02:/etc/ceph/ root@host02's password: ceph.conf 100% 497 724.9KB/s 00:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理キーリングを Ceph Monitor ノードからクライアントノードにコピーします。
構文
scp /etc/ceph/ceph.client.admin.keyring root@CLIENT_NODE:/etc/ceph
scp /etc/ceph/ceph.client.admin.keyring root@CLIENT_NODE:/etc/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.client.admin.keyring root@host02:/etc/ceph/
[root@mon ~]# scp /etc/ceph/ceph.client.admin.keyring root@host02:/etc/ceph/ root@host02's password: ceph.client.admin.keyring 100% 151 265.0KB/s 00:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのキーリングを Ceph Monitor ノードからクライアントノードにコピーします。
構文
scp /etc/ceph/ceph.client.USER_NAME.keyring root@CLIENT_NODE:/etc/ceph/
scp /etc/ceph/ceph.client.USER_NAME.keyring root@CLIENT_NODE:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/client.newuser.keyring root@host02:/etc/ceph/ scp /etc/ceph/client.testuser.keyring root@host02:/etc/ceph/
[root@mon ~]# scp /etc/ceph/client.newuser.keyring root@host02:/etc/ceph/ [root@mon ~]# scp /etc/ceph/client.testuser.keyring root@host02:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブロックデバイスイメージをマッピングします。
構文
rbd map --name NAMESPACE IMAGE_NAME -n client.USER_NAME --keyring /etc/ceph/client.USER_NAME.keyring
rbd map --name NAMESPACE IMAGE_NAME -n client.USER_NAME --keyring /etc/ceph/client.USER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、同じプール内の他の名前空間のユーザーにはアクセスできません。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスを確認します。
例
rbd showmapped
[root@mon ~]# rbd showmapped id pool namespace image snap device 0 rbd namespace1 image01 - /dev/rbd0 1 rbd namespace2 image02 - /dev/rbd1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 スナップショット管理 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Ceph のスナップショット機能を十分に理解している場合には、Red Hat Ceph Storage クラスターに保存されているイメージのスナップショットの管理や、クローン作成に役立ちます。
4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
4.2. Ceph ブロックデバイスのスナップショット リンクのコピーリンクがクリップボードにコピーされました!
スナップショットは、特定の時点におけるイメージの状態の読み取り専用コピーです。Ceph ブロックデバイスの高度な機能の 1 つとして、イメージのスナップショットを作成して、イメージの状態の履歴を保持できることが挙げられます。Ceph は、スナップショット階層機能もサポートしており、仮想マシンイメージなどのイメージのクローンをすばやく簡単に作成できます。Ceph は、QEMU、libvirt、OpenStack、および CloudStack など、rbd コマンドと、より上層レベルのインターフェイスを使用するブロックデバイススナップショットをサポートします。
I/O の発生中にスナップショットが作成された場合、スナップショットは正確なイメージデータまたは最新のイメージデータを取得できず、マウントできる新規イメージに、スナップショットをクローンする必要がある場合があります。Red Hat は、イメージのスナップショットを作成する前に I/O を停止することを推奨します。イメージにファイルシステムが含まれる場合に、ファイルシステムはスナップショットの作成前に整合性のある状態でなければなりません。I/O を停止するには、fsfreeze コマンドを使用します。仮想マシンの場合には、qemu-guest-agent を使用してスナップショットの作成時にファイルシステムを自動的にフリーズできます。
関連情報
-
詳細は、
fsfreeze(8)の man ページを参照してください。
4.3. Ceph ユーザーおよびキーリング リンクのコピーリンクがクリップボードにコピーされました!
cephx が有効な場合には、ユーザー名または ID とユーザーに対応するキーが含まれるキーリングへのパスを指定する必要があります。
Cephx はデフォルトで有効化されています。
以下のパラメーターのエントリーを再追加しなくてもいいように、CEPH_ARGS 環境変数を追加することもできます。
構文
rbd --id USER_ID --keyring=/path/to/secret [commands] rbd --name USERNAME --keyring=/path/to/secret [commands]
rbd --id USER_ID --keyring=/path/to/secret [commands]
rbd --name USERNAME --keyring=/path/to/secret [commands]
例
rbd --id admin --keyring=/etc/ceph/ceph.keyring [commands] rbd --name client.admin --keyring=/etc/ceph/ceph.keyring [commands]
[root@rbd-client ~]# rbd --id admin --keyring=/etc/ceph/ceph.keyring [commands]
[root@rbd-client ~]# rbd --name client.admin --keyring=/etc/ceph/ceph.keyring [commands]
ユーザーとシークレットを CEPH_ARGS 環境変数に追加して、毎回入力する必要がないようにします。
4.4. ブロックデバイススナップショットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Ceph ブロックデバイスのスナップショットを作成します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
snap createオプション、プール名、およびイメージ名を指定します。構文
rbd --pool POOL_NAME snap create --snap SNAP_NAME IMAGE_NAME rbd snap create POOL_NAME/IMAGE_NAME@SNAP_NAME
rbd --pool POOL_NAME snap create --snap SNAP_NAME IMAGE_NAME rbd snap create POOL_NAME/IMAGE_NAME@SNAP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap create --snap snapname foo rbd snap create rbd/foo@snapname
[root@rbd-client ~]# rbd --pool rbd snap create --snap snapname foo [root@rbd-client ~]# rbd snap create rbd/foo@snapnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. ブロックデバイススナップショットの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスのスナップショットを一覧表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プール名とイメージ名を指定します。
構文
rbd --pool POOL_NAME snap ls IMAGE_NAME rbd snap ls POOL_NAME/IMAGE_NAME
rbd --pool POOL_NAME snap ls IMAGE_NAME rbd snap ls POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap ls foo rbd snap ls rbd/foo
[root@rbd-client ~]# rbd --pool rbd snap ls foo [root@rbd-client ~]# rbd snap ls rbd/fooCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. ブロックデバイススナップショットのロールバック リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスのスナップショットをロールバックします。
イメージをスナップショットにロールバックすると、イメージの現行バージョンがスナップショットからのデータで上書きされます。ロールバックの実行にかかる時間は、イメージのサイズとともに増加します。スナップショットにイメージを ロールバック するよりも、クローンするほうが短時間ででき、既存の状態戻す方法として推奨の方法です。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
snap rollbackオプション、プール名、イメージ名、および snap 名を指定します。構文
rbd --pool POOL_NAME snap rollback --snap SNAP_NAME IMAGE_NAME rbd snap rollback POOL_NAME/IMAGE_NAME@SNAP_NAME
rbd --pool POOL_NAME snap rollback --snap SNAP_NAME IMAGE_NAME rbd snap rollback POOL_NAME/IMAGE_NAME@SNAP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap rollback --snap snapname foo rbd snap rollback rbd/foo@snapname
[root@rbd-client ~]# rbd --pool rbd snap rollback --snap snapname foo [root@rbd-client ~]# rbd snap rollback rbd/foo@snapnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. ブロックデバイススナップショットの削除 リンクのコピーリンクがクリップボードにコピーされました!
Ceph ブロックデバイスのスナップショットを削除します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
snap rmオプション、プール名、イメージ名、およびスナップショット名を指定します。構文
rbd --pool POOL_NAME snap rm --snap SNAP_NAME IMAGE_NAME rbd snap rm POOL_NAME-/IMAGE_NAME@SNAP_NAME
rbd --pool POOL_NAME snap rm --snap SNAP_NAME IMAGE_NAME rbd snap rm POOL_NAME-/IMAGE_NAME@SNAP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap rm --snap snapname foo rbd snap rm rbd/foo@snapname
[root@rbd-client ~]# rbd --pool rbd snap rm --snap snapname foo [root@rbd-client ~]# rbd snap rm rbd/foo@snapnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージにクローンがある場合には、クローン作成されたイメージは、親イメージのスナップショットへの参照を保持します。親イメージのスナップショットを削除するには、最初に子イメージをフラット化する必要があります。
Ceph OSD デーモンはデータを非同期的に削除するため、スナップショットを削除してもディスク領域がすぐに解放されません。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの クローンしたイメージ を参照してください。
4.8. ブロックデバイススナップショットのパージ リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイススナップショットをパージします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
snap purgeオプションとイメージ名を指定します。構文
rbd --pool POOL_NAME snap purge IMAGE_NAME rbd snap purge POOL_NAME/IMAGE_NAME
rbd --pool POOL_NAME snap purge IMAGE_NAME rbd snap purge POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap purge foo rbd snap purge rbd/foo
[root@rbd-client ~]# rbd --pool rbd snap purge foo [root@rbd-client ~]# rbd snap purge rbd/fooCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.9. ブロックデバイススナップショットの名前変更 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスのスナップショットの名前を変更します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
スナップショットの名前を変更するには、以下のコマンドを実行します。
構文
rbd snap rename POOL_NAME/IMAGE_NAME@ORIGINAL_SNAPSHOT_NAME POOL_NAME/IMAGE_NAME@NEW_SNAPSHOT_NAME
rbd snap rename POOL_NAME/IMAGE_NAME@ORIGINAL_SNAPSHOT_NAME POOL_NAME/IMAGE_NAME@NEW_SNAPSHOT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd snap rename data/dataset@snap1 data/dataset@snap2
[root@rbd-client ~]# rbd snap rename data/dataset@snap1 data/dataset@snap2Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
dataプールにあるデータセットイメージのsnap1スナップショットの名前がsnap2に変更されます。-
rbd help snap renameコマンドを実行して、スナップショットの名前変更に関する追加情報を表示します。
4.10. Ceph ブロックデバイスの階層化 リンクのコピーリンクがクリップボードにコピーされました!
Ceph は、ブロックデバイススナップショットの多数のコピーオンライト (COW) またはコピーオンリード (COR) のクローンを作成する機能をサポートしています。スナップショットの階層化により、Ceph ブロックデバイスクライアントはイメージを非常に迅速に作成できます。たとえば、Linux 仮想マシンで書き込んだブロックデバイスイメージを作成できます。次に、イメージのスナップショットを作成して、スナップショットを保護し、必要な数のクローンを作成します。スナップショットは読み取り専用であるため、スナップショットのクローンを作成するとセマンティクスが簡素化され、クローンの作成時間を短縮できます。
親 および 子 という用語は、Ceph ブロックデバイスのスナップショット (親)、およびスナップショットからクローン作成された対応のイメージ (子) を意味します。以下のコマンドラインを使用する場合に、これらの用語が重要です。
クローン作成された各イメージ (子) は、親イメージへの参照を保存し、クローン作成されたイメージで親スナップショットを開き、読み取ることができるようになります。この参照は、クローンが フラット化 (スナップショットからの情報が完全にクローンにコピー) されると、削除されます。
スナップショットのクローン作成は、他の Ceph ブロックデバイスイメージのように動作します。クローン作成されたイメージを読み取り、書き込み、クローンし、サイズを変更できます。クローン作成されたイメージには、特別な制限はありません。ただし、スナップショットのクローンはスナップショットを参照するので、クローンを作成する前にスナップショットを保護する 必要があります。
スナップショットのクローンは、コピーオンライト (COW) またはコピーオンリード (COR) のいずれかです。クローンではコピーオンライト (COW) は常に有効で、コピーオンリード (COR) は明示的に有効化する必要があります。コピーオンライト (COW) は、クローン内の未割り当てのオブジェクトへの書き込み時に、親からクローンにデータをコピーします。コピーオンリード (COR) は、クローン内の未割り当てのオブジェクトから読み取る時に、親からクローンにデータをコピーします。クローンからデータの読み取りは、オブジェクトがクローンに存在しない場合、親からのデータのみを読み取ります。RADOS ブロックデバイスは、サイズの大きいイメージを複数のオブジェクトに分割します。デフォルトは 4 MB に設定され、すべてのコピーオンライト (COW) およびすべてのコピーオンリード (COR) 操作が完全なオブジェクトで行われます。つまり、クローンに 1 バイトが書き込まれると、4 MB オブジェクトが親から読み取られ、まだ以前の COW/COR 操作から宛先オブジェクトがクローンに存在しない場合には、クローンに書き込まれます。
コピーオンリード (COR) が有効になっているかどうか。クローンから下層にあるオブジェクトを読み取ることができない場合には、親に再ルーティングされます。実質的に親の数に制限が特にないため、クローンのクローンを作成できます。これは、オブジェクトが見つかるまで、またはベースの親イメージに到達するまで、この再ルーティングが続行されます。コピーオンリード (COR) が有効になっている場合には、クローンから直接読み取ることができない場合には、親からすべてのオブジェクトを読み取り、そのデータをクローンに書き込むことで、今後、親から読み取る必要なく、同じエクステントの読み取りがクローン自体で行われるようにします。
これは基本的に、オンデマンドのオブジェクトごとのフラット化操作です。これは、クローンが親から離れた高遅延接続の場所 (別の地理的場所の別のプールにある親など) にある場合に特に便利です。コピーオンリード (COR) では、読み取りのならし遅延が短縮されます。最初の数回読み取りは、親から追加のデータが読み取られるため、レイテンシーが高くなっています。たとえば、クローンから 1 バイトを読み取る場合に、4 MB を親から読み取り、クローンに書き込みする必要がありますが、それ以降はクローン自体からすべての読み取りが行われます。
スナップショットからコピーオンリード (COR) のクローンを作成するには、ceph.conf ファイルの [global] セクションまたは [client] セクションに rbd_clone_copy_on_read = true を追加してこの機能を明示的に有効にする必要があります。
関連情報
-
フラット化の詳細は、Red Hat Ceph Storage ブロックデバイスガイドの クローン作成されたイメージのフラット化 セクションを参照してください。
4.11. ブロックデバイススナップショットの保護 リンクのコピーリンクがクリップボードにコピーされました!
親スナップショットのクローン作成は、親スナップショットにアクセスします。ユーザーが親のスナップショットを誤って削除した場合に、クローンはすべて破損します。データの損失を防ぐために、デフォルトで、スナップショットをクローンする前に保護する必要があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
以下のコマンドで
POOL_NAME、IMAGE_NAME、およびSNAP_SHOT_NAMEを指定します。構文
rbd --pool POOL_NAME snap protect --image IMAGE_NAME --snap SNAPSHOT_NAME rbd snap protect POOL_NAME/IMAGE_NAME@SNAPSHOT_NAME
rbd --pool POOL_NAME snap protect --image IMAGE_NAME --snap SNAPSHOT_NAME rbd snap protect POOL_NAME/IMAGE_NAME@SNAPSHOT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap protect --image my-image --snap my-snapshot rbd snap protect rbd/my-image@my-snapshot
[root@rbd-client ~]# rbd --pool rbd snap protect --image my-image --snap my-snapshot [root@rbd-client ~]# rbd snap protect rbd/my-image@my-snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記保護されたスナップショットは削除できません。
4.12. ブロックデバイススナップショットのクローン作成 リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイスのスナップショットのクローンを作成して、同じプール内または別のプール内に、スナップショットの子イメージ (読み取りまたは書き込みイメージ) を作成します。ユースケースの例として、読み取り専用のイメージおよびスナップショットをプールでテンプレートとして維持し、別のプールで書き込み可能なクローンとして維持します。
デフォルトでは、クローンを作成する前に、スナップショットを保護する必要があります。クローンの作成前にスナップショットを保護しなくてもいいようにするには、ceph osd set-require-min-compat-client mimic を設定します。これは mimic よりも高い値に設定できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
スナップショットのクローンを作成するには、親プール、スナップショット、子プール、およびイメージ名を指定する必要があります。
構文
rbd --pool POOL_NAME --image PARENT_IMAGE --snap SNAP_NAME --dest-pool POOL_NAME --dest CHILD_IMAGE_NAME rbd clone POOL_NAME/PARENT_IMAGE@SNAP_NAME POOL_NAME/CHILD_IMAGE_NAME
rbd --pool POOL_NAME --image PARENT_IMAGE --snap SNAP_NAME --dest-pool POOL_NAME --dest CHILD_IMAGE_NAME rbd clone POOL_NAME/PARENT_IMAGE@SNAP_NAME POOL_NAME/CHILD_IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd --image my-image --snap my-snapshot --dest-pool rbd --dest new-image rbd clone rbd/my-image@my-snapshot rbd/new-image
[root@rbd-client ~]# rbd --pool rbd --image my-image --snap my-snapshot --dest-pool rbd --dest new-image [root@rbd-client ~]# rbd clone rbd/my-image@my-snapshot rbd/new-imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.13. ブロックデバイススナップショットの保護解除 リンクのコピーリンクがクリップボードにコピーされました!
スナップショットを削除する前に、そのスナップショットを保護解除する必要があります。さらに、クローンからの参照があるスナップショットは、削除できません。スナップショットを削除する前に、スナップショットの各クローンをフラット化する必要があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
以下のコマンドを実行します。
構文
rbd --pool POOL_NAME snap unprotect --image IMAGE_NAME --snap SNAPSHOT_NAME rbd snap unprotect POOL_NAME/IMAGE_NAME@SNAPSHOT_NAME
rbd --pool POOL_NAME snap unprotect --image IMAGE_NAME --snap SNAPSHOT_NAME rbd snap unprotect POOL_NAME/IMAGE_NAME@SNAPSHOT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd snap unprotect --image my-image --snap my-snapshot rbd snap unprotect rbd/my-image@my-snapshot
[root@rbd-client ~]# rbd --pool rbd snap unprotect --image my-image --snap my-snapshot [root@rbd-client ~]# rbd snap unprotect rbd/my-image@my-snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.14. スナップショットの子の一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
スナップショットの子を一覧表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
スナップショットの子を一覧表示するには、以下のコマンドを実行します。
構文
rbd --pool POOL_NAME children --image IMAGE_NAME --snap SNAP_NAME rbd children POOL_NAME/IMAGE_NAME@SNAPSHOT_NAME
rbd --pool POOL_NAME children --image IMAGE_NAME --snap SNAP_NAME rbd children POOL_NAME/IMAGE_NAME@SNAPSHOT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd children --image my-image --snap my-snapshot rbd children rbd/my-image@my-snapshot
rbd --pool rbd children --image my-image --snap my-snapshot rbd children rbd/my-image@my-snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.15. クローンしたイメージのフラット化 リンクのコピーリンクがクリップボードにコピーされました!
クローン作成されたイメージは、親スナップショットへの参照を保持します。親スナップショットへの参照を子クローンから削除すると、実質的に、その情報をスナップショットからクローンにコピーしてイメージをフラット化できます。クローンのフラット化にかかる時間は、スナップショットのサイズとともに増加します。フラット化イメージにはスナップショットからのすべての情報が含まれるため、フラット化されるイメージは階層化されたクローンよりも多くのストレージ領域を使用します。
イメージで ディープフラット 機能が有効になっている場合には、イメージのクローンは、デフォルトで親から分離されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
子イメージに関連付けられた親イメージのスナップショットを削除するには、最初に子イメージをフラット化する必要があります。
構文
rbd --pool POOL_NAME flatten --image IMAGE_NAME rbd flatten POOL_NAME/IMAGE_NAME
rbd --pool POOL_NAME flatten --image IMAGE_NAME rbd flatten POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --pool rbd flatten --image my-image rbd flatten rbd/my-image
[root@rbd-client ~]# rbd --pool rbd flatten --image my-image [root@rbd-client ~]# rbd flatten rbd/my-imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 Ceph ブロックデバイスのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Red Hat Ceph Storage クラスター間でデータイメージをミラーリングして、冗長性向けに別の階層を Ceph ブロックデバイスに追加できます。Ceph ブロックデバイスのミラーリングについて理解して使用すると、サイト障害など、データ損失から守ることができます。Ceph ブロックデバイスのミラーリングには、一方向ミラーリングまたは双方向ミラーリングの 2 つの設定があり、プールと個別のイメージにミラーリングを設定できます。
5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- 2 つのストレージクラスター間のネットワーク接続。
- 各 Red Hat Ceph Storage クラスターの Ceph クライアントノードへのアクセス。
5.2. Ceph ブロックデバイスのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
RADOS Block Device (RBD) ミラーリングとは、2 つ以上の Ceph Storage クラスター間で Ceph ブロックデバイスイメージを非同期にレプリケーションするプロセスのことです。異なる地理的な場所にある Ceph Storage クラスターを配置することで、RBD ミラーリングはサイトの障害からの復旧に役立ちます。ジャーナルベースの Ceph ブロックデバイスのミラーリングにより、読み取りと書き込み、ブロックデバイスのサイズ調整、スナップショット、クローンおよびフラット化など、イメージに対する全変更を含む、ある時点の一貫したレプリカが作成されるようにします。
RBD ミラーリングは排他的ロックとジャーナリング機能を使用して、イメージに対するすべての変更を順番に記録します。これにより、イメージのクラッシュ整合性のあるミラーが利用できるようになりました。
ブロックデバイスイメージをミラーリングするプライマリーおよびセカンダリープールに対応する CRUSH 階層には、容量とパフォーマンスの特性が同じである必要があり、また、追加のレイテンシーなしにミラーリングを行うために十分な帯域幅が必要になります。たとえば、プライマリーストレージクラスター内のイメージへの平均書き込みスループットが X MB/s である場合に、ネットワークはセカンダリーサイトへのネットワーク接続で N * X スループットと、N イメージをミラーリングする安全係数 Y% に対応している必要があります。
rbd-mirror デーモンは、リモートプライマリーイメージから変更を取得し、プライマリーイメージ以外のローカルイメージにそれらの変更を書き込むことで、別の Ceph Storage クラスターにイメージを同期します。rbd-mirror デーモンは、Ceph Storage クラスター 1 台では一方向ミラーリング、Ceph Storage クラスター 2 台ではミラーリング関係に参加する双方向ミラーリングを実行します。
一方向または双方向レプリケーションのどちらかを使用して RBD ミラーリングを機能させる場合に、いくつかの前提条件があります。
- 同じ名前のプールが両方のストレージクラスターに存在する。
- プールには、ジャーナルが有効化された、ミラーリングするイメージが含まれている。
一方向または双方向レプリケーションでは、rbd-mirror の各インスタンスは他の Ceph Storage クラスターを同時に接続できる必要があります。また、ミラーリングを処理するために、ネットワークには 2 つのデータセンターサイトの間で十分な帯域幅が必要です。
一方向レプリケーション
一方向ミラーリングは、ストレージクラスター内のプライマリーイメージまたはプールのイメージがセカンダリーのストレージクラスターにレプリケートされることを意味します。一方向ミラーリングは、複数のセカンダリーストレージクラスターへのレプリケーションにも対応します。
セカンダリーストレージクラスターでは、イメージはプライマリー以外のレプリケーションであるため、Ceph クライアントはイメージに書き込むことができません。データがプライマリーストレージクラスターからセカンダリーストレージクラスターにミラーリングされると、rbd-mirror はセカンダリーストレージクラスター上でのみを実行します。
一方向のミラーリングを機能させるには、いくつかの前提条件があります。
- 2 つの Ceph Storage クラスターがあり、プライマリーストレージクラスターからセカンダリーストレージクラスターにイメージをレプリケートする必要がある。
-
セカンダリーストレージクラスターには、
rbd-mirrorデーモンを実行する Ceph クライアントノードがアタッチされている。rbd-mirrorデーモンは、プライマリーストレージクラスターに接続して、イメージをセカンダリーストレージクラスターに同期します。
双方向レプリケーション
双方向レプリケーションは、プライマリークラスターに rbd-mirror デーモンを追加して、そのクラスターでイメージをデモートし、セカンダリークラスターでプロモートできるようにします。その後、セカンダリークラスターのイメージに対して変更が行われ、セカンダリーからプライマリーに逆方向にレプリケートされます。どちらかのクラスターでのイメージのプロモートとデモートを可能にするには、両方のクラスターで rbd-mirror が実行されている必要があります。現在、双方向レプリケーションは 2 つのサイトの間でのみサポートされています。
双方向のミラーリングを機能させるには、いくつかの前提条件があります。
- ストレージクラスターが 2 台あり、それらのクラスター間でイメージをどちらの方向にでも複製できる。
-
両方のストレージクラスターには、
rbd-mirrorデーモンを実行するクライアントノードが割り当てられている。セカンダリーストレージクラスターで実行されるrbd-mirrorデーモンは、プライマリーストレージクラスターに接続してイメージをセカンダリーに同期し、プライマリーストレージクラスターで実行されているrbd-mirrorデーモンは、セカンダリーストレージクラスターに接続し、イメージをプライマリーに同期します。
Red Hat Ceph Storage 4 では、1 つのクラスターで複数のアクティブな rbd-mirror デーモンを実行するがサポートされます。
ミラーリングモード
ミラーリングは、ストレージクラスターのミラーリングを使用して、プールごとに設定されます。Ceph は、プールのイメージの種類に応じて、2 つのミラーリングモードをサポートします。
- プールモード
- ジャーナリング機能が有効になっているプール内のイメージはすべてミラーリングされます。
- イメージモード
- プール内の特定のイメージのサブセットのみがミラーリングされます。各イメージのミラーリングを別々に有効にする必要があります。
イメージの状態
イメージの変更が可能かどうかは、その状態により異なります。
- プライマリー状態のイメージを変更できます。
- プライマリー状態以外のイメージは変更できません。
イメージでミラーリングが最初に有効化された時点で、イメージはプライマリーに自動的にプロモートされます。以下でプロモートが可能です。
- プールモードでミラーリングを暗黙的に有効にする。
- 特定のイメージのミラーリングを明示的に有効にする。
プライマリーイメージをデモートし、プライマリー以外のイメージをプロモートすることができます。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの イメージのプロモートとデモ セクションを参照してください。
5.3. Ansible を使用した一方向ミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、ceph-ansible を使用して site-a と呼ばれるプライマリーストレージクラスターでイメージの一方向レプリケーションを、site-b と呼ばれるセカンダリーストレージクラスターに設定します。以下の例では、data はミラーリングされるイメージが含まれるプールの名前です。
前提条件
- Red Hat Ceph Storage クラスターを実行する 2 つ。
- Ceph クライアントノード。
- 同じ名前のプールが両方のクラスターに存在する。
- ジャーナルベースのミラーリングでは、プール内のイメージで排他的ロックとジャーナリングを有効にする必要があります。
一方向レプリケーションを使用する場合は、複数のセカンダリーストレージクラスターにミラーリングできます。
手順
イメージの元のクラスターで、イメージの排他的ロックおよびジャーナリング機能を有効にします。
新規イメージの場合は、
--image-featureオプションを使用します。構文
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE[,FEATURE]
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE[,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[root@rbd-client ~]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のイメージ の場合は、
rbd feature enableコマンドを使用します。構文
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAME
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd feature enable data/image1 exclusive-lock,journaling
[root@rbd-client ~]# rbd feature enable data/image1 exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトですべての新規イメージの排他的ロックおよびジャーナリングを有効にするには、以下の設定を Ceph 設定ファイルに追加します。
rbd_default_features = 125
rbd_default_features = 125Copy to Clipboard Copied! Toggle word wrap Toggle overflow
site-aクラスターで、以下の手順を実行します。モニターノードで、
rbd-mirrorデーモンがクラスターへの接続に使用するユーザーを作成します。この例では、site-aユーザーを作成し、そのキーをsite-a.client.site-a.keyringという名前のファイルに出力します。構文
ceph auth get-or-create client.CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/CLUSTER_NAME.client.USER_NAME.keyring
ceph auth get-or-create client.CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/CLUSTER_NAME.client.USER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyring
[root@mon ~]# ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ceph 設定ファイルおよび新たに作成された鍵ファイルをモニターノードから
site-bのモニターおよびクライアントノードにコピーします。 -
Ceph 設定ファイルの名前を
ceph.confから CLUSTER-NAME.conf に変更します。この例では、ファイルは/etc/ceph/site-a.confです。
site-bクラスターで、以下の手順を実行します。-
Ansible 管理ノードで、Ansible インベントリーファイルに
[rbdmirrors]グループを追加します。通常のインベントリーファイルは/etc/ansible/hostsです。 [rbdmirrors]グループの下に、rbd-mirrorデーモンが実行されるsite-bクライアントノードの名前を追加します。デーモンは、イメージの変更をsite-aからsite-bにプルします。[rbdmirrors] ceph-client
[rbdmirrors] ceph-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[root@admin ~]# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow group_vars/rbdmirrors.yml.sampleからgroup_vars/rbdmirrors.ymlにコピーして、新しいrbdmirrors.ymlファイルを作成します。cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.yml
[root@admin ceph-ansible]# cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
group_vars/rbdmirrors.ymlファイルを開いて編集します。 ceph_rbd_mirror_configureをtrueに設定します。ceph_rbd_mirror_poolは、イメージをミラーリングするプールに設定します。この例では、dataはプールの名前です。ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"
ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
ceph-ansibleはプール内の全イメージをミラーリングするプールモードを使用してミラーリングを設定します。ミラーリングが明示的に有効になっているイメージのみがミラーリングされるイメージモードを有効にします。イメージモードを有効にするには、ceph_rbd_mirror_modeをimageに設定します。ceph_rbd_mirror_mode: image
ceph_rbd_mirror_mode: imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow rbd-mirrorがプルするクラスターの名前を設定します。以下の例では、他のクラスターはsite-aです。ceph_rbd_mirror_remote_cluster: "site-a"
ceph_rbd_mirror_remote_cluster: "site-a"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 管理ノードで、
ceph_rbd_mirror_remote_userを使用してキーのユーザー名を設定します。キーの作成時に使用した同じ名前を使用します。この例では、ユーザーの名前はclient.site-aです。ceph_rbd_mirror_remote_user: "client.site-a"
ceph_rbd_mirror_remote_user: "client.site-a"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-ansible ユーザーとして、Ansible Playbook を実行します。
ベアメタルデプロイメント
ansible-playbook site.yml --limit rbdmirrors -i hosts
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーデプロイメント
ansible-playbook site-container.yml --limit rbdmirrors -i hosts
[ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ansible 管理ノードで、Ansible インベントリーファイルに
site-aクラスターとsite-bクラスターの両方で、必要なイメージのミラーリングを明示的に有効にします。構文
ジャーナルベースのミラーリング
rbd mirror image enable POOL/IMAGE
rbd mirror image enable POOL/IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
rbd mirror image enable POOL/IMAGE snapshot
rbd mirror image enable POOL/IMAGE snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image enable data/image1 rbd mirror image enable data/image1 snapshot
[root@mon ~]# rbd mirror image enable data/image1 [root@mon ~]# rbd mirror image enable data/image1 snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新規イメージをピアクラスターにミラーリングする場合は常にこの手順を繰り返します。
ミラーリングのステータスを確認します。
site-bクラスターの Ceph Monitor ノードから以下のコマンドを実行します。例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サイト間の接続によって、ミラーリングでイメージの同期に時間がかかる場合があります。
5.4. Ansible を使用した双方向ミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、ceph-ansible を使用して双方向のレプリケーションを設定し、イメージを site-a と site-b と呼ばれる 2 つのクラスター間でミラーリングできるようにします。以下の例では、data はミラーリングされるイメージが含まれるプールの名前です。
双方向ミラーリングでは、どちらのクラスターにおいても、同じイメージへの同時書き込みはできません。イメージは一方のクラスターでプロモートされ、他方のクラスターではデモートされます。ステータスに応じて、それらは一方向または反対方向でミラリングされます。
前提条件
- Red Hat Ceph Storage クラスターを実行する 2 つ。
- 各クラスターにクライアントノードがある。
- 同じ名前のプールが両方のクラスターに存在する。
- ジャーナルベースのミラーリングでは、プール内のイメージで排他的ロックとジャーナリングを有効にする必要があります。
手順
イメージの元のクラスターで、イメージの排他的ロックおよびジャーナリング機能を有効にします。
新規イメージの場合は、
--image-featureオプションを使用します。構文
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE[,FEATURE]
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE[,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[root@rbd-client ~]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のイメージ の場合は、
rbd feature enableコマンドを使用します。構文
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAME
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd feature enable data/image1 exclusive-lock,journaling
[root@rbd-client ~]# rbd feature enable data/image1 exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトですべての新規イメージの排他的ロックおよびジャーナリングを有効にするには、以下の設定を Ceph 設定ファイルに追加します。
rbd_default_features = 125
rbd_default_features = 125Copy to Clipboard Copied! Toggle word wrap Toggle overflow
site-aクラスターで、以下の手順を実行します。モニターノードで、
rbd-mirrorデーモンがクラスターへの接続に使用するユーザーを作成します。この例では、site-aユーザーを作成し、そのキーをsite-a.client.site-a.keyringという名前のファイルに出力します。Ceph 設定ファイルは/etc/ceph/site-a.confです。構文
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyring -c /etc/ceph/PRIMARY_CLUSTER_NAME.conf
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyring -c /etc/ceph/PRIMARY_CLUSTER_NAME.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyring -c /etc/ceph/site-a.conf
[root@mon ~]# ceph auth get-or-create client.site-a mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-a.client.site-a.keyring -c /etc/ceph/site-a.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングは
site-bクラスターにコピーします。rbd-daemonが実行されるsite-bクラスターのクライアントノードにファイルをコピーします。このファイルを/etc/ceph/site-a.client.site-a.keyringに保存します。構文
scp /etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyring root@SECONDARY_CLIENT_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyring
scp /etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyring root@SECONDARY_CLIENT_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.client.USER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/site-a.client.site-a.keyring root@client.site-b:/etc/ceph/site-a.client.site-a.keyring
[root@mon ~]# scp /etc/ceph/site-a.client.site-a.keyring root@client.site-b:/etc/ceph/site-a.client.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 設定ファイルをモニターノードから
site-bモニターノードおよびクライアントノードにコピーします。この例の Ceph 設定ファイルは/etc/ceph/site-a.confです。構文
scp /etc/ceph/PRIMARY_CLUSTER_NAME.conf root@SECONDARY_MONITOR_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.conf scp /etc/ceph/PRIMARY_CLUSTER_NAME.conf user@SECONDARY_CLIENT_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.conf
scp /etc/ceph/PRIMARY_CLUSTER_NAME.conf root@SECONDARY_MONITOR_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.conf scp /etc/ceph/PRIMARY_CLUSTER_NAME.conf user@SECONDARY_CLIENT_NODE_NAME:/etc/ceph/PRIMARY_CLUSTER_NAME.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/site-a.conf root@mon.site-b:/etc/ceph/site-a.conf scp /etc/ceph/site-a.conf user@client.site-b:/etc/ceph/site-a.conf
[root@mon ~]# scp /etc/ceph/site-a.conf root@mon.site-b:/etc/ceph/site-a.conf [root@mon ~]# scp /etc/ceph/site-a.conf user@client.site-b:/etc/ceph/site-a.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow
site-bクラスターで、以下の手順を実行します。-
site-aからsite-bへのミラーリングを設定します。Ansible 管理ノードで、rbdmirrorsグループを Ansible インベントリーファイル (通常は/usr/share/ceph-ansible/hosts) に追加します。 [rbdmirrors]グループの下に、rbd-mirrorデーモンが実行されるsite-bクライアントノードの名前を追加します。このデーモンは、イメージの変更をsite-aからsite-bにプルします。例
[rbdmirrors] client.site-b
[rbdmirrors] client.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[root@admin ~]$ cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow group_vars/rbdmirrors.yml.sampleからgroup_vars/rbdmirrors.ymlにコピーして、新しいrbdmirrors.ymlファイルを作成します。cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.yml
[root@admin ceph-ansible]# cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
group_vars/rbdmirrors.ymlファイルを開いて編集します。 ceph_rbd_mirror_configureをtrueに設定し、ceph_rbd_mirror_poolをイメージをミラーリングするプールに設定します。この例では、dataはプールの名前です。ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"
ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトでは、
ceph-ansibleはプール内の全イメージをミラーリングするプールモードを使用してミラーリングを設定します。ミラーリングが明示的に有効になっているイメージのみがミラーリングされるイメージモードを有効にします。イメージモードを有効にするには、ceph_rbd_mirror_modeをimageに設定します。ceph_rbd_mirror_mode: image
ceph_rbd_mirror_mode: imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow group_vars/rbdmirrors.ymlファイルにrbd-mirrorのクラスターの名前を設定します。以下の例では、他のクラスターはsite-aです。ceph_rbd_mirror_remote_cluster: "site-a"
ceph_rbd_mirror_remote_cluster: "site-a"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 管理ノードで、
group_vars/rbdmirrors.ymlファイルのceph_rbd_mirror_remote_userを使用してキーのユーザー名を設定します。キーの作成時に使用した同じ名前を使用します。この例では、ユーザーの名前はclient.site-aです。ceph_rbd_mirror_remote_user: "client.site-a"
ceph_rbd_mirror_remote_user: "client.site-a"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible ユーザーとして、Ansible Playbook を実行します。
ベアメタルデプロイメント
ansible-playbook site.yml --limit rbdmirrors -i hosts
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーデプロイメント
ansible-playbook site-container.yml --limit rbdmirrors -i hosts
[user@admin ceph-ansible]$ ansible-playbook site-container.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ミラーリングのステータスを確認します。
site-bクラスターで、Ceph Monitor ノードから以下のコマンドを実行します。例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サイト間の接続によって、ミラーリングでイメージの同期に時間がかかる場合があります。
site-bクラスターで、以下の手順を実行します。手順は上記とほぼ同じです。モニターノードで、
rbd-mirrorデーモンがクラスターへの接続に使用するユーザーを作成します。この例では、site-bユーザーを作成し、そのキーをsite-b.client.site-b.keyringという名前のファイルに出力します。Ceph 設定ファイルは/etc/ceph/site-b.confです。構文
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyring -c /etc/ceph/SECONDARY_CLUSTER_NAME.conf
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyring -c /etc/ceph/SECONDARY_CLUSTER_NAME.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.site-b mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-b.client.site-b.keyring -c /etc/ceph/site-b.conf
[root@mon ~]# ceph auth get-or-create client.site-b mon 'profile rbd' osd 'profile rbd pool=data' -o /etc/ceph/site-b.client.site-b.keyring -c /etc/ceph/site-b.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングを
site-aクラスターにコピーします。rbd-daemonが実行されるsite-aクラスターのクライアントノードにファイルをコピーします。ファイルを/etc/ceph/site-b.client.site-b.keyringに保存します。構文
scp /etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyring root@PRIMARY_CLIENT_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyring
scp /etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyring root@PRIMARY_CLIENT_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.client.USER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/site-b.client.site-b.keyring root@client.site-a:/etc/ceph/site-b.client.site-b.keyring
[root@mon ~]# scp /etc/ceph/site-b.client.site-b.keyring root@client.site-a:/etc/ceph/site-b.client.site-b.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph 設定ファイルをモニターノードから
site-aモニターノードおよびクライアントノードにコピーします。この例の Ceph 設定ファイルは/etc/ceph/site-b.confです。構文
scp /etc/ceph/SECONDARY_CLUSTER_NAME.conf root@PRIMARY_MONITOR_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.conf scp /etc/ceph/SECONDARY_CLUSTER_NAME.conf user@PRIMARY_CLIENT_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.conf
scp /etc/ceph/SECONDARY_CLUSTER_NAME.conf root@PRIMARY_MONITOR_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.conf scp /etc/ceph/SECONDARY_CLUSTER_NAME.conf user@PRIMARY_CLIENT_NODE_NAME:/etc/ceph/SECONDARY_CLUSTER_NAME.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/site-b.conf root@mon.site-a:/etc/ceph/site-b.conf scp /etc/ceph/site-b.conf user@client.site-a:/etc/ceph/site-b.conf
[root@mon ~]# scp /etc/ceph/site-b.conf root@mon.site-a:/etc/ceph/site-b.conf [root@mon ~]# scp /etc/ceph/site-b.conf user@client.site-a:/etc/ceph/site-b.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow
site-aクラスターで、以下の手順を実行します。-
site-bからsite-aへのミラーリングを設定します。Ansible 管理ノードで、rbdmirrorsグループを Ansible インベントリーファイル (通常は/usr/share/ceph-ansible/hosts) に追加します。 [rbdmirrors]グループの下に、rbd-mirrorデーモンが実行されるsite-aクライアントノードの名前を追加します。このデーモンは、イメージの変更をsite-bからsite-aにプルします。例
[rbdmirrors] client.site-a
[rbdmirrors] client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[root@admin ~]# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow group_vars/rbdmirrors.yml.sampleからgroup_vars/rbdmirrors.ymlにコピーして、新しいrbdmirrors.ymlファイルを作成します。cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.yml
[root@admin ceph-ansible]# cp group_vars/rbdmirrors.yml.sample group_vars/rbdmirrors.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
group_vars/rbdmirrors.ymlファイルを開いて編集します。 ceph_rbd_mirror_configureをtrueに設定し、ceph_rbd_mirror_poolをイメージをミラーリングするプールに設定します。この例では、dataはプールの名前です。ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"
ceph_rbd_mirror_configure: true ceph_rbd_mirror_pool: "data"Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: デフォルトでは、
ceph-ansibleはプール内の全イメージをミラーリングするプールモードを使用してミラーリングを設定します。ミラーリングが明示的に有効になっているイメージのみがミラーリングされるイメージモードを有効にします。イメージモードを有効にするには、ceph_rbd_mirror_modeをimageに設定します。ceph_rbd_mirror_mode: image
ceph_rbd_mirror_mode: imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 管理ノードで、
group_vars/rbdmirrors.ymlファイルにrbd-mirrorクラスターの名前を設定します。例に従い、その他のクラスターの名前はsite-bとします。ceph_rbd_mirror_remote_cluster: "site-b"
ceph_rbd_mirror_remote_cluster: "site-b"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 管理ノードで、
group_vars/rbdmirrors.ymlファイルのceph_rbd_mirror_remote_userを使用してキーのユーザー名を設定します。この例では、ユーザーの名前はclient.site-bです。ceph_rbd_mirror_remote_user: "client.site-b"
ceph_rbd_mirror_remote_user: "client.site-b"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理ノードで Ansible ユーザーとして、Ansible Playbook を実行します。
ベアメタルデプロイメント
ansible-playbook site.yml --limit rbdmirrors -i hosts
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーデプロイメント
ansible-playbook site-container.yml --limit rbdmirrors -i hosts
[user@admin ceph-ansible]$ ansible-playbook site-container.yml --limit rbdmirrors -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
site-aクラスターとsite-bクラスターの両方で、必要なイメージのミラーリングを明示的に有効にします。構文
ジャーナルベースのミラーリング
rbd mirror image enable POOL/IMAGE
rbd mirror image enable POOL/IMAGECopy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
rbd mirror image enable POOL/IMAGE snapshot
rbd mirror image enable POOL/IMAGE snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image enable data/image1 rbd mirror image enable data/image1 snapshot
[root@mon ~]# rbd mirror image enable data/image1 [root@mon ~]# rbd mirror image enable data/image1 snapshotCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新規イメージをピアクラスターにミラーリングする場合は常にこの手順を繰り返します。
ミラーリングのステータスを確認します。
site-aクラスターのクライアントノードから以下のコマンドを実行します。例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. コマンドラインインターフェイスを使用した一方向ミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、プライマリーストレージクラスターからセカンダリーストレージクラスターへのプールの一方向レプリケーションを設定します。
一方向レプリケーションを使用する場合は、複数のセカンダリーストレージクラスターにミラーリングできます。
このセクションの例には、プライマリーイメージでプライマリーストレージクラスターを site-a として、そのイメージをレプリケートするセカンダリーストレージクラスターを site-b として参照し、2 つのストレージクラスターを区別します。これらの例で使用されるプール名は data と呼ばれます。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- 各ストレージクラスターの Ceph クライアントノードへの Root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- ジャーナルベースのミラーリングでは、プール内のイメージで排他的ロックとジャーナリングを有効にする必要があります。
手順
site-bストレージクラスターに接続されているクライアントノードにrbd-mirrorパッケージをインストールします。Red Hat Enterprise Linux 7
yum install rbd-mirror
[root@rbd-client ~]# yum install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install rbd-mirror
[root@rbd-client ~]# dnf install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パッケージは Red Hat Ceph Storage Tools リポジトリーによって提供されます。
イメージ上で排他的ロックおよびジャーナリング機能を有効にします。
新規イメージの場合は、
--image-featureオプションを使用します。構文
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE [,FEATURE]
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE [,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[root@rbd-client ~]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のイメージ の場合は、
rbd feature enableコマンドを使用します。構文
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE [,FEATURE]
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE [,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd feature enable data/image1 exclusive-lock,journaling
[root@rbd-client ~]# rbd feature enable data/image1 exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトですべての新規イメージの排他的ロックおよびジャーナリングを有効にするには、以下の設定を Ceph 設定ファイルに追加します。
rbd_default_features = 125
rbd_default_features = 125Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ミラーリングモード (pool または image モード) を選択します。
重要スナップショットベースのミラーリングには、イメージモードを使用します。
プールモード の有効化:
構文
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool enable data pool
[root@rbd-client ~]# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプール全体のミラーリングを有効にします。イメージモード の有効化:
構文
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool enable data image
[root@rbd-client ~]# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプールでイメージモードのミラーリングを有効にします。ミラーリングが正常に有効になっていることを確認します。
構文
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool info data
[root@rbd-client ~]# rbd mirror pool info data Mode: image Site Name: 94cbd9ca-7f9a-441a-ad4b-52a33f9b7148 Peer Sites: noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
site-aクラスターで、以下の手順を実行します。Ceph クライアントノードで、ユーザーを作成します。
構文
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.rbd-mirror.site-a mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
[root@rbd-client-site-a ~]# ceph auth get-or-create client.rbd-mirror.site-a mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングを
site-bクラスターにコピーします。構文
scp /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring root@SECONDARY_CLUSTER:_PATH_
scp /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring root@SECONDARY_CLUSTER:_PATH_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.client.rbd-mirror.site-a.keyring root@rbd-client-site-b:/etc/ceph/
[root@rbd-client-site-a ~]# scp /etc/ceph/ceph.client.rbd-mirror.site-a.keyring root@rbd-client-site-b:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph クライアントノードで、ストレージクラスターのピアをブートストラップします。
ストレージクラスターのピアをプールに登録します。
構文
rbd mirror pool peer bootstrap create --site-name LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap create --site-name LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool peer bootstrap create --site-name rbd-mirror.site-a data > /root/bootstrap_token_rbd-mirror.site-a
[root@rbd-client-site-a ~]# rbd mirror pool peer bootstrap create --site-name rbd-mirror.site-a data > /root/bootstrap_token_rbd-mirror.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記bootstrap コマンドの例では、
client.rbd-mirror-peerCeph ユーザーを作成します。ブートストラップトークンファイルを
site-bストレージクラスターにコピーします。構文
scp PATH_TO_BOOTSTRAP_TOKEN root@SECONDARY_CLUSTER:/root/
scp PATH_TO_BOOTSTRAP_TOKEN root@SECONDARY_CLUSTER:/root/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /root/bootstrap_token_site-a root@ceph-rbd2:/root/
[root@rbd-client-site-a ~]# scp /root/bootstrap_token_site-a root@ceph-rbd2:/root/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
site-bクラスターで、以下の手順を実行します。クライアントノードで、ユーザーを作成します。
構文
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.rbd-mirror.site-b mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-b.keyring
[root@rbd-client-site-b ~]# ceph auth get-or-create client.rbd-mirror.site-b mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-b.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングを
site-aクラスター (Ceph クライアントノード) にコピーします。構文
scp /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring root@PRIMARY_CLUSTER:_PATH_
scp /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring root@PRIMARY_CLUSTER:_PATH_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.client.rbd-mirror.site-b.keyring root@rbd-client-site-a:/etc/ceph/
[root@rbd-client-site-b ~]# scp /etc/ceph/ceph.client.rbd-mirror.site-b.keyring root@rbd-client-site-a:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブートストラップトークンをインポートします。
構文
rbd mirror pool peer bootstrap import --site-name LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap import --site-name LOCAL_SITE_NAME --direction rx-only POOL_NAME PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool peer bootstrap import --site-name rbd-mirror.site-b --direction rx-only data /root/bootstrap_token_rbd-mirror.site-a
[root@rbd-client-site-b ~]# rbd mirror pool peer bootstrap import --site-name rbd-mirror.site-b --direction rx-only data /root/bootstrap_token_rbd-mirror.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記一方向 RBD ミラーリングでは、ピアのブートストラップ時に双方向のミラーリングがデフォルトであるため
--direction rx-only引数を使用する必要があります。クライアントノードで
rbd-mirrorデーモンを有効にして起動します。構文
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.CLIENT_ID systemctl start ceph-rbd-mirror@rbd-mirror.CLIENT_ID
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.CLIENT_ID systemctl start ceph-rbd-mirror@rbd-mirror.CLIENT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLIENT_IDは、先ほど作成した Ceph ユーザーに置き換えます。例
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.site-a systemctl start ceph-rbd-mirror@rbd-mirror.site-a
[root@rbd-client-site-b ~]# systemctl enable ceph-rbd-mirror.target [root@rbd-client-site-b ~]# systemctl enable ceph-rbd-mirror@rbd-mirror.site-a [root@rbd-client-site-b ~]# systemctl start ceph-rbd-mirror@rbd-mirror.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
重要各
rbd-mirrorデーモンには一意のクライアント ID が必要です。ミラーリングのステータスを確認するには、
site-aおよびsite-bクラスターの Ceph Monitor ノードから以下のコマンドを実行します。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サイト間の接続によって、ミラーリングでイメージの同期に時間がかかる場合があります。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
- Ceph ユーザーの詳細は、Red Hat Ceph Storage 管理ガイドの ユーザーの管理 セクションを参照してください。
5.6. コマンドラインインターフェイスを使用した双方向ミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、プライマリーストレージクラスターとセカンダリーストレージクラスターとの間に、プールの双方向レプリケーションを設定します。
双方向レプリケーションを使用する場合にミラーリングできるのは、2 つのストレージクラスター間だけです。
このセクションの例には、プライマリーイメージでプライマリーストレージクラスターを site-a として、そのイメージをレプリケートするセカンダリーストレージクラスターを site-b として参照し、2 つのストレージクラスターを区別します。これらの例で使用されるプール名は data と呼ばれます。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- 各ストレージクラスターの Ceph クライアントノードへの Root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- ジャーナルベースのミラーリングでは、プール内のイメージで排他的ロックとジャーナリングを有効にする必要があります。
手順
site-aストレージクラスターに接続されたクライアントノードおよびsite-bストレージクラスターに接続されたクライアントノードにrbd-mirrorパッケージをインストールします。Red Hat Enterprise Linux 7
yum install rbd-mirror
[root@rbd-client ~]# yum install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install rbd-mirror
[root@rbd-client ~]# dnf install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パッケージは Red Hat Ceph Storage Tools リポジトリーによって提供されます。
イメージ上で排他的ロックおよびジャーナリング機能を有効にします。
新規イメージの場合は、
--image-featureオプションを使用します。構文
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE [,FEATURE]
rbd create IMAGE_NAME --size MEGABYTES --pool POOL_NAME --image-feature FEATURE [,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journaling
[root@rbd-client ~]# rbd create image1 --size 1024 --pool data --image-feature exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のイメージ の場合は、
rbd feature enableコマンドを使用します。構文
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE [,FEATURE]
rbd feature enable POOL_NAME/IMAGE_NAME FEATURE [,FEATURE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd feature enable data/image1 exclusive-lock,journaling
[root@rbd-client ~]# rbd feature enable data/image1 exclusive-lock,journalingCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトですべての新規イメージの排他的ロックおよびジャーナリングを有効にするには、以下の設定を Ceph 設定ファイルに追加します。
rbd_default_features = 125
rbd_default_features = 125Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ミラーリングモード (pool または image モード) を選択します。
重要スナップショットベースのミラーリングには、イメージモードを使用します。
プールモード の有効化:
構文
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool enable data pool
[root@rbd-client ~]# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプール全体のミラーリングを有効にします。イメージモード の有効化:
構文
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool enable data image
[root@rbd-client ~]# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプールでイメージモードのミラーリングを有効にします。ミラーリングが正常に有効になっていることを確認します。
構文
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool info data
[root@rbd-client ~]# rbd mirror pool info data Mode: image Site Name: 94cbd9ca-7f9a-441a-ad4b-52a33f9b7148 Peer Sites: noneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
site-aクラスターで、以下の手順を実行します。Ceph クライアントノードで、ユーザーを作成します。
構文
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring
ceph auth get-or-create client.PRIMARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.rbd-mirror.site-a mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyring
[root@rbd-client-site-a ~]# ceph auth get-or-create client.rbd-mirror.site-a mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-a.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングを
site-bクラスターにコピーします。構文
scp /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring root@SECONDARY_CLUSTER:_PATH_
scp /etc/ceph/ceph.PRIMARY_CLUSTER_NAME.keyring root@SECONDARY_CLUSTER:_PATH_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.client.rbd-mirror.site-a.keyring root@rbd-client-site-b:/etc/ceph/
[root@rbd-client-site-a ~]# scp /etc/ceph/ceph.client.rbd-mirror.site-a.keyring root@rbd-client-site-b:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph クライアントノードで、ストレージクラスターのピアをブートストラップします。
ストレージクラスターのピアをプールに登録します。
構文
rbd mirror pool peer bootstrap create --site-name LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap create --site-name LOCAL_SITE_NAME POOL_NAME > PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool peer bootstrap create --site-name rbd-mirror.site-a data > /root/bootstrap_token_rbd-mirror.site-a
[root@rbd-client-site-a ~]# rbd mirror pool peer bootstrap create --site-name rbd-mirror.site-a data > /root/bootstrap_token_rbd-mirror.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記bootstrap コマンドの例では、
client.rbd-mirror-peerCeph ユーザーを作成します。ブートストラップトークンファイルを
site-bストレージクラスターにコピーします。構文
scp PATH_TO_BOOTSTRAP_TOKEN root@SECONDARY_CLUSTER:/root/
scp PATH_TO_BOOTSTRAP_TOKEN root@SECONDARY_CLUSTER:/root/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /root/bootstrap_token_site-a root@ceph-rbd2:/root/
[root@rbd-client-site-a ~]# scp /root/bootstrap_token_site-a root@ceph-rbd2:/root/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
site-bクラスターで、以下の手順を実行します。クライアントノードで、ユーザーを作成します。
構文
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring
ceph auth get-or-create client.SECONDARY_CLUSTER_NAME mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth get-or-create client.rbd-mirror.site-b mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-b.keyring
[root@rbd-client-site-b ~]# ceph auth get-or-create client.rbd-mirror.site-b mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/ceph.client.rbd-mirror.site-b.keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow キーリングを
site-aクラスター (Ceph クライアントノード) にコピーします。構文
scp /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring root@PRIMARY_CLUSTER:_PATH_
scp /etc/ceph/ceph.SECONDARY_CLUSTER_NAME.keyring root@PRIMARY_CLUSTER:_PATH_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.client.rbd-mirror.site-b.keyring root@rbd-client-site-a:/etc/ceph/
[root@rbd-client-site-b ~]# scp /etc/ceph/ceph.client.rbd-mirror.site-b.keyring root@rbd-client-site-a:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブートストラップトークンをインポートします。
構文
rbd mirror pool peer bootstrap import --site-name LOCAL_SITE_NAME --direction rx-tx POOL_NAME PATH_TO_BOOTSTRAP_TOKEN
rbd mirror pool peer bootstrap import --site-name LOCAL_SITE_NAME --direction rx-tx POOL_NAME PATH_TO_BOOTSTRAP_TOKENCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool peer bootstrap import --site-name rbd-mirror.site-b --direction rx-tx data /root/bootstrap_token_rbd-mirror.site-a
[root@rbd-client-site-b ~]# rbd mirror pool peer bootstrap import --site-name rbd-mirror.site-b --direction rx-tx data /root/bootstrap_token_rbd-mirror.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ピアのブートストラップ時には双方向ミラーリングがデフォルトであるため、
--direction引数はオプションです。
プライマリーおよびセカンダリークライアントノードで
rbd-mirrorデーモンを有効にして起動します。構文
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.CLIENT_ID systemctl start ceph-rbd-mirror@rbd-mirror.CLIENT_ID
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.CLIENT_ID systemctl start ceph-rbd-mirror@rbd-mirror.CLIENT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLIENT_IDは、先ほど作成した Ceph ユーザーに置き換えます。例
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.site-a systemctl start ceph-rbd-mirror@rbd-mirror.site-a systemctl enable ceph-rbd-mirror@rbd-mirror.site-b systemctl start ceph-rbd-mirror@rbd-mirror.site-b
[root@rbd-client-site-a ~]# systemctl enable ceph-rbd-mirror.target [root@rbd-client-site-a ~]# systemctl enable ceph-rbd-mirror@rbd-mirror.site-a [root@rbd-client-site-a ~]# systemctl start ceph-rbd-mirror@rbd-mirror.site-a [root@rbd-client-site-a ~]# systemctl enable ceph-rbd-mirror@rbd-mirror.site-b [root@rbd-client-site-a ~]# systemctl start ceph-rbd-mirror@rbd-mirror.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、プライマリークラスター
site-aでユーザーを有効化されています。例
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@rbd-mirror.site-a systemctl start ceph-rbd-mirror@rbd-mirror.site-a systemctl enable ceph-rbd-mirror@rbd-mirror.site-b systemctl start ceph-rbd-mirror@rbd-mirror.site-b
[root@rbd-client-site-b ~]# systemctl enable ceph-rbd-mirror.target [root@rbd-client-site-b ~]# systemctl enable ceph-rbd-mirror@rbd-mirror.site-a [root@rbd-client-site-b ~]# systemctl start ceph-rbd-mirror@rbd-mirror.site-a [root@rbd-client-site-b ~]# systemctl enable ceph-rbd-mirror@rbd-mirror.site-b [root@rbd-client-site-b ~]# systemctl start ceph-rbd-mirror@rbd-mirror.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、ユーザーはセカンダリークラスター
site-bで有効にされています。重要各
rbd-mirrorデーモンには一意のクライアント ID が必要です。ミラーリングのステータスを確認するには、
site-aおよびsite-bクラスターの Ceph Monitor ノードから以下のコマンドを実行します。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ジャーナルベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットベースのミラーリング
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サイト間の接続によって、ミラーリングでイメージの同期に時間がかかる場合があります。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
- Ceph ユーザーの詳細は、Red Hat Ceph Storage 管理ガイドの ユーザーの管理 セクションを参照してください。
5.7. Ceph ブロックデバイスのミラーリングの管理 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Ceph ブロックデバイスのミラーリング環境の管理に役立つさまざまなタスクを実行できます。次のタスクを実行できます。
- ストレージクラスターピアの情報を表示する。
- ストレージクラスターピアを追加または削除する。
- プールまたはイメージのミラーリングステータスを取得する。
- プールまたはイメージでのミラーリングを有効化する。
- プールまたはイメージでのミラーリングを無効化する。
- ブロックデバイスのレプリケーションを遅延する。
- イメージをプロモートおよびデモートする。
5.7.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Ceph クライアントノードへの root レベルのアクセス。
- 一方向または双方向 Ceph ブロックデバイスのミラーリング関係。
5.7.2. ピアに関する情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスターピアの情報を表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ピアの情報を表示するには、以下を実行します。
構文
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.3. プールでのミラーリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
両方のピアクラスターで以下のコマンドを実行して、プールのミラーリングを有効にします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プールのミラーリングを有効にするには、以下を実行します。
構文
rbd mirror pool enable POOL_NAME MODE
rbd mirror pool enable POOL_NAME MODECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool enable data pool
[root@rbd-client ~]# rbd mirror pool enable data poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプール全体のミラーリングを有効にします。例
rbd mirror pool enable data image
[root@rbd-client ~]# rbd mirror pool enable data imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプールでイメージモードのミラーリングを有効にします。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.4. プールでのミラーリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
ミラーリングを無効にする前に、ピアクラスターを削除します。
プールのミラーリングを無効にすると、ミラーリングを別に有効化していたプール内にあるイメージに対するミラーリングも無効化されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プールのミラーリングを無効にするには、以下を実行します。
構文
rbd mirror pool disable POOL_NAME
rbd mirror pool disable POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool disable data
[root@rbd-client ~]# rbd mirror pool disable dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataという名前のプールのミラーリングを無効にします。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの イメージの一方向ミラーリングの設定 セクションを参照してください。
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの ストレージクラスターのピアの削除 セクションを参照してください。
5.7.5. イメージミラーリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
両方のピアストレージクラスターで、イメージモードのプール全体のミラーリングを有効にします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プール内の特定イメージのミラーリングを有効にします。
構文
rbd mirror image enable POOL_NAME/IMAGE_NAME
rbd mirror image enable POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image enable data/image2
[root@rbd-client ~]# rbd mirror image enable data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2イメージのミラーリングを有効にします。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの プールでのミラーリングの有効化 セクションを参照してください。
5.7.6. イメージミラーリングの無効化 リンクのコピーリンクがクリップボードにコピーされました!
イメージのミラーリングを無効にします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
特定のイメージのミラーリングを無効にするには、以下を実行します。
構文
rbd mirror image disable POOL_NAME/IMAGE_NAME
rbd mirror image disable POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image disable data/image2
[root@rbd-client ~]# rbd mirror image disable data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2イメージのミラーリングを無効にします。
5.7.7. イメージのプロモートおよびデモート リンクのコピーリンクがクリップボードにコピーされました!
イメージをプロモートまたはデモートします。
プロモート後にイメージは有効にならないので、プライマリー以外の同期中のイメージを強制的にプロモートしないでください。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プライマリー以外にイメージをデモートするには、以下のコマンドを実行します。
構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image2
[root@rbd-client ~]# rbd mirror image demote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2イメージをデモートします。イメージをプライマリーにプロモートするには、以下のコマンドを実行します。
構文
rbd mirror image promote POOL_NAME/IMAGE_NAME
rbd mirror image promote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote data/image2
[root@rbd-client ~]# rbd mirror image promote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2をプロモートします。使用しているミラーリングのタイプに応じて、一方向ミラーリングを使用した障害からの復旧 または 双方向ミラーリングを使用した障害からの復旧 を参照してください。
--forceオプションを使用して、プライマリー以外のイメージを強制的にプロモートします。構文
rbd mirror image promote --force POOL_NAME/IMAGE_NAME
rbd mirror image promote --force POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote --force data/image2
[root@rbd-client ~]# rbd mirror image promote --force data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ピア Ceph Storage クラスターに伝播できない場合には、強制プロモートを使用します。伝播できない理由として、クラスターの障害や通信の停止などが挙げられます。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイド の 正常でないシャットダウン後のフェイルオーバー セクションを参照してください。
5.7.8. イメージの再同期 リンクのコピーリンクがクリップボードにコピーされました!
イメージを再同期します。2 つのピアクラスターの間で整合性がない状態の場合に、rbd-mirror デーモンは、不整合の原因となるイメージのミラーリングは試行しません。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プライマリーイメージに再同期を要求するには、以下を実行します。
構文
rbd mirror image resync POOL_NAME/IMAGE_NAME
rbd mirror image resync POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image resync data/image2
[root@rbd-client ~]# rbd mirror image resync data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2の再同期を要求します。
関連情報
- 災害が原因で一貫性のない状態から復元するには 一方向ミラーリングを使用した障害からの復旧 または 双方向ミラーリングを使用した障害からの復旧 を参照してください。
5.7.9. ストレージクラスターピアの追加 リンクのコピーリンクがクリップボードにコピーされました!
rbd-mirror デーモンのストレージクラスターピアを追加して、ピアストレージクラスターを検出します。たとえば、site-a ストレージクラスターをピアとして site-b ストレージクラスターに追加するには、site-b ストレージクラスターのクライアントノードから以下の手順を実行します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ピアをプールに登録します。
構文
rbd --cluster CLUSTER_NAME mirror pool peer add POOL_NAME PEER_CLIENT_NAME@PEER_CLUSTER_NAME -n CLIENT_NAME
rbd --cluster CLUSTER_NAME mirror pool peer add POOL_NAME PEER_CLIENT_NAME@PEER_CLUSTER_NAME -n CLIENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-b
[root@rbd-client ~]# rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.7.10. ストレージクラスターピアの削除 リンクのコピーリンクがクリップボードにコピーされました!
ピア UUID を指定してストレージクラスターピアを削除します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
プール名とピア一意識別子 (UUID) を指定します。
構文
rbd mirror pool peer remove POOL_NAME PEER_UUID
rbd mirror pool peer remove POOL_NAME PEER_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool peer remove data 7e90b4ce-e36d-4f07-8cbc-42050896825d
[root@rbd-client ~]# rbd mirror pool peer remove data 7e90b4ce-e36d-4f07-8cbc-42050896825dCopy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントピア UUID を表示するには、
rbd mirror pool infoコマンドを使用します。
5.7.11. プールのミラーリングステータスの取得 リンクのコピーリンクがクリップボードにコピーされました!
プールのミラーステータスを取得します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ミラーリングプールの概要を取得するには、以下を実行します。
構文
rbd mirror pool status POOL_NAME
rbd mirror pool status POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror pool status data
[root@rbd-client ~]# rbd mirror pool status data health: OK images: 1 totalCopy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントプールのすべてのミラーリングイメージのステータス詳細を出力するには、
--verboseオプションを使用します。
5.7.12. 単一イメージのミラーリングステータスの取得 リンクのコピーリンクがクリップボードにコピーされました!
イメージのミラーリングステータスを取得します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
ミラーリングされたイメージのステータスを取得するには、以下を実行します。
構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
dataプールのimage2イメージのステータスを取得します。
5.7.13. ブロックデバイスレプリケーションの遅延 リンクのコピーリンクがクリップボードにコピーされました!
一方向レプリケーションを使用する場合でも、RADOS Block Device (RBD) ミラーリングイメージ間でレプリケーションを遅延させることができます。セカンダリーイメージにレプリケーションされる前に、プライマリーイメージへの不要な変更を元に戻せるように、猶予の期間が必要な場合には、遅延レプリケーションを実装することができます。
遅延レプリケーションを実装するには、宛先ストレージクラスター内の rbd-mirror デーモンで rbd_mirroring_replay_delay = MINIMUM_DELAY_IN_SECONDS 設定オプションを指定する必要があります。この設定は、rbd-mirror デーモンが使用する ceph.conf ファイル内でグローバルに適用することも、個別のイメージベースで適用することも可能です。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
特定のイメージで遅延レプリケーションを使用するには、プライマリーイメージで以下の
rbdCLI コマンドを実行します。構文
rbd image-meta set POOL_NAME/IMAGE_NAME conf_rbd_mirroring_replay_delay MINIMUM_DELAY_IN_SECONDS
rbd image-meta set POOL_NAME/IMAGE_NAME conf_rbd_mirroring_replay_delay MINIMUM_DELAY_IN_SECONDSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd image-meta set vms/vm-1 conf_rbd_mirroring_replay_delay 600
[root@rbd-client ~]# rbd image-meta set vms/vm-1 conf_rbd_mirroring_replay_delay 600Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
vmsプールの イメージvm-1に、最小レプリケーション遅延を 10 分に設定します。
5.7.14. 非同期更新および Ceph ブロックデバイスのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
非同期更新で Ceph ブロックデバイスのミラーリングを使用してストレージクラスターを更新する場合は、Red Hat Ceph Storage インストールガイド の更新手順に従います。更新が完了したら、Ceph ブロックデバイスインスタンスを再起動します。
規定されているインスタンスの再起動の順番はありません。Red Hat では、プライマリーイメージで、プールを参照するインスタンスを再起動して、その後にミラーリングされたプールを参照するインスタンスを再起動することを推奨します。
5.7.15. イメージのミラーリングスナップショットの作成 リンクのコピーリンクがクリップボードにコピーされました!
スナップショットベースのミラーリングの使用時に RBD イメージの変更をミラーリングする必要がある場合には、イメージのミラーリングスナップショットを作成します。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Red Hat Ceph Storage クラスターの Ceph クライアントノードへの root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- スナップショットのミラーリングの作成先の Red Hat Ceph Storage クラスターへのアクセス。
デフォルトでは、イメージのミラーリングスナップショットはイメージごとに 3 つだけ作成できます。上限に達すると、最新のイメージのミラーリングスナップショットが自動的に削除されます。必要な場合は、rbd_mirroring_max_mirroring_snapshots 設定で制限を上書きできます。イメージのミラーリングスナップショットは、イメージが削除された場合、ミラーリングが無効になっている場合に自動的に削除されます。
手順
イメージのミラーリングスナップショットを作成するには、以下を実行します。
構文
rbd --cluster CLUSTER_NAME mirror image snapshot POOL_NAME/IMAGE_NAME
rbd --cluster CLUSTER_NAME mirror image snapshot POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
root@rbd-client ~]# rbd --cluster site-a mirror image snapshot data/image1
root@rbd-client ~]# rbd --cluster site-a mirror image snapshot data/image1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.16. ミラーリングスナップショットのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
ミラーリングスナップショットは、ミラーリングスナップショットのスケジュールが定義されると自動的に作成されます。ミラーリングスナップショットは、グローバルに、プールごとに、またはイメージレベルで、スケジュールできます。複数のミラーリングスナップショットのスケジュールはどのレベルでも定義できますが、個別のミラーリングイメージに一致する最も具体的なスナップショットスケジュールのみが実行されます。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.17. ミラーリングスナップショットのスケジュールの作成 リンクのコピーリンクがクリップボードにコピーされました!
ミラーリングスナップショットのスケジュールを作成します。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Red Hat Ceph Storage クラスターの Ceph クライアントノードへの root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- スナップショットのミラーリングの作成先の Red Hat Ceph Storage クラスターへのアクセス。
手順
ミラーリングスナップショットのスケジュールを作成するには、以下を実行します。
構文
rbd mirror snapshot schedule add --pool POOL_NAME --image IMAGE_NAME INTERVAL START_TIME
rbd mirror snapshot schedule add --pool POOL_NAME --image IMAGE_NAME INTERVAL START_TIMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 間隔は、d、h、または m の接尾辞を使用して、日、時間、または分単位で指定できます。オプションで ISO 8601 の時間形式を使用する START_TIME を指定できます。
例
イメージレベルでのスケジューリング:
rbd mirror snapshot schedule add --pool data --image image1 6h
[root@rbd-client ~]# rbd mirror snapshot schedule add --pool data --image image1 6hCopy to Clipboard Copied! Toggle word wrap Toggle overflow プールレベルでのスケジューリング:
rbd mirror snapshot schedule add --pool data 24h 14:00:00-05:00
[root@rbd-client ~]# rbd mirror snapshot schedule add --pool data 24h 14:00:00-05:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow グローバルレベルでのスケジュール:
rbd mirror snapshot schedule add 48h
[root@rbd-client ~]# rbd mirror snapshot schedule add 48hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.18. 特定のレベルでの全スナップショットスケジュールの一覧表示 リンクのコピーリンクがクリップボードにコピーされました!
特定のレベルで全スナップショットスケジュールを一覧表示します。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Red Hat Ceph Storage クラスターの Ceph クライアントノードへの root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- スナップショットのミラーリングの作成先の Red Hat Ceph Storage クラスターへのアクセス。
手順
プールまたはイメージ名を任意で指定して、グローバル、プール、またはイメージレベルごとにすべてのスナップショットスケジュールを一覧表示するには、以下を実行します。
構文
rbd --cluster site-a mirror snapshot schedule ls --pool POOL_NAME --recursive
rbd --cluster site-a mirror snapshot schedule ls --pool POOL_NAME --recursiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow また、以下のように
'--recursiveオプションを指定して、指定したレベルですべてのスケジュールを一覧表示することもできます。例
rbd --cluster site-a mirror snapshot schedule ls --pool data --recursive
[root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule ls --pool data --recursive POOL NAMESPACE IMAGE SCHEDULE data - - every 1d starting at 14:00:00-05:00 data - image1 every 6hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.19. ミラーリングスナップショットのスケジュールの削除 リンクのコピーリンクがクリップボードにコピーされました!
ミラーリングスナップショットのスケジュールを削除します。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Red Hat Ceph Storage クラスターの Ceph クライアントノードへの root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- スナップショットのミラーリングの作成先の Red Hat Ceph Storage クラスターへのアクセス。
手順
ミラーリングスナップショットのスケジュールを削除するには、以下を実行します。
構文
rbd --cluster CLUSTER_NAME mirror snapshot schedule remove POOL_NAME/IMAGE_NAME INTERVAL START_TIME
rbd --cluster CLUSTER_NAME mirror snapshot schedule remove POOL_NAME/IMAGE_NAME INTERVAL START_TIMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 間隔は、d、h、m の接尾辞を使用して、日、時間、または分単位で指定できます。オプションで ISO 8601 の時間形式を使用する START_TIME を指定できます。
例
rbd --cluster site-a mirror snapshot schedule remove data/image1 6h
[root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule remove data/image1 6hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --cluster site-a mirror snapshot schedule remove data/image1 24h 14:00:00-05:00
[root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule remove data/image1 24h 14:00:00-05:00Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.7.20. 次に作成するスナップショットのステータスの表示 リンクのコピーリンクがクリップボードにコピーされました!
スナップショットベースのミラーリング RBD イメージとして次に作成されるスナップショットのステータスを表示します。
前提条件
- 少なくとも、正常に実行されている Red Hat Ceph Storage クラスター 2 台。
- Red Hat Ceph Storage クラスターの Ceph クライアントノードへの root レベルのアクセス。
- 管理者レベル権限が割り当てられた CephX ユーザー。
- スナップショットのミラーリングの作成先の Red Hat Ceph Storage クラスターへのアクセス。
手順
次の作成されるスナップショットの状態を表示するには、以下を実行します。
構文
rbd --cluster site-a mirror snapshot schedule status POOL_NAME/IMAGE_NAME
rbd --cluster site-a mirror snapshot schedule status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd --cluster site-a mirror snapshot schedule status
[root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule status SCHEDULE TIME IMAGE 2020-02-26 18:00:00 data/image1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
5.8. 障害からの復旧 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、ミラーリングが設定された別のストレージクラスターからデータを回復する方法を理解することで、致命的なハードウェアの障害に備えることができます。
この例では、プライマリーストレージクラスターは site-a と呼ばれ、セカンダリーストレージクラスターは site-b と呼ばれます。また、ストレージクラスターにはどちらも image1 と image2 の 2 つのイメージが含まれる data プールがあります。
5.8.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 一方向または双方向ミラーリングが設定されている。
5.8.2. 障害回復 リンクのコピーリンクがクリップボードにコピーされました!
2 つ以上の Red Hat Ceph Storage クラスターの間でブロックデータを非同期にレプリケーションすることで、データセンターで大規模な障害が発生した場合にデータの損失を防ぎ、ダウンタイムが削減されます。このような障害の影響は 大規模な爆発半径 とも呼ばれ、広範囲にわたります。また、送配電網への影響や、天然災害などが原因となります。
顧客データはこれらのシナリオに備え、保護する必要があります。ボリュームは、Micre Recovery Pointive (RPO) および Recovery Time Objective (RTO) ターゲット内で、一貫性と効率性を使用してレプリケーションする必要があります。このソリューションは、Dnaly Area Network- Disaster Recovery (WAN-DR) と呼ばれます。
このようなシナリオでは、プライマリーシステムとデータセンターを復元することが困難です。最も簡単に復元する方法として、別の Red Hat Ceph Storage クラスター (障害回復サイト) にアプリケーションをフェイルオーバーして、利用可能な最新のデータのコピーでクラスターを稼働させることなどが挙げられます。このような障害シナリオから回復するのに使用されるソリューションは、アプリケーションによりガイドされます。
- Recovery Point Objective (RPO): 最悪の場合にアプリケーションが許容するデータ損失量。
- Recovery Time Objective (RTO): 利用可能なデータの最新コピーで、アプリケーションをオンラインに戻すのにかかる時間。
関連情報
- 詳細は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph ブロックデバイスのミラーリング セクションを参照してください。
- 暗号化された状態のデータ転送の詳細は、Red Hat Ceph Storage データのセキュリティーおよび強化ガイドの 転送中での暗号化 セクションを参照してください。
5.8.3. 一方向ミラーリングを使用した障害からの復旧 リンクのコピーリンクがクリップボードにコピーされました!
一方向のミラーリングで障害から回復するには、以下の手順を使用します。以下で、プライマリークラスターを終了してからセカンダリークラスターにフェイルオーバーする方法、およびフェイルバックする方法が紹介します。シャットダウンは規定の順序で行うことも、順序関係なく行うこともできます。
一方向ミラーリングは、複数のセカンダリーサイトをサポートします。追加のセカンダリークラスターを使用している場合は、セカンダリークラスターの中から 1 つ選択してフェイルオーバーします。フェイルバック中に同じクラスターから同期します。
5.8.4. 双方向ミラーリングを使用した障害からの復旧 リンクのコピーリンクがクリップボードにコピーされました!
双方向ミラーリングで障害から回復するには、以下の手順を使用します。以下で、プライマリークラスターを終了してからセカンダリークラスターのミラーリングデータにフェイルオーバーする方法、およびフェイルバックする方法が紹介します。シャットダウンは、正常でもそうでなくても構いません。
関連情報
- イメージのデモート、プロモート、および同期の詳細は、Red Hat Ceph Storage ブロックデバイスガイドの イメージでのミラーリングの設定 セクションを参照してください。
5.8.5. 正常なシャットダウン後のフェイルオーバー リンクのコピーリンクがクリップボードにコピーされました!
正常にシャットダウンした後にセカンダリーストレージクラスターにファイルオーバーします。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
- プライマリーイメージを使用するクライアントをすべて停止します。この手順は、どのクライアントがイメージを使用するかにより異なります。たとえば、イメージを使用する OpenStack インスタンスからボリュームの割り当てを解除します。
site-aクラスターのモニターノードで以下のコマンドを実行して、site-aクラスターにあるプライマリーイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1 rbd mirror image demote data/image2
[root@rbd-client ~]# rbd mirror image demote data/image1 [root@rbd-client ~]# rbd mirror image demote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-bクラスターにあるプライマリー以外のイメージをプロモートするには、site-bクラスターのモニターノードで以下のコマンドを実行します。構文
rbd mirror image promote POOL_NAME/IMAGE_NAME
rbd mirror image promote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote data/image1 rbd mirror image promote data/image2
[root@rbd-client ~]# rbd mirror image promote data/image1 [root@rbd-client ~]# rbd mirror image promote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくすると、
site-bクラスターのモニターノードからイメージのステータスを確認します。イメージのステータスは、up+stoppedの状態を表示し、プライマリーとしてリストされているはずです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - イメージへのアクセスを再開します。この手順は、どのクライアントがイメージを使用するかにより異なります。
関連情報
- Red Hat OpenStack Platform ストレージガイドの ブロックストレージおよびボリューム の章を参照してください。
5.8.6. 正常にシャットダウンされなかった場合のフェイルオーバー リンクのコピーリンクがクリップボードにコピーされました!
正常でないシャットダウン後にセカンダリーストレージクラスターにフェイルオーバーします。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
- プライマリーストレージクラスターが停止していることを確認します。
- プライマリーイメージを使用するクライアントをすべて停止します。この手順は、どのクライアントがイメージを使用するかにより異なります。たとえば、イメージを使用する OpenStack インスタンスからボリュームの割り当てを解除します。
site-bストレージクラスターの Ceph Monitor ノードからプライマリー以外のイメージをプロモートします。site-aストレージクラスターにデモートが伝播されないので、--forceオプションを使用します。構文
rbd mirror image promote --force POOL_NAME/IMAGE_NAME
rbd mirror image promote --force POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote --force data/image1 rbd mirror image promote --force data/image2
[root@rbd-client ~]# rbd mirror image promote --force data/image1 [root@rbd-client ~]# rbd mirror image promote --force data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-bストレージクラスターの Ceph Monitor ノードからイメージのステータスを確認します。状態として、up+stopping_replayが、説明にforce promotedと表示されるはずです。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Red Hat OpenStack Platform ストレージガイドの ブロックストレージおよびボリューム の章を参照してください。
5.8.7. フェイルバックの準備 リンクのコピーリンクがクリップボードにコピーされました!
2 つのストレージクラスターが元々、一方向ミラーリングだけ設定されていた場合に、フェイルバックするには、プライマリーストレージクラスターのミラーリングを設定して、反対方向にイメージをレプリケートできるようにします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
site-aストレージクラスターのクライアントノードで、rbd-mirrorパッケージをインストールします。yum install rbd-mirror
[root@rbd-client ~]# yum install rbd-mirrorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パッケージは Red Hat Ceph Storage Tools リポジトリーによって提供されます。
site-aストレージクラスターのクライアントノードで、CLUSTERオプションを/etc/sysconfig/cephファイルに追加して、ストレージクラスター名を指定します。CLUSTER=site-b
CLUSTER=site-bCopy to Clipboard Copied! Toggle word wrap Toggle overflow site-bCeph 設定ファイルおよびキーリングファイルをsite-bCeph Monitor ノードからsite-aの Ceph Monitor およびクライアントノードにコピーします。構文
scp /etc/ceph/ceph.conf USER@SITE_A_MON_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring root@SITE_A_MON_NODE_NAME:/etc/ceph/ scp /etc/ceph/ceph.conf user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/
scp /etc/ceph/ceph.conf USER@SITE_A_MON_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring root@SITE_A_MON_NODE_NAME:/etc/ceph/ scp /etc/ceph/ceph.conf user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/site-b.conf scp /etc/ceph/site-b.client.site-b.keyring user@SITE_A_CLIENT_NODE_NAME:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Ceph 設定ファイルを
site-bCeph Monitor ノードからsite-aの Ceph Monitor およびクライアントノードに転送するscpコマンドをし用すると、ファイルの名前がsite-a.confに変更されます。キーリングファイル名は同じままです。site-aキーリングファイルをsite-aCeph Monitor ノードからsite-aクライアントノード にコピーします。構文
scp /etc/ceph/site-a.client.site-a.keyring <user>@SITE_A_CLIENT_HOST_NAME:/etc/ceph/
scp /etc/ceph/site-a.client.site-a.keyring <user>@SITE_A_CLIENT_HOST_NAME:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-aクライアントノードでrbd-mirrorデーモンを有効にして起動します。構文
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@CLIENT_ID systemctl start ceph-rbd-mirror@CLIENT_ID
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@CLIENT_ID systemctl start ceph-rbd-mirror@CLIENT_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLIENT_IDは、rbd-mirrorデーモンが使用する Ceph Storage クラスターユーザーに変更します。ユーザーには、ストレージクラスターへの適切なcephxアクセスが必要です。例
systemctl enable ceph-rbd-mirror.target systemctl enable ceph-rbd-mirror@site-a systemctl start ceph-rbd-mirror@site-a
[root@rbd-client ~]# systemctl enable ceph-rbd-mirror.target [root@rbd-client ~]# systemctl enable ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl start ceph-rbd-mirror@site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow site-aクラスターのクライアントノードから、site-bクラスターをピアとして追加します。例
rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-a
[root@rbd-client ~]# rbd --cluster site-a mirror pool peer add data client.site-b@site-b -n client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 複数のセカンダリーストレージクラスターを使用している場合には、フェイルオーバー先とフェイルバック元に選択されたセカンダリーストレージクラスターを追加する必要があります。
site-aストレージクラスターのモニターノードから、site-bストレージクラスターがピアとして正常に追加されたことを確認します。構文
rbd mirror pool info POOL_NAME
rbd mirror pool info POOL_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Ceph Storage 管理ガイドの User Management の章を参照してください。
5.8.7.1. プライマリーストレージクラスターへのフェイルバック リンクのコピーリンクがクリップボードにコピーされました!
以前のプライマリーストレージクラスターが復元されたら、そのクラスターがプライマリーストレージクラスターにフェイルバックされます。
前提条件
- 少なくとも実行中の Red Hat Ceph Storage クラスターが 2 台ある。
- ノードへのルートレベルのアクセス。
- 一方向ミラーリング を使用して設定されるプールのミラーリングまたはイメージミラーリング。
手順
もう一度、
site-bクラスターのモニターノードからイメージのステータスを確認します。状態としてup-stopped、説明としてlocal image is primaryと表示されるはずです。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-aストレージクラスターの Ceph Monitor ノードから、イメージがプライマリーかどうかを確認します。構文
rbd info POOL_NAME/IMAGE_NAME
rbd info POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd info data/image1 rbd info data/image2
[root@rbd-client ~]# rbd info data/image1 [root@rbd-client ~]# rbd info data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力で、
mirroring primary: trueまたはmirroring primary: falseを検索し、状態を判断します。site-aストレージクラスターの Ceph Monitor ノードから以下のようなコマンドを実行して、プライマリーとして表示されているイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1
[root@rbd-client ~]# rbd mirror image demote data/image1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 正常にシャットダウンされなかった場合にのみ、イメージをもう一度同期します。
site-aストレージクラスターのモニターノードで以下のコマンドを実行し、イメージをsite-bからsite-aに再同期します。構文
rbd mirror image resync POOL_NAME/IMAGE_NAME
rbd mirror image resync POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image resync data/image1 rbd mirror image resync data/image2
[root@rbd-client ~]# rbd mirror image resync data/image1 Flagged image for resync from primary [root@rbd-client ~]# rbd mirror image resync data/image2 Flagged image for resync from primaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow しばらくしたら、状態が
up+replayingかをチェックして、イメージの最同期が完了していることを確認します。site-aストレージクラスターのモニターノードで以下のコマンドを実行して、イメージの状態を確認します。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image status data/image1 rbd mirror image status data/image2
[root@rbd-client ~]# rbd mirror image status data/image1 [root@rbd-client ~]# rbd mirror image status data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-bストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、site-bストレージクラスターのイメージをデモートします。構文
rbd mirror image demote POOL_NAME/IMAGE_NAME
rbd mirror image demote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image demote data/image1 rbd mirror image demote data/image2
[root@rbd-client ~]# rbd mirror image demote data/image1 [root@rbd-client ~]# rbd mirror image demote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数のセカンダリーストレージクラスターがある場合に、上記の実行は、プロモートされたセカンダリーストレージクラスターからだけで結構です。
site-aストレージクラスターの Ceph Monitor ノードで以下のコマンドを実行して、site-aストレージクラスターに配置されていた、以前のプライマリーイメージをプロモートします。構文
rbd mirror image promote POOL_NAME/IMAGE_NAME
rbd mirror image promote POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
rbd mirror image promote data/image1 rbd mirror image promote data/image2
[root@rbd-client ~]# rbd mirror image promote data/image1 [root@rbd-client ~]# rbd mirror image promote data/image2Copy to Clipboard Copied! Toggle word wrap Toggle overflow site-aストレージクラスターの Ceph Monitor ノードからイメージのステータスを確認します。状態としてup+stopped、説明としてlocal image is primaryと表示されるはずです。構文
rbd mirror image status POOL_NAME/IMAGE_NAME
rbd mirror image status POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.8.8. 双方向ミラーリングの削除 リンクのコピーリンクがクリップボードにコピーされました!
フェイルバックが完了したら、双方向ミラーリングを削除し、Ceph ブロックデバイスのミラーリングサービスを無効にできます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
site-aストレージクラスターから、ピアとしてのsite-bストレージクラスターを削除します。例
rbd mirror pool peer remove data client.remote@remote --cluster local rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-a
[root@rbd-client ~]# rbd mirror pool peer remove data client.remote@remote --cluster local [root@rbd-client ~]# rbd --cluster site-a mirror pool peer remove data client.site-b@site-b -n client.site-aCopy to Clipboard Copied! Toggle word wrap Toggle overflow site-aクライアントでrbd-mirrorデーモンを停止して無効にします。構文
systemctl stop ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror.target
systemctl stop ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror@CLIENT_ID systemctl disable ceph-rbd-mirror.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl stop ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror@site-a systemctl disable ceph-rbd-mirror.target
[root@rbd-client ~]# systemctl stop ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl disable ceph-rbd-mirror@site-a [root@rbd-client ~]# systemctl disable ceph-rbd-mirror.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 Ceph ブロックデバイス Python モジュールの使用 リンクのコピーリンクがクリップボードにコピーされました!
rbd python モジュールでは、Ceph ブロックデバイスイメージにファイルのようにアクセスできます。この組み込みツールを使用するには、rbd モジュールおよび rados Python モジュールをインポートします。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ノードへのルートレベルのアクセス。
手順
RADOS に接続し、IO コンテキストを開きます。
cluster = rados.Rados(conffile='my_ceph.conf') cluster.connect() ioctx = cluster.open_ioctx('mypool')cluster = rados.Rados(conffile='my_ceph.conf') cluster.connect() ioctx = cluster.open_ioctx('mypool')Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの作成に使用する
:class:rbd.RBDオブジェクトをインスタンス化します。rbd_inst = rbd.RBD() size = 4 * 1024**3 # 4 GiB rbd_inst.create(ioctx, 'myimage', size)
rbd_inst = rbd.RBD() size = 4 * 1024**3 # 4 GiB rbd_inst.create(ioctx, 'myimage', size)Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージで I/O を実行するには、
:class:rbd.Imageオブジェクトをインスタンス化します。image = rbd.Image(ioctx, 'myimage') data = 'foo' * 200 image.write(data, 0)
image = rbd.Image(ioctx, 'myimage') data = 'foo' * 200 image.write(data, 0)Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、イメージの最初の 600 バイトに foo が書き込まれます。データは
:type:unicodeに指定できない点に注意してください。librbdは:c:type:charよりも幅の広い文字の処理方法を認識していません。イメージ、IO コンテキスト、および RADOS への接続を終了します。
image.close() ioctx.close() cluster.shutdown()
image.close() ioctx.close() cluster.shutdown()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 念のために、これらの呼び出しごとに、個別の
:finallyブロックを割り当てる必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow これは面倒な場合があるので、自動的に終了またはシャットダウンするコンテキストマネージャーとしてRados、Ioctx および Image クラスを使用できます。これらのクラスをコンテキストマネージャーとして使用すると、上記の例は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 Ceph iSCSI ゲートウェイ (利用制限あり) リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Red Hat Ceph Storage クラスターの iSCSI ゲートウェイをインストールし、設定できます。Ceph の iSCSI ゲートウェイの場合には、従来のストレージエリアネットワーク (SAN) のすべての機能および利点を使用して、完全に統合されたブロックストレージインフラストラクチャーを効率的に実行できます。
この技術には、利用制限があります。詳細は、Deprecated functionality の章を参照してください。
SCSI の永続的な予約はサポートされていません。SCSI の永続的な予約に依存しないクラスター対応ファイルシステムまたはクラスターリングソフトウェアを使用している場合、複数の iSCSI イニシエーターを RBD イメージへのマッピングに対応しています。たとえば、ATS を使用する VMware vSphere 環境はサポートされますが、Microsoft のクラスターリングサーバー (MSCS) の使用はサポートされていません。
7.1. Ceph iSCSI ゲートウェイの概要 リンクのコピーリンクがクリップボードにコピーされました!
従来は、Ceph ストレージクラスターへのブロックレベルのアクセスは QEMU および librbd に制限されていました。これは、OpenStack 環境で採用するための主要なイネーブラーです。Ceph Storage クラスターにブロックレベルでアクセスできると、iSCSI 標準を活用してデータストレージを提供できます。
iSCSI ゲートウェイは Red Hat Ceph Storage と iSCSI 標準を統合し、RADOS Block Device (RBD) イメージを SCSI ディスクとしてエクスポートする可用性の高い (HA) iSCSI ターゲットを提供します。iSCSI プロトコルは、イニシエーターと呼ばれるクライアントが、TCP/IP ネットワークを介してターゲットと呼ばれる SCSI ストレージデバイスに SCSI コマンドを送信します。これにより、Microsoft Windows などの異種クライアントが Red Hat Ceph Storage クラスターにアクセスできるようになります。
図7.1 Ceph iSCSI Gateway HA 設計
7.2. iSCSI ターゲットの要件 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage の高可用性 (HA) iSCSI ゲートウェイソリューションには、ゲートウェイノード数、メモリー容量、ダウンしている OSD を検出するタイマー設定の要件があります。
必要なノード数
最低でも 2 つの iSCSI ゲートウェイノードをインストールします。レジリエンスおよび I/O 処理を向上するには、最大 4 つの iSCSI ゲートウェイノードをインストールします。
メモリーの要件
RBD イメージのメモリーフットプリントのサイズが大きくなる可能性があります。iSCSI ゲートウェイノードにマッピングされる各 RBD イメージは、約 90 MB のメモリーを使用します。マッピングされた各 RBD イメージをサポートするのに十分なメモリーが、iSCSI ゲートウェイノードにあることを確認します。
ダウンした OSD の検出
Ceph Monitor または OSD には特定の iSCSI ゲートウェイオプションはありませんが、OSD を検出するためのデフォルトのタイマーの時間を減らし、イニシエーターがタイムアウトする可能性を少なくすることが重要です。ダウンした OSD を検出するためにタイマー設定の数値を下げる 手順に従って、イニシエーターのタイムアウトの可能性を低減します。
関連情報
- 詳細は、Red Hat Ceph Storage ハードウェアの選択ガイド を参照してください。
7.3. iSCSI ゲートウェイのインストール リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、必要なソフトウェアパッケージをインストールしてからでないと、Ceph iSCSI ゲートウェイの利点を活用できません。Ansible デプロイメントツールを使用するか、コマンドラインインターフェイス を使用して、Ceph iSCSI ゲートウェイをインストールできます。
各 iSCSI ゲートウェイは、Linux I/O ターゲットカーネルサブシステム (LIO) を実行して、iSCSI プロトコルをサポートします。LIO はユーザー空間パススルー (TCMU) を使用して Ceph librbd ライブラリーと対話し、RBD イメージを iSCSI クライアントに公開します。Ceph の iSCSI ゲートウェイの場合には、従来のストレージエリアネットワーク (SAN) のすべての機能および利点を使用して、完全に統合されたブロックストレージインフラストラクチャーを効率的に実行できます。
7.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Enterprise Linux 8 または 7.7 以降。
- 稼働中の Red Hat Ceph Storage 4 以降のクラスター。
7.3.2. Ansible を使用した Ceph iSCSI ゲートウェイのインストール リンクのコピーリンクがクリップボードにコピーされました!
Ansible ユーティリティーを使用して、パッケージをインストールし、Ceph iSCSI ゲートウェイのデーモンを設定します。
前提条件
-
ceph-ansibleパッケージがインストールされている Ansible 管理ノード
手順
- iSCSI ゲートウェイノードで、Red Hat Ceph Storage 4 Tools リポジトリーを有効にします。詳細は、Red Hat Ceph Storage インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
Ansible 管理ノードで、ゲートウェイグループの
/etc/ansible/hostsファイルにエントリーを追加します。iSCSI ゲートウェイを OSD ノードと同じ場所に配置する場合には、OSD ノードを[iscsigws]セクションに追加します。[iscsigws] ceph-igw-1 ceph-igw-2
[iscsigws] ceph-igw-1 ceph-igw-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ansible は、
/usr/share/ceph-ansible/group_vars/ディレクトリーにファイル (iscsigws.yml.sample) を配置します。iscsigws.ymlという名前を付けて、iscsigws.yml.sampleファイルのコピーを作成します。 -
iscsigws.ymlファイルを開いて編集します。 trusted_ip_listオプションのコメントを解除し、IPv4 アドレスまたは IPv6 アドレスを使用して値を適宜更新します。例
IPv4 アドレスが 10.172.19.21 および 10.172.19.22 の 2 つのゲートウェイを追加して、
trusted_ip_listを以下のように設定します。trusted_ip_list: 10.172.19.21,10.172.19.22
trusted_ip_list: 10.172.19.21,10.172.19.22Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、iSCSI Gateway Variables セクションの Ansible 変数と説明を確認し、
iscsigws.ymlを更新します。警告ゲートウェイ設定の変更は、一度に 1 つのゲートウェイからのみサポートされます。複数のゲートウェイで同時に変更を実行しようとすると、設定が不安定になり、不整合が発生する可能性があります。
警告ansible-playbookコマンドが使用されると、Ansible はceph-iscsiパッケージをインストールして、group_vars/iscsigws.ymlファイルの設定をもとに/etc/ceph/iscsi-gateway.cfgファイルを作成して更新します。コマンドラインインターフェイスを使用した iSCSI ゲートウェイのインストール で記載のとおり、コマンドラインインターフェイスを使用してceph-iscsiパッケージを以前にインストールした場合には、既存の設定をiscsi-gateway.cfgファイルからgroup_vars/iscsigws.ymlファイルにコピーします。Ansible 管理ノードで、Ansible Playbook を実行します。
ベアメタル デプロイメント:
cd /usr/share/ceph-ansible ansible-playbook site.yml -i hosts
[admin@ansible ~]$ cd /usr/share/ceph-ansible [admin@ansible ceph-ansible]$ ansible-playbook site.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー デプロイメント:
cd /usr/share/ceph-ansible ansible-playbook site-container.yml -i hosts
[admin@ansible ~]$ cd /usr/share/ceph-ansible [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告スタンドアロン iSCSI ゲートウェイノードで、正しい Red Hat Ceph Storage 4 ソフトウェアリポジトリーが有効であることを確認します。リポジトリーが利用できない場合には、Ansible は誤ったパッケージをインストールする可能性があります。
ターゲット、LUN、およびクライアントを作成するには、
gwcliユーティリティーまたは Red Hat Ceph Storage ダッシュボードを使用します。重要targetcliユーティリティーを使用して設定を変更しないでください。これにより、ALUA のご設定とパスのフェイルオーバーという問題が発生します。データが破損して iSCSI ゲートウェイ間で設定が一致しない場合や、WWN 情報が一致しなくなる可能性があり、クライアントのパスに問題が生じます。
関連情報
-
完全なサンプルファイルを確認するには、サンプルの
iscsigws.ymlファイル を参照してください。 - コマンドラインインターフェイスを使用した iSCSI ターゲットの設定
- iSCSI ターゲットの作成
7.3.3. コマンドラインインターフェイスを使用した Ceph iSCSI ゲートウェイのインストール リンクのコピーリンクがクリップボードにコピーされました!
Ceph iSCSI ゲートウェイは、iSCSI ターゲットノードおよび Ceph クライアントノードです。Ceph iSCSI ゲートウェイはスタンドアロンノードにすることも、Ceph Object Store Disk (OSD) ノードと同じ場所に配置することもできます。Ceph iSCSI ゲートウェイをインストールするには、以下の手順を実施します。
前提条件
- Red Hat Enterprise Linux 8 または 7.7 以降
- Red Hat Ceph Storage 4 クラスター以降
ストレージクラスターのすべての Ceph Monitor ノードで、
rootユーザーとしてceph-monサービスを再起動します。構文
systemctl restart ceph-mon@MONITOR_HOST_NAME
systemctl restart ceph-mon@MONITOR_HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-mon@monitor1
[root@mon ~]# systemctl restart ceph-mon@monitor1Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ceph iSCSI ゲートウェイが OSD ノードと同じ場所に配置されていない場合には、
/etc/ceph/ディレクトリーにある Ceph 設定ファイルを、ストレージクラスターにある実行中の Ceph ノードから iSCSI ゲートウェイノードすべてにコピーしてください。Ceph 設定ファイルは、/etc/ceph/の iSCSI ゲートウェイノードに存在している必要があります。 - すべての Ceph iSCSI ゲートウェイノードで、Ceph Tools リポジトリーを有効にします。詳細は、インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
- すべての Ceph iSCSI ゲートウェイノードに、Ceph コマンドラインインターフェイスをインストールおよび設定します。詳細は、Red Hat Ceph Storage 4 インストールガイドの Ceph コマンドラインインターフェイスのインストール の章を参照してください。
- 必要に応じて、すべての Ceph iSCSI ノードのファイアウォールで TCP ポート 3260 および 5000 を開きます。
- 新規を作成するか、既存の RADOS ブロックデバイス (RBD) を使用します。
手順
すべての Ceph iSCSI ゲートウェイノードで、
ceph-iscsiパッケージとtcmu-runnerパッケージをインストールします。yum install ceph-iscsi tcmu-runner
[root@iscsigw ~]# yum install ceph-iscsi tcmu-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要これらのパッケージの以前のバージョンが存在する場合には、新しいバージョンをインストールする前に削除します。これらの新しいバージョンを Red Hat Ceph Storage リポジトリーからインストールする必要があります。
必要に応じて、すべての Ceph iSCSI ゲートウェイノードで OpenSSL ユーティリティーをインストールし、設定します。
opensslパッケージをインストールします。yum install openssl
[root@iscsigw ~]# yum install opensslCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリー iSCSI ゲートウェイノードで、SSL キーを保存するディレクトリーを作成します。
mkdir ~/ssl-keys cd ~/ssl-keys
[root@iscsigw ~]# mkdir ~/ssl-keys [root@iscsigw ~]# cd ~/ssl-keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリー iSCSI ゲートウェイノードで、証明書およびキーファイルを作成します。プロンプトが表示されたら、環境情報を入力します。
openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
[root@iscsigw ~]# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリー iSCSI ゲートウェイノードで、PEM ファイルを作成します。
cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
[root@iscsigw ~]# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライマリー iSCSI ゲートウェイノードで、公開鍵を作成します。
openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
[root@iscsigw ~]# openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
プライマリー iSCSI ゲートウェイノードから、
iscsi-gateway.crt、iscsi-gateway.pem、iscsi-gateway-pub.keyおよびiscsi-gateway.keyファイルを、他の iSCSI ゲートウェイノードの/etc/ceph/ディレクトリーにコピーします。
Ceph iSCSI ゲートウェイノードに設定ファイルを作成し、これをすべての iSCSI ゲートウェイノードにコピーします。
/etc/ceph/ディレクトリーにiscsi-gateway.cfgという名前のファイルを作成します。touch /etc/ceph/iscsi-gateway.cfg
[root@iscsigw ~]# touch /etc/ceph/iscsi-gateway.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow iscsi-gateway.cfgファイルを編集し、以下の行を追加します。構文
[config] cluster_name = CLUSTER_NAME gateway_keyring = CLIENT_KEYRING api_secure = false trusted_ip_list = IP_ADDR,IP_ADDR
[config] cluster_name = CLUSTER_NAME gateway_keyring = CLIENT_KEYRING api_secure = false trusted_ip_list = IP_ADDR,IP_ADDRCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[config] cluster_name = ceph gateway_keyring = ceph.client.admin.keyring api_secure = false trusted_ip_list = 192.168.0.10,192.168.0.11
[config] cluster_name = ceph gateway_keyring = ceph.client.admin.keyring api_secure = false trusted_ip_list = 192.168.0.10,192.168.0.11Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
iscsi-gateway.cfgファイルをすべての iSCSI ゲートウェイノードにコピーします。このファイルは、すべての iSCSI ゲートウェイノードで同じでなければなりません。
すべての Ceph iSCSI ゲートウェイノードで、API サービスを有効にして起動します。
systemctl enable rbd-target-api systemctl start rbd-target-api systemctl enable rbd-target-gw systemctl start rbd-target-gw
[root@iscsigw ~]# systemctl enable rbd-target-api [root@iscsigw ~]# systemctl start rbd-target-api [root@iscsigw ~]# systemctl enable rbd-target-gw [root@iscsigw ~]# systemctl start rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 次に、ターゲット、LUN、およびクライアントを設定します。詳細は、コマンドラインインターフェイスを使用した iSCSI ターゲットの設定 セクションを参照してください。
関連情報
- オプションの詳細については、iSCSI ゲートウェイ変数 セクションを参照してください。
- iSCSI ターゲットの作成
7.3.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Ceph iSCSI ゲートウェイの Anisble 変数の詳細は、付録B iSCSI ゲートウェイ変数 を参照してください。
7.4. iSCSI ターゲットの設定 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、gwcli コマンドラインユーティリティーを使用して、ターゲット、LUN、およびクライアントを 設定 できます。iSCSI ターゲットの パフォーマンスを最適化 s して、gwcli reconfigure サブコマンドを使用することもできます。
Red Hat は、gwcli および ceph-ansible など、Ceph iSCSI ゲートウェイツールでエクスポートされた Ceph ブロックデバイスイメージの管理はサポートしていません。また、rbd コマンドを使用して Ceph iSCSI ゲートウェイでエクスポートされた RBD イメージの名前を変更または削除すると、ストレージクラスターが不安定になる可能性があります。
iSCSI ゲートウェイ設定から RBD イメージを削除する前に、オペレーティングシステムからストレージデバイスを削除する標準的な手順に従います。詳細は、Red Hat Enterprise Linux 7 のストレージ管理ガイドの ストレージデバイスの削除 の章または Red Hat Enterprise Linux 8 向けの システム設計ガイド を参照してください。
7.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Ceph iSCSI ゲートウェイソフトウェアのインストール。
7.4.2. コマンドラインインターフェイスを使用した iSCSI ターゲットの設定 リンクのコピーリンクがクリップボードにコピーされました!
Ceph iSCSI ゲートウェイは、iSCSI ターゲットノードおよび Ceph クライアントノードです。Ceph iSCSI ゲートウェイをスタンドアロンノード上に設定するか、Ceph Object Storage Device (OSD) ノードと同じ場所に配置します。
本書に規定されているか、Red Hat サポートからの指示がない限り、gwcli reconfigure サブコマンドを使用して他のオプションを調整しないようにしてください。
前提条件
- Ceph iSCSI ゲートウェイソフトウェアのインストール。
手順
iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。
gwcli
[root@iscsigw ~]# gwcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow IPv4 アドレスまたは IPv6 アドレスのいずれかを使用して iSCSI ゲートウェイを作成します。
構文
>/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:_target_name_ > goto gateways > create ISCSI_GW_NAME IP_ADDR_OF_GW > create ISCSI_GW_NAME IP_ADDR_OF_GW
>/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:_target_name_ > goto gateways > create ISCSI_GW_NAME IP_ADDR_OF_GW > create ISCSI_GW_NAME IP_ADDR_OF_GWCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
>/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw > goto gateways > create ceph-gw-1 10.172.19.21 > create ceph-gw-2 10.172.19.22
>/iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw > goto gateways > create ceph-gw-1 10.172.19.21 > create ceph-gw-2 10.172.19.22Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記IPv4 アドレスと IPv6 アドレスを混在させることはできません。
Ceph ブロックデバイスを追加します。
構文
> cd /disks >/disks/ create POOL_NAME image=IMAGE_NAME size=IMAGE_SIZE_m|g|t
> cd /disks >/disks/ create POOL_NAME image=IMAGE_NAME size=IMAGE_SIZE_m|g|tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
> cd /disks >/disks/ create rbd image=disk_1 size=50g
> cd /disks >/disks/ create rbd image=disk_1 size=50gCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記プールまたはイメージ名では、ピリオド (
.) を使用しないでください。クライアントを作成します。
構文
> goto hosts > create iqn.1994-05.com.redhat:_client_name_ > auth use username=USER_NAME password=PASSWORD
> goto hosts > create iqn.1994-05.com.redhat:_client_name_ > auth use username=USER_NAME password=PASSWORDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
> goto hosts > create iqn.1994-05.com.redhat:rh7-client > auth username=iscsiuser1 password=temp12345678
> goto hosts > create iqn.1994-05.com.redhat:rh7-client > auth username=iscsiuser1 password=temp12345678Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Red Hat は、Challenge Handshake Authentication Protocol (CHAP) が一部で有効になっており、他で無効になっているなど、クライアントの混同はサポートしていません。すべてのクライアントの CHAP を有効にするか、無効にする必要があります。デフォルトの動作としては、イニシエーター名でイニシエーターを認証するだけです。
イニシエーターがターゲットへのログインに失敗した場合には、以下のように、イニシエーターに CHAP 認証が正しく設定されない場合があります。
o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]
o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストレベルで次のコマンドを使用して、CHAP 認証をすべてリセットします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクをクライアントに追加します。
構文
>/iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:_CLIENT_NAME_ > disk add POOL_NAME/IMAGE_NAME
>/iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:_CLIENT_NAME_ > disk add POOL_NAME/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
>/iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:rh7-client > disk add rbd/disk_1
>/iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:rh7-client > disk add rbd/disk_1Copy to Clipboard Copied! Toggle word wrap Toggle overflow API が SSL が正しく使用されていることを確認するには、
/var/log/rbd-target-api.logまたは/var/log/rbd-target/rbd-target-api.logに配置されているrbd-target-apiログファイルを (httpsなど) を検索します。Aug 01 17:27:42 test-node.example.com python[1879]: * Running on https://0.0.0.0:5000/
Aug 01 17:27:42 test-node.example.com python[1879]: * Running on https://0.0.0.0:5000/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph ISCSI ゲートウェイが機能していることを確認します。
/> goto gateways /iscsi-target...-igw/gateways> ls o- gateways ............................ [Up: 2/2, Portals: 2] o- ceph-gw-1 ........................ [ 10.172.19.21 (UP)] o- ceph-gw-2 ........................ [ 10.172.19.22 (UP)]
/> goto gateways /iscsi-target...-igw/gateways> ls o- gateways ............................ [Up: 2/2, Portals: 2] o- ceph-gw-1 ........................ [ 10.172.19.21 (UP)] o- ceph-gw-2 ........................ [ 10.172.19.22 (UP)]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ステータスが
UNKNOWNの場合は、ネットワークの問題と設定ミスがないか確認します。ファイアウォールを使用している場合は、適切な TCP ポートが開いていることを確認します。iSCSI ゲートウェイがtrusted_ip_listオプションに一覧表示されていることを確認します。rbd-target-apiサービスが iSCSI ゲートウェイノードで実行されていることを確認します。必要に応じて、
max_data_area_mbオプションを再設定します。構文
>/disks/ reconfigure POOL_NAME/IMAGE_NAME max_data_area_mb NEW_BUFFER_SIZE
>/disks/ reconfigure POOL_NAME/IMAGE_NAME max_data_area_mb NEW_BUFFER_SIZECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
>/disks/ reconfigure rbd/disk_1 max_data_area_mb 64
>/disks/ reconfigure rbd/disk_1 max_data_area_mb 64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記max_data_area_mbオプションは、iSCSI ターゲットと Ceph クラスターの間で SCSI コマンドデータを渡す時に各イメージが使用できるメモリー量をメガバイト単位で制御します。この値が小さすぎると、キューが過剰に再試行され、パフォーマンスに影響する可能性があります。値が大きすぎると、1 つのディスクで過剰にシステムメモリーが使用あれ、他のサブシステムの割り当てに失敗する可能性があります。max_data_area_mbオプションのデフォルト値は8です。- iSCSI イニシエーターを設定します。
関連情報
- 詳細は、iSCSI ゲートウェイのインストール を参照してください。
- 詳細は、iSCSI イニシエーターの設定 セクションを参照してください。
7.4.3. iSCSI ターゲットのパフォーマンスの最適化 リンクのコピーリンクがクリップボードにコピーされました!
ネットワーク上で iSCSI ターゲット転送データを送信する方法を制御する設定は多数あります。これらの設定を使用して、iSCSI ゲートウェイのパフォーマンスを最適化できます。
Red Hat サポートの指示または本書の記載がない限り、この設定は変更しないでください。
gwcli reconfigure サブコマンドは、iSCSI ゲートウェイのパフォーマンスの最適化に使用される設定を制御します。
iSCSI ターゲットのパフォーマンスに影響する設定
-
max_data_area_mb -
cmdsn_depth -
immediate_data -
initial_r2t -
max_outstanding_r2t -
first_burst_length -
max_burst_length -
max_recv_data_segment_length -
max_xmit_data_segment_length
関連情報
-
gwcli の再設定を使用して調整する方法を示す例など、max_data_area_mbに関する情報は、コマンドラインインターフェイスを使用した iSCSI ターゲットの設定 のセクションを参照してください。
7.4.4. ダウンしている OSD を検出するためのタイマー設定の低減 リンクのコピーリンクがクリップボードにコピーされました!
ダウンしている OSD を検出するためにタイマー設定の時間を減らす必要がある場合があります。たとえば、Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する場合に、ダウンしている OSD を検出するためにタイマー設定の時間を減らすことで、イニシエーターがタイムアウトする可能性を軽減できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- Ansible 管理ノードへのアクセス
手順
新しいタイマー設定を使用するように Ansible を設定します。
Ansible 管理ノードで、以下のような
group_vars/all.ymlファイルにceph_conf_overridesセクションを追加するか、既存のceph_conf_overridesセクションを編集します。ceph_conf_overrides: osd: osd_client_watch_timeout: 15 osd_heartbeat_grace: 20 osd_heartbeat_interval: 5ceph_conf_overrides: osd: osd_client_watch_timeout: 15 osd_heartbeat_grace: 20 osd_heartbeat_interval: 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の設定は、Ansible Playbook の実行時に OSD ノードの
ceph.conf設定ファイルに追加されます。ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[admin@ansible ~]$ cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible を使用して
ceph.confファイルを更新し、すべての OSD ノードで OSD デーモンを再起動します。Ansible 管理ノードで、以下のコマンドを実行します。ベアメタル デプロイメント
ansible-playbook site.yml --limit osds
[admin@ansible ceph-ansible]$ ansible-playbook site.yml --limit osdsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー デプロイメント
ansible-playbook site-container.yml --limit osds -i hosts
[admin@ansible ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
タイマー設定が
ceph_conf_overridesで設定されている値と同じであることを確認します。構文
ceph daemon osd.OSD_ID config get osd_client_watch_timeout ceph daemon osd.OSD_ID config get osd_heartbeat_grace ceph daemon osd.OSD_ID config get osd_heartbeat_interval
ceph daemon osd.OSD_ID config get osd_client_watch_timeout ceph daemon osd.OSD_ID config get osd_heartbeat_grace ceph daemon osd.OSD_ID config get osd_heartbeat_intervalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: OSD デーモンをすぐに再起動できない場合は、Ceph Monitor ノードからオンラインの更新を行うか、全 Ceph OSD ノードを直接更新できます。OSD デーモンの再起動ができたら、上記のように Ansible を使用して新しいタイマー設定を
ceph.confに追加し、設定が再起動後も維持されるようにします。Ceph Monitor ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。
構文
ceph tell osd.OSD_ID injectargs '--osd_client_watch_timeout 15' ceph tell osd.OSD_ID injectargs '--osd_heartbeat_grace 20' ceph tell osd.OSD_ID injectargs '--osd_heartbeat_interval 5'
ceph tell osd.OSD_ID injectargs '--osd_client_watch_timeout 15' ceph tell osd.OSD_ID injectargs '--osd_heartbeat_grace 20' ceph tell osd.OSD_ID injectargs '--osd_heartbeat_interval 5'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph tell osd.0 injectargs '--osd_client_watch_timeout 15' ceph tell osd.0 injectargs '--osd_heartbeat_grace 20' ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'
[root@mon ~]# ceph tell osd.0 injectargs '--osd_client_watch_timeout 15' [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_grace 20' [root@mon ~]# ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph OSD ノードから OSD タイマー設定のオンライン更新を実行するには、以下を実行します。
構文
ceph daemon osd.OSD_ID config set osd_client_watch_timeout 15 ceph daemon osd.OSD_ID config set osd_heartbeat_grace 20 ceph daemon osd.OSD_ID config set osd_heartbeat_interval 5
ceph daemon osd.OSD_ID config set osd_client_watch_timeout 15 ceph daemon osd.OSD_ID config set osd_heartbeat_grace 20 ceph daemon osd.OSD_ID config set osd_heartbeat_interval 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph daemon osd.0 config set osd_client_watch_timeout 15 ceph daemon osd.0 config set osd_heartbeat_grace 20 ceph daemon osd.0 config set osd_heartbeat_interval 5
[root@osd ~]# ceph daemon osd.0 config set osd_client_watch_timeout 15 [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_grace 20 [root@osd ~]# ceph daemon osd.0 config set osd_heartbeat_interval 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Red Hat Ceph Storage を iSCSI ゲートウェイとして使用する方法は、Red Hat Ceph Storage ブロックデバイスガイドの Ceph iSCSI ゲートウェイ を参照してください。
7.4.5. コマンドラインインターフェイスを使用した iSCSI ホストグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
Ceph iSCSI ゲートウェイは、同じディスク設定を共有するサーバーを複数管理するホストグループを設定できます。iSCSI ホストグループでは、ホストの論理グループと、グループ内の各ホストがアクセスできるディスクが作成されます。
複数のホストへのディスクデバイスの共有は、クラスター対応のファイルシステムを使用する必要があります。
前提条件
- Ceph iSCSI ゲートウェイソフトウェアのインストール。
- Ceph iSCSI ゲートウェイノードへの root レベルのアクセス。
手順
iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。
gwcli
[root@iscsigw ~]# gwcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規ホストグループを作成します。
構文
cd iscsi-targets/ cd IQN/host-groups create group_name=GROUP_NAME
cd iscsi-targets/ cd IQN/host-groups create group_name=GROUP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/> cd iscsi-targets/ /iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/ /iscsi-target.../host-groups> create group_name=igw_grp01
/> cd iscsi-targets/ /iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/ /iscsi-target.../host-groups> create group_name=igw_grp01Copy to Clipboard Copied! Toggle word wrap Toggle overflow ホストグループにホストを追加します。
構文
cd GROUP_NAME host add client_iqn=CLIENT_IQN
cd GROUP_NAME host add client_iqn=CLIENT_IQNCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
> cd igw_grp01 /iscsi-target.../host-groups/igw_grp01> host add client_iqn=iqn.1994-05.com.redhat:rh8-client
> cd igw_grp01 /iscsi-target.../host-groups/igw_grp01> host add client_iqn=iqn.1994-05.com.redhat:rh8-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow この手順を繰り返して、追加のホストをグループに追加します。
ホストグループにディスクを追加します。
構文
cd /disks/ /disks> create pool=POOL image=IMAGE_NAME size=SIZE cd /IQN/host-groups/GROUP_NAME disk add POOL/IMAGE_NAME
cd /disks/ /disks> create pool=POOL image=IMAGE_NAME size=SIZE cd /IQN/host-groups/GROUP_NAME disk add POOL/IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
> cd /disks/ /disks> create pool=rbd image=rbdimage size=1G /> cd iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/igw_grp01/ /iscsi-target...s/igw_grp01> disk add rbd/rbdimage
> cd /disks/ /disks> create pool=rbd image=rbdimage size=1G /> cd iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/igw_grp01/ /iscsi-target...s/igw_grp01> disk add rbd/rbdimageCopy to Clipboard Copied! Toggle word wrap Toggle overflow この手順を繰り返して、グループにディスクを追加します。
7.4.6. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Ceph Storage ダッシュボードを使用して iSCSI ターゲットを設定する方法は、Red Hat Ceph Storage ダッシュボードガイドの iSCSI ターゲットの作成 セクションを参照してください。
7.5. iSCSI イニシエーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
iSCSI イニシエーターを設定して、以下のプラットフォームの Ceph iSCSI ゲートウェイに接続できます。
7.5.1. Red Hat Enterprise Linux の iSCSI イニシエーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Red Hat Enterprise Linux 7.7 以降。
-
パッケージ
iscsi-initiator-utils-6.2.0.873-35以降がインストールされている。 -
パッケージ
device-mapper-multipath-0.4.9-99以降がインストールされている。
手順
iSCSI イニシエーターおよびマルチパスツールをインストールします。
yum install iscsi-initiator-utils yum install device-mapper-multipath
[root@rhel ~]# yum install iscsi-initiator-utils [root@rhel ~]# yum install device-mapper-multipathCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/etc/iscsi/initiatorname.iscsiファイルを編集してイニシエーター名を設定します。イニシエーター名は、gwcliコマンドでの初期設定中に使用されたイニシエーター名と同じである必要がある点に注意してください。 マルチパス I/O を設定します。
デフォルトの
/etc/multipath.confファイルを作成し、multipathdサービスを有効にします。mpathconf --enable --with_multipathd y
[root@rhel ~]# mpathconf --enable --with_multipathd yCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように
/etc/multipath.confファイルを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow multipathdサービスを再起動します。systemctl reload multipathd
[root@rhel ~]# systemctl reload multipathdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
CHAP と iSCSI の検出とログインを設定します。
以下のように
/etc/iscsi/iscsid.confファイルを更新して、CHAP ユーザー名とパスワードを指定します。node.session.auth.authmethod = CHAP node.session.auth.username = user node.session.auth.password = password
node.session.auth.authmethod = CHAP node.session.auth.username = user node.session.auth.password = passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow ターゲットポータルを検出します。
構文
iscsiadm -m discovery -t st -p IP_ADDR
iscsiadm -m discovery -t st -p IP_ADDRCopy to Clipboard Copied! Toggle word wrap Toggle overflow ターゲットにログインします。
構文
iscsiadm -m node -T TARGET -l
iscsiadm -m node -T TARGET -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow
マルチパス I/O 設定を表示します。
multipathdデーモンは、multipath.confファイルの設定に基づいてデバイスを自動的に設定します。multipathコマンドを使用して、パスごとに優先度の高いグループが含まれるフェイルオーバー設定でのデバイス設定を表示します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow multipath -ll出力のprio値は ALUA の状態を示します。ここでは、prio=50は、ALUA Active-Optimized の状態の独自の iSCSI ゲートウェイへのパスであり、prio=10は Active-non-Optimized パスであることを示します。statusフィールドは、使用されているパスを示します。こででは、activeは現在使用されているパス、enabledはactiveなパスに問題が発生した場合にフェイルオーバーパスが有効になります 。multipath -llの出力でデバイス名 (例:sde) を iSCSI ゲートウェイに一致させるには、次のコマンドを実行します。例
iscsiadm -m session -P 3
[root@rhel ~]# iscsiadm -m session -P 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow Persistent Portalの値は、gwcliユーティリティーの一覧に記載されている iSCSI ゲートウェイに割り当てられた IP アドレスです。
7.5.2. Red Hat Virtualization の iSCSI イニシエーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Red Hat Virtualization 4.1
- すべての Red Hat Virtualization ノードでの MPIO デバイスの設定
-
パッケージ
iscsi-initiator-utils-6.2.0.873-35以降 -
パッケージ
device-mapper-multipath-0.4.9-99以降
手順
マルチパス I/O を設定します。
以下のように
/etc/multipath/conf.d/DEVICE_NAME.confファイルを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow multipathdサービスを再起動します。systemctl reload multipathd
[root@rhv ~]# systemctl reload multipathdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- Storage resource タブをクリックして既存のストレージドメインを一覧表示します。
- 新規ドメイン ボタンをクリックして、新規ドメイン ウィンドウを開きます。
- 新規ストレージドメインの 名前 を入力します。
- データセンター ドロップダウンメニューを使用してデータセンターを選択します。
- ドロップダウンメニューを使用して、Domain Function および Storage Type を選択します。選択したドメイン機能との互換性がないストレージドメインタイプは利用できません。
- Use Host フィールドでアクティブなホストを選択します。データセンターの最初のデータドメインではない場合は、データセンターの SPM ホストを選択する必要があります。
新規ドメイン ウィンドウで、iSCSI がストレージタイプとして選択されている場合に、未使用の LUN が割り当てられた既知のターゲットが自動的に表示されます。ストレージを追加するターゲットが一覧にない場合には、ターゲット検出を使用して検索できます。それ以外の場合は、次のステップに進みます。
- ターゲットを検出 をクリックし、ターゲットの検出オプションを有効にします。ターゲットが検出され、ログインすると、新規ドメイン ウィンドウに、その環境で未使用の LUN が割り当てられたターゲットが自動的に表示されます。環境外の LUN も表示されることに注意してください。ターゲットを検出 のオプションを使用すると、多くのターゲットに LUN を追加したり、同じ LUN に複数のパスを追加したりすることができます。
- Address フィールドに、iSCSI ホストの完全修飾ドメイン名または IP アドレスを入力します。
-
ポートフィールドでのターゲットの参照時に、ホストに接続する ポート を入力します。デフォルトは
3260です。 - ストレージのセキュリティー保護にチャレンジハンドシェイク認証プロトコル (CHAP) を使用している場合は、ユーザー認証のチェックボックスを選択します。CHAP のユーザー名 と CHAP のパスワード を入力します。
- 検出 ボタンをクリックします。
検出結果から使用するターゲットを選択し、ログイン ボタンをクリックします。または、Login All をクリックし、検出されたすべてのターゲットにログインします。
重要複数のパスのアクセスが必要な場合には、すべての必要なパスでターゲットを検出してログインするようにしてください。ストレージドメインを変更してパスを追加する方法は、現在サポートされていません。
- 対象のターゲットの横にある + ボタンをクリックします。これにより、エントリーを展開し、ターゲットにアタッチされている未使用の LUN をすべて表示します。
- ストレージドメインの作成に使用する各 LUN のチェックボックスを選択します。
オプションで、詳細パラメーターを設定することが可能です。
- 詳細パラメーター をクリックします。
- 容量不足の警告 のフィールドに、パーセンテージ値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーに警告メッセージが表示され、ログに記録されます。
- アクションをブロックする 深刻な容量不足 のフィールドに GB 単位で値を入力します。ストレージドメインの空き容量がこの値を下回ると、ユーザーにエラーメッセージが表示され、ログに記録されます。領域を消費する新しいアクションは、一時的であってもブロックされます。
-
削除後にワイプ オプションを有効にするには、
wipe after deleteのチェックボックスを選択します。このオプションは、ドメインの作成後に編集できますが、すでに存在するディスクのwipe after deleteプロパティーは変更されません。 - 削除後に破棄 チェックボックスを選択して、削除後に破棄のオプションを有効化します。このオプションは、ドメインの作成後に編集できます。このオプションは、ブロックストレージドメインでのみ使用できます。
- OK をクリックしてストレージドメインを作成し、ウィンドウを閉じます。
7.5.3. Microsoft Windows の iSCSI イニシエーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- Microsoft Windows Server 2016
手順
iSCSI イニシエーターをインストールし、検出および設定を行います。
- iSCSI イニシエータードライバーおよび MPIO ツールをインストールします。
- MPIO プログラムを起動し、Discover Multi-Paths タブをクリックし、iSCSI デバイスのサポートの追加 チェックボックスにチェックを入れ、Add をクリックします。
- MPIO プログラムを再起動します。
iSCSI Initiator プロパティーウィンドウ、Discovery タブ
でターゲットポータルを追加します。Ceph iSCSI ゲートウェイの IP アドレスまたは DNS 名
および ポート
を入力します。
Targets タブ
で、ターゲットを選択し、Connect
をクリックします。
Connect To Target ウィンドウで Enable multi-path オプション
を選択し、Advanced ボタン
をクリックします。
Connect using セクションで、Target portal IP
を選択します。
で CHAP ログイン を選択し、Ceph iSCSI クライアント認証情報セクションから Name および Target secret の値
を入力して、OK
をクリックします。
重要Windows Server 2016 は 12 バイト未満の CHAP シークレットを受け入れません。
- iSCSI ゲートウェイを設定するときに定義されたターゲットポータルごとに、前述の 2 つの手順を繰り返します。
イニシエーター名が初期設定中に使用されるイニシエーター名と異なる場合は、イニシエーター名を変更します。iSCSI Initiator プロパティーウィンドウの 設定 タブ
で Change ボタン
をクリックしてイニシエーターの名前を変更します。
multipathI/O を設定します。PowerShell では、PDORemovePeriodコマンドを使用して MPIO 負荷分散ポリシーとmpclaimコマンドを使用して負荷分散ポリシーを設定します。iSCSI Initiator Tool は、残りのオプションを設定します。注記Red Hat は、
PDORemovePeriodオプションを PowerShell から 120 秒に増やすことを推奨します。この値はアプリケーションに基づいて調整する必要がある場合があります。すべてのパスがダウンし、120 秒の有効期限が切れると、オペレーティングシステムは I/O 要求の失敗を開始します。Set-MPIOSetting -NewPDORemovePeriod 120
Set-MPIOSetting -NewPDORemovePeriod 120Copy to Clipboard Copied! Toggle word wrap Toggle overflow フェイルオーバーポリシーの設定
mpclaim.exe -l -m 1
mpclaim.exe -l -m 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow フェイルオーバーポリシーの確認
mpclaim -s -m MSDSM-wide Load Balance Policy: Fail Over Only
mpclaim -s -m MSDSM-wide Load Balance Policy: Fail Over OnlyCopy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI Initiator ツールを使用して、ターゲット タブ
から デバイス...ボタン
をクリックします。
デバイス ウィンドウで、ディスク
を選択し、MPIO…
ボタンをクリックします。
デバイスの詳細 ウィンドウには、各ターゲットポータルへのパスが表示されます。Load Balancing Policy Fail Over Only を選択する必要があります。
PowerShell から
multipath設定を表示します。mpclaim -s -d MPIO_DISK_ID
mpclaim -s -d MPIO_DISK_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow MPIO_DISK_ID を適切なディスク識別子に置き換えます。
注記LUN を所有する iSCSI ゲートウェイノードへのパスである Active/Optimized パスが 1 つあります。他の iSCSI ゲートウェイノードごとに Active/optimized パスがあります。
オプションで、設定をチューニングします。以下のレジストリー設定の使用を検討してください。
Windows ディスクのタイムアウト
キー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DiskCopy to Clipboard Copied! Toggle word wrap Toggle overflow 値
TimeOutValue = 65
TimeOutValue = 65Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft iSCSI イニシエータードライバー
キー
HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\ParametersHKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\ParametersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 値
LinkDownTime = 25 SRBTimeoutDelta = 15
LinkDownTime = 25 SRBTimeoutDelta = 15Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.4. VMware ESXi 向けの iSCSI イニシエーターの設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- サポートされる VMware ESXi バージョンについては、カスタマーポータルのナレッジベースの 記事 のiSCSI Gateway (IGW)セクションを参照してください。
- VMware ホストクライアントへのアクセス
-
esxcliコマンドを実行する VMware ESXi ホストへの root アクセス
手順
HardwareAcceleratedMoveを無効にします。> esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
> esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMoveCopy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI ソフトウェアを有効にします。Navigator ペインから Storage
をクリックします。Adapters タブ
を選択します。iSCSI の設定
をクリックします。
名前 & エイリアス のセクション
でイニシエーター名を確認します。
イニシエーター名が
gwcliを使用して初期設定中にクライアントを作成するときに使用されるイニシエーター名と異なる場合は、イニシエーター名 (VMware ESX ホスト) を変更し、esxcliコマンドを実行します。iSCSI ソフトウェアのアダプター名を取得します。
> esxcli iscsi adapter list > Adapter Driver State UID Description > ------- --------- ------ ------------- ---------------------- > vmhba64 iscsi_vmk online iscsi.vmhba64 iSCSI Software Adapter
> esxcli iscsi adapter list > Adapter Driver State UID Description > ------- --------- ------ ------------- ---------------------- > vmhba64 iscsi_vmk online iscsi.vmhba64 iSCSI Software AdapterCopy to Clipboard Copied! Toggle word wrap Toggle overflow イニシエーター名を設定します。
構文
> esxcli iscsi adapter set -A ADAPTOR_NAME -n INITIATOR_NAME
> esxcli iscsi adapter set -A ADAPTOR_NAME -n INITIATOR_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
> esxcli iscsi adapter set -A vmhba64 -n iqn.1994-05.com.redhat:rh7-client
> esxcli iscsi adapter set -A vmhba64 -n iqn.1994-05.com.redhat:rh7-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow
CHAP を設定します。CHAP 認証 セクション
を展開します。"Do not use CHAP unless unless required by target" (ターゲットによって必要な場合を除き、CHAP は使用しないでください)
を選択してください。初期設定で使用されていた CHAP Name および Secret
の認証情報を入力します。Mutual CHAP 認証 セクション
で "Do not use CHAP" (CHAP は使用しないでください) が選択されていることを確認します。
警告VMware Host Client のバグにより、CHAP 設定が最初に使用されません。Ceph iSCSI ゲートウェイノードでは、このバグを示しているので、カーネルログには以下のエラーが含まれます。
> kernel: CHAP user or password not set for Initiator ACL > kernel: Security negotiation failed. > kernel: iSCSI Login negotiation failed.
> kernel: CHAP user or password not set for Initiator ACL > kernel: Security negotiation failed. > kernel: iSCSI Login negotiation failed.Copy to Clipboard Copied! Toggle word wrap Toggle overflow このバグを回避するには、
esxcliコマンドを使用して CHAP を設定します。authname引数は vSphere Web クライアントの Name です。> esxcli iscsi adapter auth chap set --direction=uni --authname=myiscsiusername --secret=myiscsipassword --level=discouraged -A vmhba64
> esxcli iscsi adapter auth chap set --direction=uni --authname=myiscsiusername --secret=myiscsipassword --level=discouraged -A vmhba64Copy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI 設定を設定します。Advanced settings
を展開します。RecoveryTimeout の値を 25
に設定します。
検出アドレスを設定します。Dynamic targets セクション
で、Add dynamic target
をクリックします。Address
の下に、Ceph iSCSI ゲートウェイの 1 つに IP アドレスを追加します。1 つの IP アドレスのみを追加する必要があります。最後に、Save configuration ボタン
をクリックします。Devices タブのメインインターフェイスから RBD イメージが表示されます。
注記LUN は、ALUA SATP および MRU PSP を使用して自動的に設定されます。他の SATP および PSP は使用しないでください。これは、
esxcliコマンドで確認できます。構文
esxcli storage nmp path list -d eui.DEVICE_ID
esxcli storage nmp path list -d eui.DEVICE_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow DEVICE_ID を適切なデバイス識別子に置き換えます。
マルチパスが正しく設定されていることを確認します。
デバイスを一覧表示します。
例
> esxcli storage nmp device list | grep iSCSI Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b) Device Display Name: LIO-ORG iSCSI Disk (naa.6001405057360ba9b4c434daa3c6770c)
> esxcli storage nmp device list | grep iSCSI Device Display Name: LIO-ORG iSCSI Disk (naa.6001405f8d087846e7b4f0e9e3acd44b) Device Display Name: LIO-ORG iSCSI Disk (naa.6001405057360ba9b4c434daa3c6770c)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前の手順で Ceph iSCSI ディスクのマルチパス情報を取得します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力例から、各パスには iSCSI または SCSI 名があり、以下の部分があります。
Initiator name =
iqn.2005-03.com.ceph:esx1ISID =00023d000002Target name =iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwTarget port group =2Device id =naa.6001405f8d087846e7b4f0e9e3acd44bGroup Stateの値がactiveの場合は、これが iSCSI ゲートウェイへの Active-Optimized パスであることを示します。gwcliコマンドは、iSCSI ゲートウェイ所有者としてactiveを一覧表示します。パスの残りの部分には、unoptimizedのGroup Stateの値があり、activeパスがdead状態になる場合にフェイルオーバーパスになります。
対応する iSCSI ゲートウェイへのすべてのパスに一致するには、以下のコマンドを実行します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パス名を
ISID値と照合し、RemoteAddress値は独自の iSCSI ゲートウェイの IP アドレスです。
7.6. iSCSI サービスの管理 リンクのコピーリンクがクリップボードにコピーされました!
ceph-iscsi パッケージは、設定管理ロジックと rbd-target-gw および rbd-target-api systemd サービスをインストールします。
rbd-target-api サービスは、起動時に Linux iSCSI ターゲットの状態を復元し、gwcli や Red Hat Ceph Storage ダッシュボードなどのツールから ceph-iscsi REST API 呼び出しに応答します。rbd-target-gw サービスは、Prometheus プラグインを使用してメトリクスを提供します。
rbd-target-api サービスは、Linux カーネルのターゲットレイヤーの唯一のユーザーであることを前提としています。rbd-target-api を使用する場合は、targetcli パッケージでインストールされたターゲットサービスを使用しないでください。Ansible は、Ceph iSCSI ゲートウェイインストール時に targetcli ターゲットサービスを自動的に無効にします。
手順
サービスを起動するには、以下を実行します。
systemctl start rbd-target-api systemctl start rbd-target-gw
# systemctl start rbd-target-api # systemctl start rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動するには、以下を実行します。
systemctl restart rbd-target-api systemctl restart rbd-target-gw
# systemctl restart rbd-target-api # systemctl restart rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再読み込みするには、以下を実行します。
systemctl reload rbd-target-api systemctl reload rbd-target-gw
# systemctl reload rbd-target-api # systemctl reload rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow reload要求はrbd-target-apiが設定を再読み取りし、現在の実行環境に適用します。Ansible からすべての iSCSI ゲートウェイノードに変更が並行してデプロイされるため、これは通常は不要です。サービスを停止するには、以下を実行します。
systemctl stop rbd-target-api systemctl stop rbd-target-gw
# systemctl stop rbd-target-api # systemctl stop rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow stopリクエストはゲートウェイのポータルインターフェイスを閉じ、クライアントへの接続をドロップし、カーネルから現在の Linux iSCSI ターゲット設定を消去します。これにより、iSCSI ゲートウェイがクリーンな状態に戻ります。クライアントが切断されると、アクティブな I/O はクライアント側マルチパス層によって他の iSCSI ゲートウェイに再スケジュールされます。
7.7. iSCSI ゲートウェイの追加 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、gwcli コマンドラインツールまたは Red Hat Ceph Storage ダッシュボードを使用して、最初の 2 つの iSCSI ゲートウェイを 4 つの iSCSI ゲートウェイに拡張できます。iSCSI ゲートウェイを追加すると、負荷分散とフェイルオーバーオプションを使用したときに、より多くの冗長性とともに、さらなる柔軟性が確立されます。
7.7.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 実行中の Red Hat Ceph Storage 4 クラスター
- スペアノードまたは既存の OSD ノード
-
root権限
7.7.2. Ansible を使用した iSCSI ゲートウェイの追加 リンクのコピーリンクがクリップボードにコピーされました!
Ansible 自動化ユーティリティーを使用して、iSCSI ゲートウェイを追加できます。この手順では、2 つの iSCSI ゲートウェイのデフォルトインストールを 4 つの iSCSI ゲートウェイに拡張します。スタンドアロンのノードで iSCSI ゲートウェイを設定するか、既存の OSD ノードと共存させることができます。
前提条件
- Red Hat Enterprise Linux 7.7 以降
- 稼働中の Red Hat Ceph Storage クラスターがある。
- iSCSI ゲートウェイソフトウェアのインストール。
-
Ansible管理ノードでの管理者ユーザーアクセスがある。 -
新規ノードでの
rootユーザーアクセスがあること。
手順
新しい iSCSI ゲートウェイノードで、Red Hat Ceph Storage Tools リポジトリーを有効にします。
Red Hat Enterprise Linux 7
subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
[root@iscsigw ~]# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
[root@iscsigw ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-iscsi-configパッケージをインストールします。yum install ceph-iscsi-config
[root@iscsigw ~]# yum install ceph-iscsi-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow ゲートウェイグループの
/etc/ansible/hostsファイルの一覧に追加します。例
[iscsigws] ... ceph-igw-3 ceph-igw-4
[iscsigws] ... ceph-igw-3 ceph-igw-4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OSD ノードと iSCSI ゲートウェイを共存させる場合は、OSD ノードを
[iscsigws]セクションに追加します。ceph-ansibleディレクトリーに移動します。cd /usr/share/ceph-ansible
[admin@ansible ~]$ cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 管理ノードで、適切な Ansible Playbook を実行します。
ベアメタル デプロイメント:
ansible-playbook site.yml -i hosts
[admin@ansible ceph-ansible]$ ansible-playbook site.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー デプロイメント:
ansible-playbook site-container.yml -i hosts
[admin@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
重要gateway_ip_listオプションに IP アドレスを指定する必要があります。IPv4 アドレスと IPv6 アドレスを混在させることはできません。- iSCSI イニシエーターから再ログインして、新たに追加された iSCSI ゲートウェイを使用します。
関連情報
- iSCSI イニシエーターの使用方法は、iSCSI イニシエーターの設定 を参照してください。
- 詳細は、Red Hat Ceph Storage インストールガイドの Red Hat Ceph Storage リポジトリーの有効化 セクションを参照してください。
7.7.3. gwcli を使用した iSCSI ゲートウェイの追加 リンクのコピーリンクがクリップボードにコピーされました!
gwcli コマンドラインツールを使用して、iSCSI ゲートウェイを追加できます。この手順では、2 つの iSCSI ゲートウェイのデフォルトを 4 つの iSCSI ゲートウェイに拡張します。
前提条件
- Red Hat Enterprise Linux 7.7 以降
- 稼働中の Red Hat Ceph Storage クラスターがある。
- iSCSI ゲートウェイソフトウェアのインストール。
-
新規ノードまたは OSD ノードへの
rootユーザーアクセスがあること。
手順
-
Ceph iSCSI ゲートウェイが OSD ノードと同じ場所に配置されていない場合には、
/etc/ceph/ディレクトリーにある Ceph 設定ファイルを、ストレージクラスターにある実行中の Ceph ノードから新しい iSCSI ゲートウェイノードにコピーしてください。Ceph 設定ファイルは、/etc/ceph/ディレクトリーにある iSCSI ゲートウェイノードに存在している必要があります。 - Ceph コマンドラインインターフェイスをインストールおよび設定します。
新しい iSCSI ゲートウェイノードで、Red Hat Ceph Storage Tools リポジトリーを有効にします。
Red Hat Enterprise Linux 7
subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
[root@iscsigw ~]# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms
[root@iscsigw ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-iscsiパッケージおよびtcmu-runnerパッケージをインストールします。Red Hat Enterprise Linux 7
yum install ceph-iscsi tcmu-runner
[root@iscsigw ~]# yum install ceph-iscsi tcmu-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install ceph-iscsi tcmu-runner
[root@iscsigw ~]# dnf install ceph-iscsi tcmu-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、
opensslパッケージをインストールします。Red Hat Enterprise Linux 7
yum install openssl
[root@iscsigw ~]# yum install opensslCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install openssl
[root@iscsigw ~]# dnf install opensslCopy to Clipboard Copied! Toggle word wrap Toggle overflow
既存の iSCSI ゲートウェイノードの 1 つで、
/etc/ceph/iscsi-gateway.cfgファイルを編集し、trusted _ip_listオプションを新しい iSCSI ゲートウェイノードの新しい IP アドレスに追加します。以下に例を示します。[config] ... trusted_ip_list = 10.172.19.21,10.172.19.22,10.172.19.23,10.172.19.24
[config] ... trusted_ip_list = 10.172.19.21,10.172.19.22,10.172.19.23,10.172.19.24Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新された
/etc/ceph/iscsi-gateway.cfgファイルを、すべての iSCSI ゲートウェイノードにコピーします。重要iscsi-gateway.cfgファイルは、すべての iSCSI ゲートウェイノードで同一でなければなりません。-
必要に応じて、SSL を使用する場合は、既存の iSCSI ゲートウェイノードの 1 つから
~/ssl-keys/iscsi- gateway.crt、~/ssl-keys/iscsi-gateway.pem、~/ssl-keys/iscsi-gateway-pub.keyファイル、および~/ssl -keys /iscsi-gateway.keyファイルも SiSCI ゲートウェイノードの/etc/ceph/ディレクトリーにコピーします。 新しい iSCSI ゲートウェイノードで API サービスを有効にして起動します。
systemctl enable rbd-target-api systemctl start rbd-target-api
[root@iscsigw ~]# systemctl enable rbd-target-api [root@iscsigw ~]# systemctl start rbd-target-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。
gwcli
[root@iscsigw ~]# gwcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow IPv4 アドレスまたは IPv6 アドレスのいずれかを使用して iSCSI ゲートウェイを作成します。
構文
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:_TARGET_NAME_ > goto gateways > create ISCSI_GW_NAME IP_ADDR_OF_GW > create ISCSI_GW_NAME IP_ADDR_OF_GW
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:_TARGET_NAME_ > goto gateways > create ISCSI_GW_NAME IP_ADDR_OF_GW > create ISCSI_GW_NAME IP_ADDR_OF_GWCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw > goto gateways > create ceph-gw-3 10.172.19.23 > create ceph-gw-4 10.172.19.24
>/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw > goto gateways > create ceph-gw-3 10.172.19.23 > create ceph-gw-4 10.172.19.24Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要IPv4 アドレスと IPv6 アドレスを混在させることはできません。
- iSCSI イニシエーターから再ログインして、新たに追加された iSCSI ゲートウェイを使用します。
関連情報
- iSCSI イニシエーターの使用に関する詳細は、iSCSI イニシエーターの設定 を参照してください。
- 詳細は、Red Hat Ceph Storage インストールガイドの Ceph コマンドラインインターフェイスのインストール の章を参照してください。
7.8. イニシエーターが iSCSI ターゲットに接続されていることの確認 リンクのコピーリンクがクリップボードにコピーされました!
iSCSI ゲートウェイをインストールし、iSCSI ターゲットとイニシエーターを設定したら、イニシエーターが iSCSI ターゲットに正しく接続されていることを確認します。
前提条件
- Ceph iSCSI ゲートウェイソフトウェアのインストール。
- iSCSI ターゲットを設定していました。
- iSCSI イニシエーターを設定していました。
手順
iSCSI ゲートウェイのコマンドラインインターフェイスを起動します。
gwcli
[root@iscsigw ~]# gwcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow イニシエーターが iSCSI ターゲットを接続していることを確認します。
/> goto hosts /iscsi-target...csi-igw/hosts> ls o- hosts .............................. [Hosts: 1: Auth: None] o- iqn.1994-05.com.redhat:rh7-client [LOGGED-IN, Auth: None, Disks: 0(0.00Y)]
/> goto hosts /iscsi-target...csi-igw/hosts> ls o- hosts .............................. [Hosts: 1: Auth: None] o- iqn.1994-05.com.redhat:rh7-client [LOGGED-IN, Auth: None, Disks: 0(0.00Y)]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 接続されている場合は、イニシエーターのステータスは
LOGGED-INになります。LUN が iSCSI ゲートウェイ全体で分散されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクの作成時に、ディスクには、マッピングされている LUN が最も少ないゲートウェイに基づいて、iSCSI ゲートウェイが
Ownerとして割り当てられます。この数字が分散されると、ゲートウェイはラウンドロビン割り当てに基づいて割り当てられます。現在、LUN のバランスは動的ではなく、ユーザーが選択できません。イニシエーターがターゲットにログインし、
multipathレイヤーが最適化された状態になると、イニシエーターのオペレーティングシステムのmultipathユーティリティーが ALUA Active-Optimized (AO) 状態であるように、Ownerゲートウェイへのパスを報告します。multipathユーティリティーは、ALUA Active-non-Optimized (ANO) 状態である他のパスを報告します。AO パスが失敗すると、他の iSCSI ゲートウェイの 1 つが使用されます。フェイルオーバーゲートウェイの順序は、イニシエーターの
multipathレイヤーによって異なります。通常、この順序は最初に検出したパスに基づきます。
7.9. Ansible を使用した Ceph iSCSI ゲートウェイのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage iSCSI ゲートウェイのアップグレードは、ローリングアップグレード用に設計された Ansible Playbook を使用して実行できます。
前提条件
- 実行中の Ceph iSCSI ゲートウェイがある。
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ストレージクラスター内のすべてのノードへの管理者レベルのアクセス。
アップグレード手順は、管理ユーザーまたは root として実行できます。root として実行するには、ssh が Ansible で使用できるように設定されていることを確認してください。
手順
-
正しい iSCSI ゲートウェイノードが Ansible インベントリーファイル (
/etc/ansible/hosts) に一覧表示されていることを確認します。 ローリングアップグレード Playbook を実行します。
ansible-playbook rolling_update.yml
[admin@ansible ceph-ansible]$ ansible-playbook rolling_update.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 適切な Playbook を実行してアップグレードを終了します。
ベアメタルデプロイメント
ansible-playbook site.yml --limit iscsigws -i hosts
[admin@ansible ceph-ansible]$ ansible-playbook site.yml --limit iscsigws -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーデプロイメント
ansible-playbook site-container.yml --limit iscsigws -i hosts
[admin@ansible ceph-ansible]$ ansible-playbook site-container.yml --limit iscsigws -i hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
7.10. コマンドラインインターフェイスを使用した Ceph iSCSI ゲートウェイのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage iSCSI ゲートウェイは、一度に 1 つのベアメタル iSCSI ゲートウェイノードをアップグレードすることでローリング方式で実行できます。
Ceph OSD のアップグレードおよび再起動中の iSCSI ゲートウェイをアップグレードしないでください。OSD のアップグレードが完了し、ストレージクラスターが active+clean の状態になる まで待ちます。
前提条件
- 実行中の Ceph iSCSI ゲートウェイがある。
- 稼働中の Red Hat Ceph Storage クラスターがある。
-
iSCSI ゲートウェイノードへの
rootアクセスがある。
手順
iSCSI ゲートウェイパッケージを更新します。
yum update ceph-iscsi
[root@iscsigw ~]# yum update ceph-iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI ゲートウェイデーモンを停止します。
systemctl stop rbd-target-api systemctl stop rbd-target-gw
[root@iscsigw ~]# systemctl stop rbd-target-api [root@iscsigw ~]# systemctl stop rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow iSCSI ゲートウェイデーモンが正常に停止したことを確認します。
systemctl status rbd-target-gw
[root@iscsigw ~]# systemctl status rbd-target-gwCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
rbd-target-gwサービスが正常に停止している場合は、手順 4 に進みます。 rbd-target-gwサービスを停止できない場合は、以下の手順を実行します。targetcliパッケージがインストールされていない場合は、targetcliパッケージをインストールします。yum install targetcli
[root@iscsigw ~]# yum install targetcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のターゲットオブジェクトを確認します。
targetcli ls
[root@iscsigw ~]# targetcli lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
o- / ............................................................. [...] o- backstores .................................................... [...] | o- user:rbd ..................................... [Storage Objects: 0] o- iscsi .................................................. [Targets: 0]
o- / ............................................................. [...] o- backstores .................................................... [...] | o- user:rbd ..................................... [Storage Objects: 0] o- iscsi .................................................. [Targets: 0]Copy to Clipboard Copied! Toggle word wrap Toggle overflow backstoresおよびStorage Objectが空の場合は、iSCSI ターゲットが正常にシャットダウンされ、ステップ 4 に進むことができ ます。ターゲットオブジェクトがまだある場合には、以下のコマンドを使用して、すべてのターゲットオブジェクトを強制的に削除します。
targetcli clearconfig confirm=True
[root@iscsigw ~]# targetcli clearconfig confirm=TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告複数のサービスが iSCSI ターゲットを使用している場合は、インタラクティブモードで
targetcliを使用して、これらの特定のオブジェクトを削除します。
-
tcmu-runnerパッケージを更新します。yum update tcmu-runner
[root@iscsigw ~]# yum update tcmu-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow tcmu-runnerサービスを停止します。systemctl stop tcmu-runner
[root@iscsigw ~]# systemctl stop tcmu-runnerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の順序で iSCSI ゲートウェイサービスを再起動します。
systemctl start tcmu-runner systemctl start rbd-target-gw systemctl start rbd-target-api
[root@iscsigw ~]# systemctl start tcmu-runner [root@iscsigw ~]# systemctl start rbd-target-gw [root@iscsigw ~]# systemctl start rbd-target-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11. iSCSI ゲートウェイの監視 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターでは、組み込みモニタリング機能のために、OSD および MGR 内に汎用メトリクス収集フレームワークが組み込まれるようになりました。メトリクスは Red Hat Ceph Storage クラスター内で生成され、メトリクスを収集するためにクライアントノードにアクセスする必要はありません。RBD イメージのパフォーマンスを監視するため、Ceph には組み込みの MGR Prometheus エクスポーターモジュールがあり、個々の RADOS オブジェクトメトリクスを、1 秒ごとの Input/Output (I/O) 操作、スループット、およびレイテンシーに関する集約された RBD イメージメトリクスに変換します。Ceph iSCSI ゲートウェイも、Linux-IO (LIO) レベルのパフォーマンスメトリックの Prometheus エクスポーターを提供し、Grafana などの監視ツールおよび可視化ツールをサポートします。これらのメトリクスには、定義された Target Portal Group (TPG) およびマッピングされた論理ユニット番号 (LUN)、LUN ごとの状態および 1 秒ごとの入力出力操作数 (IOPS)、クライアントごとの LUN ごとの読み取り/書き込みバイト数に関する情報が含まれます。デフォルトで、Prometheus エクスポーターは有効になっています。iscsi-gateway.cfg で以下のオプションを使用して、デフォルトの設定を変更できます。
例
[config] prometheus_exporter = True prometheus_port = 9287 prometheus_host = xx.xx.xx.xxx
[config]
prometheus_exporter = True
prometheus_port = 9287
prometheus_host = xx.xx.xx.xxx
エクスポートした Ceph ブロックデバイス (RBD) イメージのパフォーマンスを監視するための Ceph iSCSI ゲートウェイ環境で使用される gwtop ツールは非推奨になりました。
7.12. iSCSI 設定の削除 リンクのコピーリンクがクリップボードにコピーされました!
iSCSI 設定を削除するには、gwcli ユーティリティーを使用してホストおよびディスクを削除し、Ansible purge-iscsi-gateways.yml Playbook を使用して iSCSI ターゲット設定を削除します。
purge-iscsi-gateways.yml Playbook の使用を使用することは、iSCSI ゲートウェイ環境に対する破壊的な操作と言えます。
WARNING: RBD イメージにスナップショットまたはクローンがあり、Ceph iSCSI ゲートウェイを介してエクスポートされている場合は、purge-iscsi-gateways.yml の使用を試行します。
前提条件
すべての iSCSI イニシエーターを切断します。
Red Hat Enterprise Linux イニシエーター:
構文
iscsiadm -m node -T TARGET_NAME --logout
iscsiadm -m node -T TARGET_NAME --logoutCopy to Clipboard Copied! Toggle word wrap Toggle overflow TARGET_NAMEを、設定した iSCSI ターゲット名に置き換えます。以下に例を示します。例
iscsiadm -m node -T iqn.2003-01.com.redhat.iscsi-gw:ceph-igw --logout
# iscsiadm -m node -T iqn.2003-01.com.redhat.iscsi-gw:ceph-igw --logout Logging out of session [sid: 1, target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw, portal: 10.172.19.21,3260] Logging out of session [sid: 2, target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw, portal: 10.172.19.22,3260] Logout of [sid: 1, target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw, portal: 10.172.19.21,3260] successful. Logout of [sid: 2, target: iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw, portal: 10.172.19.22,3260] successful.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Windows イニシエーター:
詳細は、Microsoft のドキュメント を参照してください。
VMware ESXi イニシエーター:
詳細は、VMware のドキュメント を参照してください。
手順
iSCSI ゲートウェイのコマンドラインユーティリティーを実行します。
gwcli
[root@iscsigw ~]# gwcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow ホストを削除します。
構文
/> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:$TARGET_NAME/hosts /> /iscsi-target...TARGET_NAME/hosts> delete CLIENT_NAME
/> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:$TARGET_NAME/hosts /> /iscsi-target...TARGET_NAME/hosts> delete CLIENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow TARGET_NAMEを、設定された iSCSI ターゲット名に置き換え、CLIENT_NAMEを iSCSI イニシエーター名に置き換えます。以下に例を示します。例
/> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/hosts /> /iscsi-target...eph-igw/hosts> delete iqn.1994-05.com.redhat:rh7-client
/> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/hosts /> /iscsi-target...eph-igw/hosts> delete iqn.1994-05.com.redhat:rh7-clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクを削除します。
構文
/> cd /disks/ /disks> delete POOL_NAME.IMAGE_NAME
/> cd /disks/ /disks> delete POOL_NAME.IMAGE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow POOL_NAMEはプールの名前に、IMAGE_NAMEはイメージの名前に置き換えます。例
/> cd /disks/ /disks> delete rbd.disk_1
/> cd /disks/ /disks> delete rbd.disk_1Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナー化 されたデプロイメントの場合には root ユーザーとして、すべての Red Hat Ceph Storage ツールとリポジトリーが iSCSI ゲートウェイノードで有効になっていることを確認します。
Red Hat Enterprise Linux 7
subscription-manager repos --enable=rhel-7-server-rpms subscription-manager repos --enable=rhel-7-server-extras-rpms subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms --enable=rhel-7-server-ansible-2.9-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-7-server-rpms [root@admin ~]# subscription-manager repos --enable=rhel-7-server-extras-rpms [root@admin ~]# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms --enable=rhel-7-server-ansible-2.9-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
[root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms [root@admin ~]# subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms [root@admin ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ベアメタルデプロイメント の場合は、クライアントインストールで Ceph ツールが有効になります。
各 iSCSI ゲートウェイノードで、
ceph-commonパッケージおよびceph-iscsiパッケージをインストールします。Red Hat Enterprise Linux 7
yum install -y ceph-common yum install -y ceph-iscsi
[root@admin ~]# yum install -y ceph-common [root@admin ~]# yum install -y ceph-iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
dnf install -y ceph-common dnf install -y ceph-iscsi
[root@admin ~]# dnf install -y ceph-common [root@admin ~]# dnf install -y ceph-iscsiCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
yum history listコマンドを実行し、ceph-iscsiインストールのトランザクション ID を取得します。 Ansible ユーザーに切り替えます。
例
su ansible
[root@admin ~]# su ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/ceph-ansibleディレクトリーに移動します。例
cd /usr/share/ceph-ansible
[ansible@admin ~]# cd /usr/share/ceph-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansible ユーザーとして、iSCSI gateway purge Ansible Playbook を実行します。
ansible-playbook purge-iscsi-gateways.yml
[ansible@admin ceph-ansible]$ ansible-playbook purge-iscsi-gateways.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトが表示されたら、パージのタイプを入力します。
lio- このモードでは、Linux iSCSI ターゲット設定は、定義されたすべての iSCSI ゲートウェイで消去されます。作成されたディスクは、Ceph ストレージクラスター内で変更されないままになります。
all-
allを選択すると、Linux iSCSI ターゲット設定は、iSCSI ゲートウェイ環境内で定義されたすべての RBD イメージと共に削除され、その他の関連の RBD イメージは削除されません。この操作によりデータが削除されるので、必ず正しいモードを選択してください。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクティブなコンテナーが削除されているかどうかを確認します。
Red Hat Enterprise Linux 7
docker ps
[root@admin ~]# docker psCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8
podman ps
[root@admin ~]# podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph iSCSI コンテナー ID が削除されます。
必要に応じて、
ceph-iscsiパッケージを削除します。構文
yum history undo TRANSACTION_ID
yum history undo TRANSACTION_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
yum history undo 4
[root@admin ~]# yum history undo 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告ceph-commonパッケージを削除しないでください。削除すると、/etc/cephの内容が削除され、そのノードのデーモンが起動できなくなります。
7.13. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Ceph Storage ダッシュボードを使用した iSCSI ゲートウェイの管理に関する詳細は、Red Hat Ceph Storage 4 の ダッシュボードガイドの iSCSI 機能 のセクションを参照してください。
付録A Ceph ブロックデバイス設定の参照 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、利用可能なさまざまなオプションで、Ceph ブロックデバイスの動作を微調整できます。この参照を使用して、デフォルトの Ceph ブロックデバイスオプションや Ceph ブロックデバイスキャッシュオプションなどを表示できます。
A.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 稼働中の Red Hat Ceph Storage クラスターがある。
A.2. ブロックデバイスのデフォルトオプション リンクのコピーリンクがクリップボードにコピーされました!
イメージを作成するデフォルト設定を上書きできます。Ceph は、2 のフォーマットでイメージを作成し、ストライピングを行わずにイメージを作成します。
- rbd_default_format
- 詳細
-
その他の形式が指定されていない場合のデフォルト形式 (
2)。フォーマット1は、librbdおよび カーネルモジュールの全バージョンと互換性がある新しいイメージの元の形式ですが、クローンなどの新しい機能をサポートしません。2形式は、librbdおよびカーネルモジュールバージョン 3.11 以降でサポートされます (ストライピングを除く)。フォーマット2により、クローン作成のサポートが追加され、今後より簡単に機能性を持たせることができます。 - 型
- 整数
- デフォルト
-
2
- rbd_default_order
- 詳細
- 他の順序が指定されていない場合のデフォルトの順番です。
- 型
- 整数
- デフォルト
-
22
- rbd_default_stripe_count
- 詳細
- 他のストライプ数が指定されていない場合、デフォルトのストライプ数。デフォルト値を変更するには、v2 機能の削除が必要です。
- 型
- 64 ビット未署名の整数
- デフォルト
-
0
- rbd_default_stripe_unit
- 詳細
-
他のストライプユニットが指定されていない場合は、デフォルトのストライプユニットです。単位を
0(オブジェクトサイズ) から変更するには、v2 ストライピング機能が必要です。 - 型
- 64 ビット未署名の整数
- デフォルト
-
0
- rbd_default_features
- 詳細
ブロックデバイスイメージの作成時にデフォルトの機能が有効になります。この設定は、2 つのイメージのみに適用されます。設定は以下のとおりです。
1: レイヤーサポート。レイヤー化により、クローンを使用できます。
2: v2 サポートのストライピング。ストライピングは、データを複数のオブジェクト全体に分散します。ストライピングは、連続の読み取り/書き込みワークロードの並行処理に役立ちます。
4: 排他的ロックのサポート。有効にすると、書き込みを行う前にクライアントがオブジェクトのロックを取得する必要があります。
8: オブジェクトマップのサポート。ブロックデバイスはシンプロビジョニングされており、実際に存在するデータのみを保存します。オブジェクトマップのサポートは、実際に存在するオブジェクト (ドライブに格納されているデータ) を追跡するのに役立ちます。オブジェクトマップを有効にすると、クローン作成用の I/O 操作が高速化され、スパースに設定されたイメージのインポートおよびエクスポートが実行されます。
16: fast-diff サポート。fast-diff サポートは、オブジェクトマップのサポートと排他的ロックのサポートに依存します。別の属性をオブジェクトマップに追加して、イメージのスナップショット間の差異の生成と、スナップショットの実際のデータ使用量がはるかに速くなります。
32: deep-flatten サポート。deep-flatten を使用すると、イメージ自体に加えて、
rbd flattenがイメージのすべてのスナップショットで機能します。これを使用しないと、イメージのスナップショットは親に依存するため、スナップショットが削除されるまで親は削除できません。deep-flatten は、スナップショットがある場合でも、クローンから親を切り離します。64: ジャーナリングサポート。ジャーナリングは、イメージの実行順にイメージへの変更をすべて記録します。これにより、リモートイメージのクラッシュ調整ミラーがローカルで使用できるようになります。
有効な機能は、数値設定の合計です。
- 型
- 整数
- デフォルト
61: レイヤー化、exclusive-lock、object-map、fast-diff、および deep-flatten が有効にされます。重要現在のデフォルト設定は RBD カーネルドライバーや古い RBD クライアントと互換性がありません。
- rbd_default_map_options
- 詳細
-
ほとんどのオプションは、主にデバッグおよびベンチマークに役立ちます。詳細は、
Map Optionsのman rbdを参照してください。 - 型
- 文字列
- デフォルト
-
""
A.3. ブロックデバイスの一般オプション リンクのコピーリンクがクリップボードにコピーされました!
- rbd_op_threads
- 詳細
- ブロックデバイス操作スレッドの数。
- 型
- 整数
- デフォルト
-
1
rbd_op_threads のデフォルト値を変更しないでください。これは、1 を超える値に設定するとデータが破損する可能性があるためです。
- rbd_op_thread_timeout
- 詳細
- ブロックデバイス操作スレッドのタイムアウト (秒単位)。
- 型
- 整数
- デフォルト
-
60
- rbd_non_blocking_aio
- 詳細
-
trueの場合、Ceph はブロックを防ぐためにワーカースレッドからブロックデバイスの非同期 I/O 操作を処理します。 - 型
- ブール値
- デフォルト
-
true
- rbd_concurrent_management_ops
- 詳細
- フライトでの同時管理操作の最大数 (イメージの削除またはサイズ変更など)。
- 型
- 整数
- デフォルト
-
10
- rbd_request_timed_out_seconds
- 詳細
- メンテナンス要求がタイムアウトするまでの秒数。
- 型
- 整数
- デフォルト
-
30
- rbd_clone_copy_on_read
- 詳細
-
trueに設定すると、コピーオン読み取りのクローン作成が有効になります。 - 型
- ブール値
- デフォルト
-
false
- rbd_enable_alloc_hint
- 詳細
-
trueの場合、割り当てヒントは有効にされ、ブロックデバイスは OSD バックエンドにヒントを発行し、予想されるサイズオブジェクトを示します。 - 型
- ブール値
- デフォルト
-
true
- rbd_skip_partial_discard
- 詳細
-
trueの場合、オブジェクト内で範囲を破棄しようとすると、ブロックデバイスは範囲のゼロを省略します。 - 型
- ブール値
- デフォルト
-
false
- rbd_tracing
- 詳細
-
Linux Trace Toolkit Next Generation User Space Tracer (LTTng-UST) トレースポイントを有効にするには、このオプションを
trueに設定します。詳細は、RBD Replay 機能を使用した RADOS Block Device (RBD) ワークロードのトレース を参照してください。 - 型
- ブール値
- デフォルト
-
false
- rbd_validate_pool
- 詳細
-
RBD の互換性について空のプールを検証するには、このオプションを
trueに設定します。 - 型
- ブール値
- デフォルト
-
true
- rbd_validate_names
- 詳細
-
イメージの仕様を検証するには、このオプションを
trueに設定します。 - 型
- ブール値
- デフォルト
-
true
A.4. ブロックデバイスキャッシュオプション リンクのコピーリンクがクリップボードにコピーされました!
Ceph ブロックデバイスのユーザー空間実装 (librbd) は Linux ページキャッシュを利用できないため、RBD キャッシュ と呼ばれる独自のインメモリーキャッシュが含まれます。Ceph ブロックデバイスのキャッシュは、適切なハードディスクキャッシングと同様に動作します。オペレーティングシステムがバリアまたはフラッシュ要求を送信すると、ダーティーデータはすべて Ceph OSD に書き込まれます。つまり、フラッシュを適切に送信する仮想マシン (Linux カーネルバージョン 2.6.32 以上) とともに、ライトバックキャッシュを使用すると安全ではありません。キャッシュは Least Recently Used (LRU) アルゴリズムを使用し、ライトバックモードでは、スループット向上のために連続したリクエストを結合できます。
Ceph ブロックデバイスは、ライトバックキャッシュに対応します。ライトバックキャッシュを有効にするには、rbd_cache = true を Ceph 設定ファイルの [client] セクションに追加します。デフォルトでは、librbd はキャッシュを実行しません。書き込みおよび読み取りはストレージクラスターに直接移動し、データがすべてのレプリカのディスクにある場合にのみ書き込みに戻ります。キャッシュを有効にすると、rbd_cache_max_dirty の非フラッシュバイト数を超えない限り、書き込みは即座に返します。この場合、書き込みによって、十分なバイト数がフラッシュされるまでライトバックおよびブロックがトリガーされます。
Ceph ブロックデバイスはライトスルーキャッシュに対応します。キャッシュのサイズを設定し、ターゲットと制限を設定して、ライトバックキャッシュから write-through キャッシュに切り替えることができます。write-through モードを有効にするには、rbd_cache_max_dirty を 0 に設定します。つまり、書き込みは、データがすべてのレプリカのディスクにある場合にのみ返されますが、読み取りはキャッシュから送られる可能性があります。このキャッシュはクライアントのメモリーにあり、各 Ceph ブロックデバイスイメージ自体があります。キャッシュはクライアントのローカルなので、イメージにアクセスする他の条件がある場合は、一貫性がありません。Ceph ブロックデバイスの上に他のファイルシステムまたは OCFS を実行すると、キャッシュが有効ではありません。
Ceph ブロックデバイスの Ceph 設定設定は、Ceph 設定ファイルの [client] セクションで、デフォルトでは /etc/ceph/ceph.conf で設定する必要があります。
設定には以下が含まれます。
- rbd_cache
- 詳細
- RADOS Block Device (RBD) のキャッシュを有効にします。
- 型
- ブール値
- 必須
- いいえ
- デフォルト
-
true
- rbd_cache_size
- 詳細
- RBD キャッシュサイズ (バイト単位)。
- 型
- 64 ビット整数
- 必須
- いいえ
- デフォルト
-
32 MiB
- rbd_cache_max_dirty
- 詳細
-
キャッシュがライトバックをトリガーする
ダーティー制限 (バイト単位)。0の場合、ライトスルー (ライトスルー) キャッシュを使用します。 - 型
- 64 ビット整数
- 必須
- いいえ
- 制約
-
rbd cache sizeより小さくなければなりません。 - デフォルト
-
24 MiB
- rbd_cache_target_dirty
- 詳細
-
キャッシュがデータストレージにデータを書き込む前に
dirty target。キャッシュへの書き込みをブロックしません。 - 型
- 64 ビット整数
- 必須
- いいえ
- 制約
-
rbd cache max dirty未満である必要があります。 - デフォルト
-
16 MiB
- rbd_cache_max_dirty_age
- 詳細
- ライトバックの開始前にダーティーデータがキャッシュ内にある秒数。
- 型
- 浮動小数点 (Float)
- 必須
- いいえ
- デフォルト
-
1.0
- rbd_cache_max_dirty_object
- 詳細
-
オブジェクトのダーティー制限:
rbd_cache_sizeからの自動計算の場合は0に設定します。 - 型
- 整数
- デフォルト
-
0
- rbd_cache_block_writes_upfront
- 詳細
-
trueの場合、aio_write呼び出しが完了するまでキャッシュへの書き込みをブロックします。falseの場合、aio_completionが呼び出される前にブロックされます。 - 型
- ブール値
- デフォルト
-
false
- rbd_cache_writethrough_until_flush
- 詳細
- write-through モードで起動し、最初のフラッシュ要求が受信後に write-back に切り替えます。この有効化は Conservative ですが、rbd で実行している仮想マシンが、2.6.32 以前の Linux における virtio ドライバーと同様にフラッシュを送信することが古い場合は安全な設定です。
- 型
- ブール値
- 必須
- いいえ
- デフォルト
-
true
A.5. ブロックデバイスの親および子読み取りのオプション リンクのコピーリンクがクリップボードにコピーされました!
- rbd_balance_snap_reads
- 詳細
- Ceph は通常、プライマリー OSD からオブジェクトを読み取ります。読み取りは不変であるため、この機能を使用すると、プライマリー OSD とレプリカとの間で snap の読み取りのバランスを取ることができます。
- 型
- ブール値
- デフォルト
-
false
- rbd_localize_snap_reads
- 詳細
-
rbd_balance_snap_readsは、スナップショットを読み取るためにレプリカをランダム化します。rbd_localize_snap_readsを有効にすると、ブロックデバイスは CRUSH マップを検索し、スナップショットを読み取るため最も近い OSD またはローカル OSD を検索します。 - 型
- ブール値
- デフォルト
-
false
- rbd_balance_parent_reads
- 詳細
- Ceph は通常、プライマリー OSD からオブジェクトを読み取ります。読み取りは不変であるため、この機能を使用すると、プライマリー OSD とレプリカとの間で親読み取りのバランスを取ることができます。
- 型
- ブール値
- デフォルト
-
false
- rbd_localize_parent_reads
- 詳細
-
rbd_balance_parent_readsは親を読み取るためにレプリカをランダム化します。rbd_localize_parent_readsを有効にすると、ブロックデバイスは CRUSH マップを検索し、親を読み取るために最も近い OSD またはローカル OSD を検索します。 - 型
- ブール値
- デフォルト
-
true
A.6. ブロックデバイスの読み取りオプション リンクのコピーリンクがクリップボードにコピーされました!
RBD は、小規模な連続読み取りを最適化するために read-ahead/prefetching をサポートします。これは通常、仮想マシンではゲスト OS で処理する必要がありますが、ブートローダーは効率的な読み取りでは機能しない場合があります。キャッシュが無効になっている場合、先読み (read-ahead) は自動的に無効になります。
- rbd_readahead_trigger_requests
- 詳細
- read-ahead をトリガーするために必要な順次読み取り要求の数。
- 型
- 整数
- 必須
- いいえ
- デフォルト
-
10
- rbd_readahead_max_bytes
- 詳細
- read-ahead リクエストの最大サイズ。ゼロの場合は、read-ahead が無効になります。
- 型
- 64 ビット整数
- 必須
- いいえ
- デフォルト
-
512 KiB
- rbd_readahead_disable_after_bytes
- 詳細
- この多数のバイトが RBD イメージから読み取られると、閉じられるまでそのイメージの読み取りは無効にされます。これにより、ゲスト OS が起動したら、事前に読み取れることができます。ゼロの場合は、読み取り先は有効のままになります。
- 型
- 64 ビット整数
- 必須
- いいえ
- デフォルト
-
50 MiB
A.7. ブロックデバイスのブラックリストオプション リンクのコピーリンクがクリップボードにコピーされました!
- rbd_blacklist_on_break_lock
- 詳細
- ロックが破損しているクライアントをブラックリストに登録するかどうか。
- 型
- ブール値
- デフォルト
-
true
- rbd_blacklist_expire_seconds
- 詳細
- ブラックリストする秒数 (OSD のデフォルトの場合は 0 に設定)。
- 型
- 整数
- デフォルト
-
0
A.8. ブロックデバイスジャーナルオプション リンクのコピーリンクがクリップボードにコピーされました!
- rbd_journal_order
- 詳細
-
ジャーナルオブジェクトの最大サイズを計算するための移動ビット数。この値は、
12から64までになります。 - 型
- 32 ビット未署名の整数
- デフォルト
-
24
- rbd_journal_splay_width
- 詳細
- アクティブなジャーナルオブジェクトの数。
- 型
- 32 ビット未署名の整数
- デフォルト
-
4
- rbd_journal_commit_age
- 詳細
- コミットの間隔 (秒単位)。
- 型
- 倍精度浮動小数点数型
- デフォルト
-
5
- rbd_journal_object_flush_interval
- 詳細
- ジャーナルオブジェクトごとの保留中のコミットの最大数。
- 型
- 整数
- デフォルト
-
0
- rbd_journal_object_flush_bytes
- 詳細
- ジャーナルオブジェクトあたりの保留中の最大バイト数。
- 型
- 整数
- デフォルト
-
0
- rbd_journal_object_flush_age
- 詳細
- 保留中のコミットの最大間隔 (秒単位)。
- 型
- 倍精度浮動小数点数型
- デフォルト
-
0
- rbd_journal_pool
- 詳細
- ジャーナルオブジェクトのプールを指定します。
- 型
- 文字列
- デフォルト
-
""
A.9. ブロックデバイス設定の上書きオプション リンクのコピーリンクがクリップボードにコピーされました!
ブロックデバイス設定オプションは、グローバルおよびプールレベルのオプションを上書きします。ブロックデバイス設定の QoS 設定は、librbd でのみ機能し、krbd では動作しません。
グローバルレベル
利用可能なキー
rbd_qos_bps_burst- 詳細
- 希望する IO バイトのバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_bps_limit- 詳細
- 1 秒あたりの IO バイトの必要な制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_iops_burst- 詳細
- IO 操作の必要なバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_iops_limit- 詳細
- 1 秒あたりの IO 操作の必要な上限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_read_bps_burst- 詳細
- 読み取りバイトの必要なバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_read_bps_limit- 詳細
- 1 秒あたりの読み取りバイトの必要な制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_read_iops_burst- 詳細
- 読み取り操作の必要なバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_read_iops_limit- 詳細
- 1 秒あたりの読み取り操作の必要な制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_write_bps_burst- 詳細
- 書き込みバイトの必要なバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_write_bps_limit- 詳細
- 1 秒あたりの書き込みバイト数の必要な制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_write_iops_burst- 詳細
- 書き込み操作の必要なバースト制限。
- 型
- 整数
- デフォルト
-
0
rbd_qos_write_iops_limit- 詳細
- 1 秒あたりの書き込み操作のバースト制限を指定します。
- 型
- 整数
- デフォルト
-
0
上記のキーは以下に使用できます。
rbd config global set CONFIG_ENTITY KEY VALUE- 詳細
- グローバルレベルの設定の上書きを設定します。
rbd config global get CONFIG_ENTITY KEY- 詳細
- グローバルレベルの設定の上書きを取得します。
rbd config global list CONFIG_ENTITY- 詳細
- グローバルレベルの設定の上書きを一覧表示します。
rbd config global remove CONFIG_ENTITY KEY- 詳細
- グローバルレベルの設定の上書きを削除します。
プールレベル
rbd config pool set POOL_NAME KEY VALUE- 詳細
- プールレベルの設定の上書きを設定します。
rbd config pool get POOL_NAME KEY- 詳細
- プールレベルの設定の上書きを取得します。
rbd 設定プール一覧 POOL_NAME- 詳細
- プールレベルの設定のオーバーライドを一覧表示します。
rbd config pool remove POOL_NAME KEY- 詳細
- プールレベルの設定の上書きを削除します。
CONFIG_ENTITY はグローバル、クライアント ID、またはクライアント ID です。KEY は設定キーです。VALUE は設定値です。POOL_NAME はプールの名前です。
付録B iSCSI ゲートウェイ変数 リンクのコピーリンクがクリップボードにコピーされました!
iSCSI ゲートウェイの一般変数
seed_monitor- 目的
-
それぞれの iSCSI ゲートウェイは、RADOS および RBD 呼び出し用に Ceph Storage クラスターにアクセスする必要があります。これは、iSCSI ゲートウェイに適切な
/etc/ceph/ディレクトリーが定義されている必要があることを意味します。seed_monitorホストは、iSCSI ゲートウェイの/etc/ceph/ディレクトリーにデータを投入するために使用されます。
gateway_keyring- 目的
- カスタムキーリング名を定義します。
perform_system_checks- 目的
-
これは、各 iSCSI ゲートウェイのマルチパスおよび LVM 設定を確認するブール値です。
multipathdデーモンと LVM が適切に設定されていることを確認するには、少なくとも最初の実行にtrueに設定する必要があります。
iSCSI ゲートウェイ RBD-TARGET-API 変数
api_user- 目的
-
API のユーザー名。デフォルトは
adminです。
api_password- 目的
-
API を使用するためのパスワード。デフォルトは
adminです。
api_port- 目的
-
API を使用する TCP ポート番号。デフォルトは
5000です。
api_secure- 目的
-
値は
trueまたはfalseです。デフォルトはfalseです。
loop_delay- 目的
-
iSCSI 管理オブジェクトをポーリングする時のスリープの間隔を秒単位で制御します。デフォルト値は
1です。
trusted_ip_list- 目的
- API にアクセスできる IPv4 アドレスまたは IPv6 アドレスの一覧。デフォルトでは、iSCSI ゲートウェイノードだけがアクセスできます。