第6章 一般的な管理作業

目次

DRBD の状態のチェック
drbd-overviewで状態を取得する
/proc/drbdの状態情報
接続状態
リソースのロール
ディスク状態
リソースの有効化と無効化
リソースを有効にする
リソースを無効にする
リソースの再構成
リソースの昇格と降格
デュアルプライマリモードを有効にする
オンラインデバイス照合の使用
オンライン照合を有効にする
オンライン照合を実行する
自動オンライン照合
同期速度の設定
syncerの永続的な速度設定
syncerの一時的な速度変更
I/O エラー処理方針の設定
リソースのサイズ変更
オンラインで拡張する
オフラインで拡張する
オンラインで縮小する
オフラインで縮小する
下位デバイスのフラッシュを無効にする
スプリットブレイン時の動作の設定
スプリットブレインの通知
スプリットブレインからの自動復旧ポリシー
3ノードセットアップの作成
デバイススタックの検討事項
スタックリソースの設定
スタックリソースを有効にする
DRBD Proxyの使用
DRBD Proxy配備に関する検討事項
構成
DRBD Proxyの制御

この章では、日常的な運用において必要な一般的な管理作業について説明します。 トラブルシューティング作業については取り上げません。 これについては、7章トラブルシューティングとエラーからの回復を参照してください。

DRBD の状態のチェック

drbd-overviewで状態を取得する

DRBDの状態は、 drbd-overviewユーティリティで簡単に確認できます。 これは DRBD 8.0.15および8.3.0以降で使用できます。 8.3.0では drbd-overview.pl としてインストールされます。

drbd-overview
  0:home                 Connected Primary/Secondary   UpToDate/UpToDate C r--- /home        xfs  200G 158G 43G  79%
  1:data                 Connected Primary/Secondary   UpToDate/UpToDate C r--- /mnt/ha1     ext3 9.9G 618M 8.8G 7%
  2:nfs-root             Connected Primary/Secondary   UpToDate/UpToDate C r--- /mnt/netboot ext3 79G  57G  19G  76%

/proc/drbdの状態情報

/proc/drbd は、 現在構成されているすべてのDRBDリソースに関する状態情報を リアルタイムに表示する仮想ファイルです。 次のコマンドでこのファイルの内容を確認できます。

cat /proc/drbd
version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by buildsystem@linbit, 2008-12-18 16:02:26
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r---
    ns:0 nr:8 dw:8 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
 1: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r---
    ns:0 nr:12 dw:12 dr:0 al:0 bm:1 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
 2: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r---
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

先頭にversion:と記述された最初の行は、 システムで使用されているDRBDのバージョンを示します。 2行目にはこのビルドに関する情報が記述されています。

この例の他の4行は、 構成されている各DRBDデバイスについて繰り返されるブロックで、 先頭にデバイスのマイナー番号が付いています。 この場合、0はデバイス/dev/drbd0に対応します。

/proc/drbdのデバイス固有の出力には、 リソースについてのさまざまな情報が表示されます。

  • cs (接続状態). ネットワーク接続の状態。 接続状態の種類や詳細については、 「接続状態」を参照してください。

  • ro (ロール). ノードのロール。 最初にローカルノードのロールが表示され、 スラッシュの後に対向ノードのロールが表示されます。 リソースロールの詳細は、 「リソースのロール」を参照してください。

    [注意]注意

    DRBD 8.2以前のバージョンでは、 /proc/drbdでリソースロールを表示するために、 st フィールド(あいまいな用語「state」 にもとづく)が 使用されていました。

  • ds (ディスク状態). ハードディスクの状態。 スラッシュの前にローカルノードの状態、 スラッシュの後に対向ノードのハードディスクの状態が表示されます。 さまざまなディスク状態については、 「ディスク状態」を参照してください。

  • ns (ネットワーク送信).  ネットワーク接続を介して対向ノードに送信された 正味データの量(単位はKibyte)。

  • nr (ネットワーク受信).  ネットワーク接続を介して対向ノードが受信した 正味データの量(単位はKibyte)。

  • dw (ディスク書き込み). ローカルハードディスクに書き込まれた 正味データ(単位はKibyte)。

  • dr (ディスク読み取り). ローカルハードディスクから読み取った 正味データ(単位はKibyte)。

  • al (アクティビティログ). メタデータのアクティビティログ領域の更新の数。

  • bm (ビットマップ). メタデータのビットマップ領域の更新の数。

  • lo (ローカルカウント). DRBDが発行したローカルI/Oサブシステムに対するオープン要求の数。

  • pe (保留). 対向ノードに送信されたが、対向ノードから応答がない要求の数。

  • ua (未確認). ネットワーク接続を介して対向ノードが受信したが、応答がない要求の数。

  • ap (アプリケーション保留). DRBDに転送されたが、DRBDが応答していないブロックI/O要求の数。

  • ep (エポック). エポックオブジェクトの数。 通常は 1。 barrierまたはnone 書き込み順序付けメソッドを使用する場合は、 I/O負荷により増加する可能性があります。 8.2.7以降。

  • wo (書き込み順序付け). 現在使用されている書き込み順序付けメソッド。 b (バリア)、f (フラッシュ)、 d (ドレイン)またはn (なし)。 8.2.7 以降。

  • oos (非同期). 現在、同期していないストレージの量(単位は Kibibyte)。 8.2.6 以降。

接続状態

リソースの接続状態を確認するには、/proc/drbdを監視するか、 drbdadm cstateコマンドを実行します。

drbdadm cstate resource
Connected

