DRBDSETUP(8) | System Administration | DRBDSETUP(8) |
NAME¶
drbdsetup - DRBD カーネルモジュールを構成する
SYNOPSIS¶
drbdsetup command {argument...} [option...]
DESCRIPTION¶
drbdsetup ユーティリティは、DRBD カーネルモジュールを構成し、また現在の構成を表示する。ユーザは通常、 drbdsetup でなく、DRBD に対してより高度なインタフェースを提供する drbdadm ユーティリティを通して使用する。(drbdadm が drbdsetup をどのように使うかを表示するには drbdadm の --dry-run オプションを使用する。)
一部のオプション引数には、素の数値が指定されたときに適用されるデフォルトのスケールがある(たとえば、Kilo は数値の1024倍)。このようなデフォルトのスケールは、接尾辞を使用して上書きすることができる。(メガの場合は M)。共通の接尾語 K = 2^10 = 1024, M = 1024 K, G = 1024 M はサポートされている。
COMMANDS¶
drbdsetup attach minor lower_dev
meta_data_dev meta_data_index,
drbdsetup disk-options minor
複製されたデバイスをその minor 番号で指定する。lower_devは、下位レベルデバイスの名前である。meta_data_dev は、メタデータを含むデバイスの名前であり、 lower_dev と同じにできる。meta_data_index は、数値のメタデータインデックス、内部メタデータ用のキーワード internal 、または可変サイズの外部メタデータ用のキーワード flexible のどれかである。利用可能なオプション:
--al-extents extents
アクティビティーログはメタデータに書き込まれるが、失敗したノードのリカバリー時にはログ全体を再同期化する必要がある。アクティビティログのサイズは、再同期にかかる時間やクラッシュ後に複製されるディスクが整合状態になる時間に影響を与える。
アクティビティログは、4メガバイトのセグメントから構成される。その al-extents パラメータは、同時にアクティブにできるセグメントの数を決定する。al-extents のデフォルト値は 1237、 最小値は 7、 最大値は 65536 である。
有効な最大値はもっと小さくなる点に注意が必要であり、メタデータのデバイスの作成方法によっても異なる。次のマニュアルページを参照、drbdmeta(8)。有効な最大値は 919 * (使用できる オンディスクのアクティビティログのリングバッファ領域 /4KB -1) である。リングバッファはデフォルトで 32KB で、有効な最大値は 6433 である (データは 25GiB 以上カバーしている)。下位デバイスの量とレプリケーションリンク全体が 5 分以内で再同期できるようにすることを推奨する。
--al-updates {yes | no}
--disk-barrier,
--disk-flushes,
--disk-drain
disk-barrier
ディスクバリアをサポートしていないシステムで、このオプションを有効にするとデータが消失または破損する可能性がある。DRBD 8.4.1 までは、下位デバイスがバリアをサポートする場合 disk-barrier が有効でした。しかし、linux-2.6.36 (または RHEL6 の 2.6.32) 以降のカーネルでは、バリアがサポートされているかどうかを検出できなくなりました。drbd-8.4.2 以降、このオプションはデフォルトでは無効であり、使用する場合は明示的に有効にする必要がある。
disk-flushes
disk-drain
これらの3つの方法から、DRBD は設定が有効で、下位デバイスもサポートしている最初のものを使用する。これらの3つのオプションがすべて無効になっている場合、DRBD は依存関係を気にせずに書き込みリクエストを送信する。下位デバイスによって、書き込みリクエストを並べ替えることができ、異なるクラスタノード上で異なる順序で書き込みリクエストを送信できる。これは、データの損失または破損の原因となる。したがって、書き込み順序を制御する 3 つの方法をすべて無効にしないことを推奨する。
書込み順序を設定する一般的なガイドラインは、揮発性書込みキャッシュを備えた通常のディスク(または通常のディスクアレイ)を使用する場合は、disk-barrier または disk-flushes を使用することである。キャッシュを持たないストレージまたはバッテリバックアップのライトキャッシュでは、 disk-drain が適している。
--disk-timeout
このオプションは カーネルパニックを引き起こす可能性があり、注意が必要である。
リクエストの「中断」あるいはディスクの強制切り離しは、完全に下位デバイスをブロックまたはハンギングして、リクエストをまったく処理せずエラーも処理しなくなる。この状況ではハードリセットとフェイルオーバ以外になす術がない。
「中断」すると、基本的にローカルエラーの完了を装い、すみやかにサービスの移行を行うことで安全な切り替えを行う。それでもなお、影響を受けるノードは "すぐ" に再起動される必要はある。
リクエストを完了することで、上位レイヤーに関連するデータページを再利用させることができる。
後にローカルの下位デバイスが「復帰」すると、ディスクから元のリクエストページへの DMA のデータは、うまくいくと未使用のページへランダムなデータを送るが、多くの場合その間に関係のないデータに変形してしまい、様々なダメージの原因になる。
つまり遅延した正常な完了は、特に読み込みリクエストの場合 panic() の原因になる。遅延した「エラー」完了は、その都度に通知は行うが、問題ないと考えてよい。
disk-timeout のデフォルト値は 0 であり、無限のタイムアウトを意味する。タイムアウトは 0.1 秒単位で指定する。このオプションは DRBD 8.3.12. から有効である。
--md-flushes
--on-io-error handler
pass_on
call-local-io-error
detach
--read-balancing policy
このオプションは、DRBD 8.4.1 から有効である。
Note: the when-congested-remote option has no effect on Linux kernel 5.18 or above. It is deprecated starting from DRBD 9.1.12.
resync-after minor
--size size
--discard-zeroes-if-aligned {yes | no}
異なるノードで DRBD が discard 特性が異なるデバイスによって構成されている場合、discard はデータの不一致(古いデータまたはゴミが 1 つのバックエンドに残り、別のバックエンドではゼロが残る)の原因となる。オンライン照合は、数多くの偽の差異を報告する可能性がある。たぶんほとんどのユースケース (ファイルシステム上の fstrim) では無害であるが、DRBD はそれを持つことはできない。
安全に動作させるには、ローカルのバックエンド(プライマリ上)が "discard_zeroes_data=true" をサポートしていない場合、 discard のサポートを無効にする必要がある。受信側(セカンダリ)がマップされていなかった領域を割り当て、 "discard_zeroes_data = true" をサポートしていない場合、受信側で discard を明示的にゼロに変換する必要がある。
discard をサポートしているのに、discard_zeroes_data = false をアナウンスするデバイス(特に LVM/DM シンプロビジョニング)がある。DM-thin の場合、チャンクサイズに合わせた discard はマップされず、マッピングされていないセクタからの読み込みはゼロを返す。ただし、discard リクエストのアライメントされていない部分ヘッドまたはテール領域は暗黙に無視する。
整列したフル・チャンクの discard をパスし、これらの整列していない部分領域を明示的にゼロ・アウトするヘルパーを追加すると、そのようなデバイスでは discard_zeroes_data = true を効果的に達成する。
discard-zeroes-if-aligned を yes に設定すると、 discard_zeroes_data = false を通知するバックエンドであっても DRBD は discard を使用し、 discard_zeroes_data = true を通知する。
discard-zeroes-if-aligned を no に設定すると、それぞれのバックエンドが discard_zeroes_data = false をアナウンスする場合、DRBD は常に受信側でゼロアウトにフォールバックし、プライマリ側では discard に関して通知しない。
私たちは、 discard_zeroes_data 設定を完全に無視していました。確立し、期待された動作を壊さず、シンプロビジョニング LV の fstrim がスペースを解放する代わりにスペースを使い果たさないためのデフォルト値は yes である。
このオプションは 8.4.7 から有効である。
--disable-write-same {yes | no}
disable-write-same を yes に設定すると、WRITE_SAME サポートが手動で無効にできる。
disable-write-same のデフォルト値は no である。このオプションは 8.4.7 から有効である。
--rs-discard-granularity byte
この値は、下位ブロックデバイスの discard 粒度によって制約される。 rs-discard-granularity が下位ブロックデバイスの discard 粒度の乗数でない場合、DRBD はそれを切り上げる。この機能は、下位ブロックデバイスが discard コマンドの後に、ゼロを読み戻す場合にのみアクティブになる。
The usage of rs-discard-granularity may cause c-max-rate to be exceeded. In particular, the resync rate may reach 10x the value of rs-discard-granularity per second.
デフォルト値は 0 である。このオプションは 8.4.7 から有効である。
drbdsetup peer-device-options resource peer_node_id volume
--c-delay-target delay_target,
--c-fill-target fill_target,
--c-max-rate max_rate,
--c-plan-ahead plan_time
c-plan-ahead パラメーターは DRBD が再同期速度の変化にどのくらい速く適応するかを定義する。ネットワークの往復時間の 5 倍以上に設定する必要がある。 c-plan-ahead のデフォルト値は 20 で 0.1 秒単位で設定する。
c-fill-target パラメーターはどのくらいの量の再同期データを DRBD 実行中に常に持つかを定義する。通常のデータパスの一般的な値は 4K から 100K である。 c-fill-target のデフォルト値は 100 で単位はセクターである。
c-delay-target パラメータは DRBD が目指すべき再同期パスの遅延を定義する。これはネットワークの往復時間の 5 倍以上に設定する必要がある。 c-delay-target のデフォルト値は 10 で、0.1 秒単位である。
c-max-rate パラメーターは、動的に制御される再同期で使用される最大帯域幅を制限する。これをゼロに設定すると、制限がなくなる(DRBD 9.0.28 以降)。DRBD ホストと DRBD プロキシをホストするマシン間で利用可能な帯域幅、または利用可能なディスク帯域幅のいずれかに設定する。 c-max-rate のデフォルト値は 102400 で、単位は KiB/s である。
動的な再同期速度制御は DRBD 8.3.9 から有効である。
--c-min-rate min_rate
c-min-rate の値 0 は、再同期の書き込みに使用できる帯域幅に制限がないことを意味する。これにより、アプリケーションの書き込みが大幅に遅くなる可能性がある。再同期速度の最低値は 1(1 KiB/s) である。
c-min-rate のデフォルト値は 250 で、単位は KiB/s である。
--resync-rate rate
drbdsetup check-resize minor
drbdsetup new-peer resource peer_node_id,
drbdsetup net-options resource peer_node_id
--after-sb-0pri policy
disconnect
discard-younger-primary,
discard-older-primary
discard-zero-changes
discard-least-changes
discard-node-nodename
--after-sb-1pri policy
disconnect
consensus
violently-as0p
discard-secondary
call-pri-lost-after-sb
--after-sb-2pri policy
disconnect
violently-as0p
call-pri-lost-after-sb
--allow-two-primaries
いくつかのシナリオでは、2 つのノードを一度にプライマリにしたい場合がある。 DRBD 以外のメカニズムで、共有され複製されたデバイスへの書き込みが調整される方法を使用する必要がある。これは、OCFS2 や GFS などの共有ストレージクラスタファイルシステム、または仮想マシンイメージと仮想マシンを物理マシン間で移動できる仮想マシンマネージャを使用して実行できる。
allow-two-primaries は、2つのノードを同時にプライマリにすることを DRBD に指示する。非分散ファイルシステムを使用する場合は、このオプションを有効にしてはならない。データ破損とノードクラッシュが発生する。
--always-asbp
このオプションを指定すると、両ノードのデータに関連性があるとして、スプリットブレイン発生後のポリシーが適用される。UUID の分析により 3 番目のノードの存在が疑われる場合には、フル同期が行われることがある。(または、なんらかの別の原因によって間違った UUID セットで判断してしまった場合)
--connect-int time
--cram-hmac-alg hash-algorithm
--csums-alg hash-algorithm
csums-alg アルゴリズムが指定されている場合、同期ターゲットは、非同期データの要求と、現在持っているデータのハッシュ値も送信する。同期ソースは、このハッシュ値とそれ自身のバージョンのデータを比較する。ハッシュ値が異なる場合、新しいデータを同期ターゲットに送信し、そうでない場合はデータが同じであることを通知する。これにより、必要なネットワーク帯域幅が削減されるが、CPU 使用率が高くなり、同期ターゲットの I/O が増加する可能性がある。
csums-alg は、カーネルによってサポートされている安全なハッシュアルゴリズムの 1 つに設定できる。 /proc/crypto にリストされている shash アルゴリズムを参照。デフォルトでは、 csums-alg 設定されていない。
--csums-after-crash-only
ほとんどの場合、再同期が必要であるとマークされたブロックは実際に変更されているため、チェックサムの計算、および再同期ターゲット上のブロックの読み書きはすべてオーバーヘッドである。
チェックサムベースの再同期の利点は、大部分がプライマリのクラッシュリカバリの後である。リカバリでは、アクティビティログでカバーされるより大きな領域が再同期が必要なものとしてマークされている。8.4.5 から導入された。
--data-integrity-alg alg
data-integrity-alg は、カーネルによってサポートされている安全なハッシュアルゴリズムの 1 つに設定できる。 /proc/crypto にリストされている shash アルゴリズムを参照。デフォルトでは、このメカニズムは無効である。
CPU のオーバーヘッドが発生するため、本番環境でこのオプションを使用しないことを推奨する。また、「データ整合性に関する注意」も参照。
--fencing fencing_policy
dont-care
resource-only
resource-and-stonith
--ko-count number
--max-buffers number
--max-epoch-size number
--on-congestion policy,
--congestion-fill threshold,
--congestion-extents threshold
DRBD を DRBD-proxy と一緒に使用する場合は、 送信キューがいっぱいになる前に DRBD を AHEAD/BEAIND モードに切り替える pull-ahead on-congestion ポリシーといっしょに使用することが望ましい。DRBD は、自身と対向ノードとの間の違いをビットマップに記録するが、もはや対向ノードに複製はしない。十分なバッファスペースが再び利用可能になると、ノードは対向ノードと同期を再開し、通常の複製に戻る。
これには、キューがいっぱいになってもアプリケーションの I/O をブロックしないという利点があるが、対向ノードの同期が大幅に遅れるという欠点もある。また、再同期している間、対向ノードは inconsistent(不整合) になる。
利用可能な congestion ポリシーは block (デフォルト), pull-ahead である。congestion-fill は、この接続で動作中に許可されているデータ量を定義する。デフォルト値は 0 で、この輻輳制御のメカニズムを無効にする(最大 10 ギガバイト)。congestion-extents は、 AHEAD/BEAIND モードに切り替える前にアクティブにできるビットマップエクステントの数を定義する。 al-extents と同じデフォルトと制限をもつ。congestion-extents は、 al-extents より小さい値に設定した場合のみ有効である。
AHEAD/BEHIND モードは DRBD 8.3.10 から有効である。
--ping-int interval
--ping-timeout timeout
--socket-check-timeout timeout
このような場合、socket-check-timeout に DRBD と DRBD-Proxy 間の round trip time(RTT) を設定するとよい。たいていの場合 1 である。
デフォルトの単位は 10 分の 1 秒である。デフォルト値は 0 で socket-check-timeout 値の代わりに ping-timeout 値を使用する。8.4.5 から導入された。
--protocol name
A
B
C
--rcvbuf-size size
--rr-conflict policy
disconnect
retry-connect
violently
call-pri-lost
auto-discard
--shared-secret secret
--sndbuf-size size
--tcp-cork
--timeout time
--use-rle
非常に大きなデバイスのビットマップは比較的大きいが、通常、ランレングス符号化を使用して非常にうまく圧縮される。これにより、ビットマップ転送の時間と帯域幅を節約できる。
use-rle は run-length エンコーディングを使用するかどうかを指定する。DRBD 8.4.0 以降デフォルトで有効である。
--verify-alg hash-algorithm
低負荷の期間(例えば、月に1回)で定期的にオンライン照合をスケジュールすることを推奨する。また、「データ整合性に関する注意」も参照。
drbdsetup new-path resource peer_node_id local-addr remote-addr
drbdsetup connect resource peer_node_id
--tentative
--discard-my-data
drbdsetup del-peer resource peer_node_id
drbdsetup del-path resource peer_node_id local-addr remote-addr
drbdsetup cstate resource peer_node_id
drbdsetup del-minor minor
drbdsetup del-resource resource
drbdsetup detach minor
--force,
--diskless
drbdsetup disconnect resource peer_node_id
drbdsetup down {resource | all}
drbdsetup dstate minor
drbdsetup events2 {resource | all}
出力形式は、機械だけでなく人も読める形式である。各行は、イベントの種類を示す単語で始まる: exists は既存オブジェクトの場合; create, destroy, change はオブジェクトが作成、破棄、変更された場合; call, response はイベントハンドラが呼び出された、戻った場合、rename はオブジェクトの名前が変更された場合。2 番目の単語は、イベントが適用されるオブジェクトを示す: resource, device, connection, peer-device, helper, 現在の状態が完全にダンプされたことを示すための dash (-) 。
残りの単語はオブジェクトを識別し、オブジェクトが入っている状態を記述する。いくつかの特別なキーは言及する価値がある:
resource may_promote:{yes|no}
resource promotion_score:score
利用可能なオプション:
--now
--poll
--now オプションがない場合は、出力を継続する。n キーごとに現在の状態がフェッチされるが、変更されたオブジェクトのみが出力される。これは、統計が変更された場合にのみしか DRBD が更新を送信しないため、--statistics または --full とともに使用すると便利である。
--now オプションとともに使用されると、完全な状態が n キーごとに出力される。その他の変更は出力されない。
--statistics
--diff
--full
--timestamps
--color={always | auto | never}
drbdsetup get-gi resource peer_node_id volume
出力は、現在の UUID、ビットマップ UUID、および最初の2つの履歴 UUID で構成され、一連のフラグが続く。現在の UUID と履歴 UUID はデバイス固有である。ビットマップ UUID およびフラグは、対向ノードのデバイス固有である。このコマンドは、最初の2つの履歴 UUID のみを表示する。内部的には、DRBD は各対向ノードのデバイスの履歴 UUID を1つ保持する。
drbdsetup invalidate minor
利用可能なオプション:
--reset-bitmap=no
--reset-bitmap オプションは、DRBD カーネルドライバー 9.0.29 および drbd-utils9.17 以降で使用できる。
--sync-from-peer-node-id
drbdsetup invalidate-remote resource peer_node_id volume
利用可能なオプション:
--reset-bitmap=no
--reset-bitmap オプションは、DRBD カーネルドライバー 9.0.29 および drbd-utils9.17 以降で使用できる。
drbdsetup new-current-uuid minor
利用可能なオプション:
--force-resync
--clear-bitmap
Both operations require a "Just Created" meta data. Here is the complete sequence step by step how to skip the initial resync:
drbdadm create-md --force res/volume-number
drbdadm up res
drbdadm --clear-bitmap new-current-uuid res
drbdadm primary res
mkfs -t fs-type $(drbdadm sh-dev res/vol)
この方法の明らかな欠点は、別の方法でディスク内容を同一にしない限り、複製物全体に古いゴミのデータが残ることである。このため、オンライン照合は多数の非同期ブロックを見出してしまう。
この方法は、すでにデータのあるディスクに適用してはならない! 最初は動作しているように見えても、ノードの切り替えを行うとデータが壊れてしまい二度と使えなくなる。そのため、mkfs を省略してはならない (またはそれに相当する操作)。
Bootstraping a single node cluster
必要なステップは以下のとおり:
このディスクをセカンダリのノードに挿入してクラスタに参加させる。ステップ 1 での drbdsetup の実行以降に変更した箇所の再同期が行われる。
drbdsetup new-minor resource minor volume
--block-size size
DRBD needs to combine these block sizes of the backing disks. In clusters with storage devices with different block sizes, it is necessary to configure the maximal block sizes on the DRBD level. Here is an example highlighting the need.
Let's say node A is diskless. It connects to node B, which has a physical block size of 512 bytes. Then the user mounts the filesystem on node A; the filesystem recognizes that it can do I/O in units of 512 bytes. Later, node C joins the cluster with a physical block size of 4096 bytes. Now, suddenly DRBD starts to deliver I/O errors to the filesystem if it chooses to do I/O on, e.g., 512 or 1024 bytes.
The default value of block-size 512 bytes. This option is available since drbd-utils 9.24 and the drbd kernel driver 9.1.14 and 9.2.3.
drbdsetup new-resource resource node_id,
drbdsetup resource-options resource
--auto-promote bool-value
DRBD 9 より前は、これを明示的に行う必要があった( "drbdadm primary")。DRBD 9 以降、 auto-promote を使用すると、デバイスの 1 つが書き込み用にマウントまたはオープンされるときに、リソースをプライマリに自動的に昇格させることができる。すべてのデバイスがアンマウントされるか、オープンしているユーザがいなくなると、すぐにリソースの役割がセカンダリになる。
自動プロモーションは、クラスタの状態が許可する場合にのみ成功する(つまり、明示的な drbdadm primary コマンドが成功するなら)。それ以外の場合は、DRBD 9 より前と同様にデバイスのマウントまたはオープンが失敗する: mount(2) システムコールは、 errno を EROFS(読み取り専用ファイルシステム) に設定して失敗する。open(2) システムコールは、 errno を EMEDIUMTYPE(メディアタイプが間違っている) に設定してが失敗する。
auto-promote の設定に関係なく、デバイスが明示的に昇格された場合 (drbdadm primary)、明示的に降格する必要がある(drbdadm secondary)。
auto-promote は DRBD 9.0.0 から有効で、デフォルトは yes である。
--auto-promote-timeout 1/10-of-seconds
auto-promote-timeout is specified in units of 0.1 seconds. Its default value is 20 (2 seconds), its minimum value is 0, and its maximum value is 600 (=one minute).
--cpu-mask cpu-mask
--max-io-depth value
max-io-depth has a default value of 8000, its minimum value is 4, and its maximum value is 2^32.
--on-no-data-accessible policy
io-error
suspend-io
この設定は、DRBD 8.3.9 から有効である。デフォルトのポリシーは io-error である。
--on-no-quorum {io-error | suspend-io}
通常、on-no-data-accessible は on-no-quorum と同じ値に設定する。
on-no-quorum オプションは、DRBD カーネルドライバのバージョン 9.0.8 から有効である。
--on-suspended-primary-outdated {disconnect | force-secondary}
When it is set to force-secondary then it will demote to secondary immediately, and fail all pending (and new) IO requests with IO errors. It will refuse to allow any process to open the DRBD devices until all openers closed the device. This state is visible in status and events2 under the name force-io-failures.
The disconnect setting simply causes that node to reject connect attempts and stay isolated.
The on-suspended-primary-outdated option is available starting with the DRBD kernel driver version 9.1.7. It has a default value of disconnect.
--peer-ack-delay expiry-time
このパラメータは、リモートノードの再同期動作に影響を与える可能性がある。対向ノードは、 AL-extent のロックを解除する peer-ack を受信するまで待つ必要がある。対向ノード間の再同期操作は、これらのロックを待つ必要がある。
peer-ack-delay のデフォルト値は、100 ミリ秒であり、単位はミリ秒である。このオプションは 9.0.0 から有効である。
--peer-ack-window value
ノードが書き込みリクエストを受け取ると、書き込みノードのビットマップを更新する方法はわかるが、ノード間のビットマップを更新する方法はわからない。この例では、書き込みリクエストがノード A から B および C に伝搬するとき、ノード B および C はノード A と同じデータを有するが、両方が同じデータを有するか不明である。
是正措置として、書き込みノードは、時には、相手との間にどのような状態があるかを示すピアツーピアパケットを対向ノードに送信する。
peer-ack-window は、peer-ack パケットを送信する前に、プライマリノードが送信するデータ量を指定する。値が小さいとネットワークトラフィックが増加する。値が大きいとネットワークトラフィックは減少するが、セカンダリノードのメモリ消費量が大きくなり、プライマリノードの障害後に、セカンダリノード間の再同期時間が長くなる。(注:peer-ack パケットは、他の理由でも送信される場合がある。たとえば、メンバーシップの変更または peer-ack-delay タイマーの満了など)。
peer-ack-window のデフォルト値は、2 MiB であり、単位はセクタである。このオプションは 9.0.0 から有効である。
--quorum value
オプションの値は、 off, majority, all, または数値である。数値を設定する場合は、値がノード数の半分を超えていることを確認すること。クォーラムはデータの不一致を回避するメカニズムであり、2 つ以上の複製が存在する場合にフェンシングの代わりに使用されるときがある。デフォルトは off である。
切断されたノードがすべて outdated(無効) としてマークされている場合、パーティションのサイズに関係なく、常にクォーラムを持つ。つまり、すべてのセカンダリノードを正常に切断すると、1 つのプライマリが動作し続ける。1 つのセカンダリが切断された瞬間に、切断されたすべてのセカンダリノードがパーティションを形成すると仮定する。パーティションが他のパーティションよりも小さい場合、この時点ではクォーラムは失われる。
ディスクレスノードがクォーラムを常に取得できるようにする場合、majority, all オプションは使用しないことを推奨する。クラスタ内のディスクフルノードの完全な数を決定するための DBRD のヒューリスティックな方法は正確でないため、絶対数を指定することを推奨する。
クォーラムの実装は、DRBD カーネルドライバのバージョン 9.0.7 から有効である。
--quorum-minimum-redundancy value
オプションの値は、 off, majority, all, または数値である。数値を設定する場合は、値がノード数の半分を超えていることを確認すること。
ディスクレスノードがクォーラムを常に取得できるようにする場合、majority, all オプションは使用しないことを推奨する。クラスタ内のディスクフルノードの完全な数を決定するための DBRD のヒューリスティックな方法は正確でないため、絶対数を指定することを推奨する。
このオプションは、DRBD カーネルドライバのバージョン 9.0.10 から有効である。
--twopc-retry-timeout 1/10-of-seconds
twopc-retry-timeout has a default value of a (0.1 seconds), its minimum value is 1 (0.1 seconds), and its maximum value is 50 (5 seconds).
--twopc-timeout 1/10-of-seconds
For these cluster-wide coordinated state transitions, DRBD implements a two-phase commit protocol. If a connection breaks in phase one (prepare packet sent), the coordinator of the two-phase commit might never get the expected reply packet.
A cluster in this state can not start any new cluster-wide coordinated state transition, as the already prepared one blocks all such attempts. After twopc-timeout all nodes abort the prepared transaction and unlock the cluster again.
twopc-timeout has a default value of 300 (30 seconds), its minimum value is 50 (5 seconds), and its maximum value is 600 (one minute).
drbdsetup outdate minor
drbdsetup pause-sync resource peer_node_id volume
drbdsetup primary resource
--overwrite-data-of-peer
--force
これは、スプリットブレインにつながる可能性があることに注意すること。また、不整合なデバイスを最新のデバイスに強制的に変更する場合は、使用可能な完全性チェック(ファイルシステムチェックなど)を使用して、システムをクラッシュさせずにデバイスを使用できることを確認すること。
DRBD では、通常、クラスタ内の 1 つのノードだけがプライマリの役割を果たすことができる。 DRBD はノード間のリソース内のデバイスを調整できる。--allow-two-primaries ネットワークオプションは、これを変更する。その場合、DRBD 以外のメカニズムはデバイスアクセスを調整する必要がある。
drbdsetup resize minor
--assume-peer-has-space
--assume-clean
--size val
--al-stripes val --al-stripes val
drbdsetup resume-io minor
drbdsetup resume-sync resource peer_node_id volume
drbdsetup role resource
drbdsetup secondary resource
--force
Please note that a forced demotion returns immediately. The user should unmount any filesystem that might be mounted on the DRBD device. The device can be used again when force-io-failures has a value of no. (See drbdsetup status and drbdsetup events2).
drbdsetup show {resource | all}
--show-defaults
drbdsetup show-gi resource peer_node_id volume
drbdsetup state
drbdsetup status {resource | all}
長い行は端末の幅で折り返され、どの行に属しているかを示すためにインデントされる。利用可能なオプション:
--verbose
--statistics
--color={always | auto | never}
たとえば、1 つの接続と1 つのボリュームのみを持つリソースの出力は、次のようになる。
drbd0 role:Primary
disk:UpToDate
host2.example.com role:Secondary
disk:UpToDate
--verbose を使用すると, 同じリソースは次のように出力される:
drbd0 node-id:1 role:Primary suspended:no
volume:0 minor:1 disk:UpToDate blocked:no
host2.example.com local:ipv4:192.168.123.4:7788
peer:ipv4:192.168.123.2:7788 node-id:0 connection:WFReportParams
role:Secondary congested:no
volume:0 replication:Connected disk:UpToDate resync-suspended:no
drbdsetup suspend-io minor
drbdsetup verify resource peer_node_id volume
オンライン照合では、ローカルと対向ノードの各ディスクブロックを比較する。ノード間で異なるブロックは非同期としてマークされるが、 自動的に同期化されない。それらを同期させるには、drbdsetup invalidate または drbdsetup invalidate-remote を --reset-bitmap=no とともに使用する。進行状況は、 drbdsetup status --statistics の出力で監視できる。利用可能なオプション:
--start position
ディスク上の位置は、デフォルトでディスクセクタ(512バイト)で指定される。
--stop position
ディスク上の位置は、デフォルトでディスクセクタ(512バイト)で指定される。
また、'notes' のデータの完全性に関する注意を参照。drbd.conf(5) manual page.
drbdsetup wait-connect-volume resource
peer_node_id volume,
drbdsetup wait-connect-connection resource peer_node_id,
drbdsetup wait-connect-resource resource,
drbdsetup wait-sync-volume resource peer_node_id
volume,
drbdsetup wait-sync-connection resource peer_node_id,
drbdsetup wait-sync-resource resource
タイムアウトは秒単位で指定する。デフォルト値は 0 であり、無限のタイムアウトを意味する。wfc-timeout パラーメータも参照。
--outdated-wfc-timeout timeout
タイムアウトは秒単位で指定する。デフォルト値は 0 であり、無限のタイムアウトを意味する。wfc-timeout パラーメータも参照。
--wait-after-sb
--wfc-timeout timeout
drbdsetup forget-peer resource peer_node_id
このコマンドを使用するには、接続を解除する必要がある。対向ノードが後で再接続する場合、ビットマップベースの再同期は完全同期に変わる。
drbdsetup rename-resource resource new_name
新しい名前をユーザーに通知するために、events2 ストリームで rename イベントが発行される。
EXAMPLES¶
詳しくは DRBD User's Guide[1] を参照。
VERSION¶
このドキュメントは DRBD バージョン 9.0.0 向けに改訂されている。
AUTHOR¶
Written by Philipp Reisner <philipp.reisner@linbit.com> and Lars Ellenberg <lars.ellenberg@linbit.com>.
REPORTING BUGS¶
Report bugs to <drbd-user@lists.linbit.com>.
COPYRIGHT¶
Copyright 2001-2018 LINBIT Information Technologies, Philipp Reisner, Lars Ellenberg. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO¶
drbd.conf(5), drbd(8), drbdadm(8), DRBD User's Guide[1], DRBD Web Site[2]
NOTES¶
- 1.
- DRBD User's Guide
- 2.
- DRBD Web Site
17 January 2018 | DRBD 9.0.x |