リソースの接続状態には次のようなものがあります。

  • StandAloneネットワーク構成は使用できません。 リソースがまだ接続されていない、 管理上の理由で切断されている(drbdadm disconnectを使用)、 認証の失敗またはスプリットブレインにより接続が解除された、 のいずれかが考えられます。

  • Disconnecting切断中の一時的な状態です。次の状態はStandAloneです。

  • Unconnected接続を試行する前の一時的な状態です。 次に考えられる状態は、WFConnectionおよびWFReportParamsです。

  • Timeout対向ノードとの通信のタイムアウト後の一時的な状態です。 次の状態はUnconnectedです。

  • BrokenPipe対向ノードとの接続が失われた後の一時的な状態です。 次の状態はUnconnectedです。

  • NetworkFailure対向ノードとの接続が失われた後の一時的な状態です。 次の状態はUnconnectedです。

  • ProtocolError対向ノードとの接続が失われた後の一時的な状態です。 次の状態はUnconnectedです。

  • TearDown一時的な状態です。対向ノードが接続を閉じました。 次の状態はUnconnectedです。

  • WFConnection対向ノードノードがネットワーク上で可視になるまでノードが待機します。

  • WFReportParamsTCP (伝送制御プロトコル)接続が確立され、 ノードが対向ノードからの最初のネットワークパケットを待っています。

  • ConnectedDRBDの接続が確立され、データミラー化がアクティブになっています。 これが正常な状態です。

  • StartingSyncS管理者が開始するフル同期が開始しました。 次に考えられる状態はSyncSourceまたはPausedSyncSです。

  • StartingSyncT管理者が開始するフル同期が開始しました。 次の状態はWFSyncUUIDです。

  • WFBitMapS部分同期を開始しました。 次に考えられる状態はSyncSourceまたはPausedSyncSです。

  • WFBitMapT部分同期を開始しました。 次に考えられる状態はWFSyncUUIDです。

  • WFSyncUUIDすぐに同期を開始します。 次に考えられる状態はSyncTargetまたはPausedSyncTです。

  • SyncSource現在、ローカルノードを同期元にして同期を実行中です。

  • SyncTarget現在、ローカルノードを同期先にして同期を実行中です。

  • PausedSyncSローカルノードが進行中の同期の同期元ですが、 現在は同期が一時停止しています。 原因として、別の同期プロセスの完了との依存関係、 またはdrbdadm pause-syncを使用して 手動で同期が中断されたことが考えられます。

  • PausedSyncTローカルノードが進行中の同期の同期先ですが、 現在は同期が一時停止しています。 原因として、別の同期プロセスの完了との依存関係、 またはdrbdadm pause-syncを使用して 手動で同期が中断されたことが考えられます。

  • VerifyS現在、ローカルノードを照合元にして、 オンラインデバイスの照合を実行中です。

  • VerifyT現在、ローカルノードを照合先にして、 オンラインデバイスの照合を実行中です。

リソースのロール

リソースのロールを確認するには、 /proc/drbdを監視するか、 drbdadm roleコマンドを実行します。


drbdadm role resource
Primary/Secondary

常にローカルリソースロールが最初に表示され、 リモートリソースロールが最後に表示されます。

[注意]注意

DRBD 8.2以前のバージョンでは、 drbdadm stateコマンドで同じ情報を確認できます。 stateという用語は紛らわしいため、 バージョン8.3.0以降のDRBDではroleという用語を使用します。 drbdadm stateも使用できますが、 これは互換性を保つためです。 drbdadm roleを使用することをお勧めします。

リソースロールには次のようなものがあります。

  • Primary現在、リソースはプライマリロールで読み書き可能です。 2つのノードの一方だけがこのロールになることができます。 ただし、デュアルプライマリモードが 有効な場合は例外です。

  • Secondary現在、リソースがセカンダリロールです。 対向ノードから正常に更新を受け取ることができますが(切断モード以外の場合)、 このリソースに対して読み書きは実行できません。 1つのノードまたは両方のノードがこのロールになることができます。

  • Unknown現在、リソースのロールが不明です。 ローカルリソースロールがこの状態になることはありません。 これは、切断モードの場合にのみ、 対向ノードのリソースロールだけに表示されます。

ディスク状態

リソースのディスク状態を確認するには、 /proc/drbdを監視するか、 drbdadm dstateコマンドを実行します。


drbdadm dstate resource
UpToDate/UpToDate

常にローカルディスクの状態が最初に表示され、 リモートディスクの状態が最後に表示されます。

ローカルディスクとリモートディスクの状態には、次のようなものがあります。

  • DisklessDRBDドライバにローカルブロックデバイスが割り当てられていません。 原因として、リソースが下位デバイスに接続されなかった、 drbdadm detachを使用して手動でリソースを切り離した、 または下位レベルのI/Oエラーにより自動的に切り離されたことが考えられます。

  • Attachingメタデータ読み取り中の一時的な状態です。

  • FailedローカルブロックデバイスがI/O障害を報告した後の一時的な状態です。 次の状態はDisklessです。

  • Negotiatingすでに接続されているDRBDデバイスで接続が実行された場合の一時的状態です。

  • Inconsistentデータが一致しません。 新規リソースを作成した直後に(初期フル同期の前に)両方のノードがこの状態になります。 また、同期中には片方のノード(同期先)がこの状態になります。

  • Outdatedリソースデータは一致していますが、期限切れです。.

  • DUnknownネットワーク接続を使用できない場合に、 対向ノードディスクにこの状態が使用されます。

  • Consistent接続していない状態でノードのデータが一致しています。 接続が確立すると、データがUpToDateかOutdatedか判断されます。

  • UpToDateデータが一致していて、最新の状態です。 これが正常な状態です。