'\" t
.\" Title: drbd.conf
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 17 January 2018
.\" Manual: Configuration Files
.\" Source: DRBD 9.0.x
.\" Language: English
.\"
.TH "DRBD\&.CONF" "5" "17 January 2018" "DRBD 9.0.x" "Configuration Files"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
drbd.conf \- DRBD 構成ファイル
.SH "INTRODUCTION"
.PP
DRBD は、データをクラスタのすべてのノードに複製するブロックデバイスを実装する。実際のデータおよび関連するメタデータは、通常、各クラスタノードの「通常の」ブロックデバイスに格納される。
.PP
複製されたブロックデバイスは、 デフォルトで
\fB/dev/drbd\fR\fB\fIminor\fR\fR
で呼ばれる。それらはリソースにグループ化され、リソースごとに 1 つ以上のデバイスが含まる。リソース内のデバイス間のレプリケーションは、時間順に行われる。DRBD では、リソース内のデバイスを
\fIvolumes\fR
で参照する。
.PP
DRBD 9 では、2 つ以上のクラスタノード間でリソースを複製できる。クラスタノード間の接続はポイントツーポイントリンクであり、TCP または TCP のようなプロトコルを使用する。すべてのノードを直接接続する必要がある。
.PP
DRBD は、カーネルと相互作用し、基本的な操作を実行する低レベルのユーザー空間コンポーネント (\fBdrbdsetup\fR、
\fBdrbdmeta\fR) 、DRBD の構成を理解、処理し、それを低レベルコンポーネントの基本操作に変換する高レベルのユーザー空間コンポーネント(\fBdrbdadm\fR)、およびカーネルコンポーネントで構成される。
.PP
デフォルトの DRBD 構成は、
\fB/etc/drbd\&.conf\fR
とそこからインクルードされる追加のファイル、通常は、
\fB/etc/drbd\&.d/\fR
の
\fBglobal_common\&.conf\fR, すべての
\fB\fI*\fR\fR\fB\&.res\fR
ファイルから成り立つ。各リソースを
\fB\fI*\fR\fR\fB\&.res\fR
ファイルで別々に定義することは有用である。
.PP
構成ファイルは、各クラスタノードがクラスタ構成全体で同一のコピーを含むことができるように設計されている。各ノードのホスト名によって、構成のどの部分が適用されるかが決まる\fBuname \-n\fR)。すべてのノードのクラスタ構成を同期させておくことを推奨する。手動でノードをすべてのノードにコピーするか、
\fBcsync2\fR
または同様のツールそ使用する。
.SH "設定ファイルの例"
.PP
.if n \{\
.RS 4
.\}
.nf
global {
usage\-count yes;
udev\-always\-use\-vnr;
}
resource r0 {
net {
cram\-hmac\-alg sha1;
shared\-secret "FooFunFactory";
}
volume 0 {
device "/dev/drbd1";
disk "/dev/sda7";
meta\-disk internal;
}
on "alice" {
node\-id 0;
address 10\&.1\&.1\&.31:7000;
}
on "bob" {
node\-id 1;
address 10\&.1\&.1\&.32:7000;
}
connection {
host "alice" port 7000;
host "bob" port 7000;
net {
protocol C;
}
}
}
.fi
.if n \{\
.RE
.\}
.sp
この例では、ボリューム番号が 0 の単一の複製デバイスが含まれるリソース
\fBr0\fR
を定義する。このリソースは、ホスト
\fBalice\fR,
\fBbob\fR
間で複製され、それぞれ IPv4 アドレス
\fB10\&.1\&.1\&.31\fR,
\fB10\&.1\&.1\&.32\fR、ノード識別子 0, 1 を持つ。両方のホストで複製されたデバイスは
\fB/dev/drbd1\fR
で呼び出され、実際のデータとメタデータは下位のデバイス
\fB/dev/sda7\fR
に格納される。ホスト間の接続はプロトコル C を使用する。
.PP
Enclose strings within double\-quotation marks (") to differentiate them from resource keywords\&. Please refer to the
\m[blue]\fBDRBD User\*(Aqs Guide\fR\m[]\&\s-2\u[1]\d\s+2
for more examples\&.
.SH "FILE FORMAT"
.PP
DRBD 構成ファイルはセクションで構成され、セクションには他のセクションとパラメータが含まれる。各セクションは、1 つ以上のキーワード、場合によってはセクション名、開始ブレース(\(lq{\(rq)、セクションの内容、および閉じ括弧(\(lq}\(rq) で構成される。セクション内のパラメータは、キーワード、1 つ以上のキーワードまたは値、セミコロン(\(lq;\(rq) で構成される。
.PP
一部のパラメータ値には、素の数値が指定されたときに適用されるデフォルトのスケールがある(たとえば、Kilo は数値の1024倍)。このようなデフォルトのスケールは、接尾辞を使用して上書きすることができる。(メガの場合は M)。共通の接尾語 K = 2^10 = 1024, M = 1024 K, G = 1024 M はサポートされている。
.PP
コメントはハッシュ記号で始まり(\(lq#\(rq)、行の最後までコメントとみなされる。さらに、どのセクションにもキーワード
\fBskip\fR
接頭辞を付けることができ、セクションおよびすべてのサブセクションを無効にするのに使用できる。。
.PP
追加ファイルは
\fBinclude \fR\fB\fIfile\-pattern\fR\fR
キーワードでインクルードできる。サポートされている形式は
\fBglob\fR(7)
マニュアルを参照。インクルード形式はセクションの外部でのみ許可される。
.PP
次のセクションが定義されている(インデントはどのコンテキストにあるかを示す)。
.sp
.if n \{\
.RS 4
.\}
.nf
common
[disk]
[handlers]
[net]
[options]
[startup]
global
[require\-drbd\-module\-version\-{eq,ne,gt,ge,lt,le}]
resource
connection
multiple path | 2 host
[net]
[volume]
[peer\-device\-options]
[peer\-device\-options]
connection\-mesh
[net]
[disk]
floating
handlers
[net]
on
volume
disk
[disk]
options
stacked\-on\-top\-of
startup
.fi
.if n \{\
.RE
.\}
.sp
角括弧 [] 内のセクションは、設定の他の部分にも影響する。
\fBcommon\fR
セクションはすべてのリソースに適用される。\fBresource\fR
または
\fBon\fR
内の
\fBdisk\fR
セクションは、そのリソース内のすべてのボリュームに適用される。\fBresource\fR
内の\fBnet\fR
セクションはそのリソースのすべての接続に適用される。これにより、各リソース、接続、またはボリュームに対して同じオプションを繰り返すのを避けることができる。オプションは
\fBresource\fR,
\fBconnection\fR,
\fBon\fR,
\fBvolume\fR
セクションでオーバーライドできる。
.PP
\fBpeer\-device\-options\fR
は
\fBresync\-rate\fR,
\fBc\-plan\-ahead\fR,
\fBc\-delay\-target\fR,
\fBc\-fill\-target\fR,
\fBc\-max\-rate\fR,
\fBc\-min\-rate\fR
のどれかである\&. 後方互換性のため、disk オプションセクションでも指定できる。それらはすべての関連する接続に継\:\:承される。\fBconnection\fR
レベルでそれらが与えられた場合、その接続上のすべてのボリュームに継承される。\fBpeer\-device\-options\fR
セクションは
\fBdisk\fR
キーワードで始まる。
.SS "セクション"
.PP
\fBcommon\fR
.RS 4
このセクションには、\fBdisk\fR,
\fBhandlers\fR,
\fBnet\fR,
\fBoptions\fR,
\fBstartup\fR
セクションが含まれる。すべてのリソースは、これらのセクションのパラメータをデフォルト値として継承する。
.RE
.PP
\fBconnection\fR
.RS 4
Define a connection between two hosts\&. This section must contain two
\fBhost\fR
parameters or multiple
\fBpath sections\fR\&.
.RE
.PP
\fBpath\fR
.RS 4
2 つのホスト間のパスを定義する。このセクションには、2 つの
\fBhost\fR
パラメータを含む必要がある。
.RE
.PP
\fBconnection\-mesh\fR
.RS 4
複数のホスト間に接続網を定義する。このセクションは、 ホスト名を引数とする
\fBhosts\fR
パラメータを含む必要がある。このセクションは、同じネットワークオプションを共有する多くの接続を定義するためのショートカットである。
.RE
.PP
\fBdisk\fR
.RS 4
ボリュームのパラメータを定義する。このセクションのすべてのパラメータはオプションである。
.RE
.PP
\fBfloating \fR\fB\fI[address\-family]\fR\fR\fB \fR\fB\fIaddr\fR\fR\fB:\fR\fB\fIport\fR\fR
.RS 4
\fBon\fR
と同様であるが、ホスト名の代わりにネットワークアドレスが
\fBfloating\fR
セクションとマッチするかに使用される。
.sp
このセクションの
\fBnode\-id\fR
パラメータは必須である。\fBaddress\fR
パラメータが指定されていない場合、デフォルトで対向ノードへの接続は作成されない。\fBdevice\fR,
\fBdisk\fR,
\fBmeta\-disk\fR
パラメータは定義もしくは継承されている必要がある。
.RE
.PP
\fBglobal\fR
.RS 4
いくつかのグローバルパラメータを定義する。このセクションのすべてのパラメータはオプションである。\fBglobal\fR
セクションは一回だけ記述できる。
.RE
.PP
\fBrequire\-drbd\-module\-version\-{eq,ne,gt,ge,lt,le}\fR
.RS 4
有効な形式は 1 つの文字列と 3 桁のバージョン番号で形成される(例えば
\fBrequire\-drbd\-module\-version\-eq\ \&9\&.0\&.16;\fR)。現在ロードされている DRBD カーネルモジュールが仕様と一致しない場合、読み込みを中止する。比較演算子名は
\fBtest\fR(1)
と同じ形式である。
.RE
.PP
\fBhandlers\fR
.RS 4
特定のイベントが発生したときに呼び出されるハンドラを定義する。カーネルは、コマンドラインの最初の引数にリソース名を渡し、イベントのコンテキストに応じて次の環境変数を設定する。
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
特定のデバイスに関連するイベントの場合、デバイスのマイナー番号は
\fBDRBD_MINOR\fR、デバイスのボリューム番号は
\fBDRBD_VOLUME\fR
に設定される。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
特定の対向ノード上の特定のデバイスに関連するイベントの場合、
\fBDRBD_MY_ADDRESS\fR,
\fBDRBD_MY_AF\fR,
\fBDRBD_PEER_ADDRESS\fR,
\fBDRBD_PEER_AF\fR; デバイスのローカルマイナー番号は
\fBDRBD_MINOR\fR, デバイスのボリューム番号は
\fBDRBD_VOLUME\fR
に設定される。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
特定の接続に関連するイベントの場合、接続エンドポイントは
\fBDRBD_MY_ADDRESS\fR,
\fBDRBD_MY_AF\fR,
\fBDRBD_PEER_ADDRESS\fR,
\fBDRBD_PEER_AF\fR; その接続用に定義された各デバイスについて、デバイスのマイナー番号は
\fBDRBD_MINOR_\fR\fB\fIvolume\-number\fR\fR
に設定される。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
デバイスを識別するイベントの場合、下位デバイスが接続されている場合は、下位デバイスのデバイス名が渡される
\fBDRBD_BACKING_DEV\fR
(または\fBDRBD_BACKING_DEV_\fR\fB\fIvolume\-number\fR\fR)。
.RE
.sp
このセクションのすべてのパラメータはオプションである。イベントごとに 1 つのハンドラしか定義できない。ハンドラが定義されていなければ何も起こらない。
.RE
.PP
\fBnet\fR
.RS 4
接続のパラメータを定義する。このセクションのすべてのパラメータはオプションである。
.RE
.PP
\fBon\fR \fB\fIhost\-name\fR\fR \fI[\&.\&.\&.]\fR
.RS 4
特定のホストまたはホストのセット上のリソースのプロパティを定義する。複数のホスト名を指定することは、たとえば IP アドレスのフェイルオーバーを使用する設定で意味がある。\fIhost\-name\fR
引数は Linux のホスト名と一致する必要がある (\fBuname \-n\fR)。
.sp
通常、少なくとも 1 つの
\fBvolume\fR
セクションを含むか継承する。\fBnode\-id\fR
と
\fBaddress\fR
パラメータはこのセクションで定義する必要がある。\fBdevice\fR,
\fBdisk\fR,
\fBmeta\-disk\fR
パラメータは定義もしくは継承されている必要がある。
.sp
通常の構成ファイルには、各リソースで 2 つ以上の
\fBon\fR
セクションが含まれる。\fBfloating\fR
セクションも参照。
.RE
.PP
\fBoptions\fR
.RS 4
リソースのパラメータを定義する。このセクションのすべてのパラメータはオプションである。
.RE
.PP
\fBresource\fR \fB\fIname\fR\fR
.RS 4
リソースを定義する。通常、少なくとも 2 つの
\fBon\fR
セクションと少なくとも 1 つの
\fBconnection\fR
セクションを含む。
.RE
.PP
\fBstacked\-on\-top\-of \fR\fB\fIresource\fR\fR
.RS 4
3〜4 つのノードを持つスタック型リソースを構成するため
\fBon\fR
セクションに代わり使われる。
.sp
DRBD 9 以降、スタッキングは推奨しない。代わりに 2 つ以上のノード間で複製されるリソースを使用することを推奨する。
.RE
.PP
\fBstartup\fR
.RS 4
このセクションのパラメータは、起動時のリソースの動作を決定する。
.RE
.PP
\fBvolume\fR \fB\fIvolume\-number\fR\fR
.RS 4
リソース内のボリュームを定義する。リソースの
\fBvolume\fR
セクションのボリューム番号は、どのホスト上のどのデバイスが複製されたデバイスを形成するかを定義する。
.RE
.SS "connection セクションのパラメータ"
.PP
\fBhost \fR\fB\fIname\fR\fR [\fBaddress \fR\fB[address\-family]\fR\fB \fR\fB\fIaddress\fR\fR] [\fBport \fR\fB\fIport\-number\fR\fR]
.RS 4
接続のエンドポイントを定義する。各
\fBhost\fR
ステートメントは、リソースの
\fBon\fR
セクションを参照する。ポート番号が定義されている場合、このエンドポイントは、\fBon\fR
セクションで定義されたポートの代わりに指定されたポートを使用する。各
\fBconnection\fR
セクションには 2 つ
\fBhost\fR
パラメータが必要である。2 つ
\fBhost\fR
パラメータに代わって、複数の
\fBpath\fR
セクションを含むかもしれない。
.RE
.SS "path セクションのパラメータ"
.PP
\fBhost \fR\fB\fIname\fR\fR [\fBaddress \fR\fB[address\-family]\fR\fB \fR\fB\fIaddress\fR\fR] [\fBport \fR\fB\fIport\-number\fR\fR]
.RS 4
接続のエンドポイントを定義する。各
\fBhost\fR
ステートメントは、リソースの
\fBon\fR
セクションを参照する。ポート番号が定義されている場合、このエンドポイントは、\fBon\fR
セクションで定義されたポートの代わりに指定されたポートを使用する。各
\fBpath\fR
セクションには 2 つ
\fBhost\fR
パラメータが必要である。
.RE
.SS "connection\-mesh セクションのパラメータ"
.PP
\fBhosts \fR\fB\fIname\fR...\fR
.RS 4
すべてのノード網を定義する。各
\fB\fIname\fR\fR
は、リソースの
\fBon\fR
セクションを参照する。\fBon\fR
セクションで定義されているポートが使用される。
.RE
.SS "disk セクションのパラメータ"
.PP
\fBal\-extents \fR\fB\fIextents\fR\fR
.RS 4
DRBD は、直近の書き込み活動に基づいて、すぐに書き直される可能性のある「ホット」または「アクティブ」ディスク領域を自動的に維持する。「アクティブ」ディスク領域はすぐに書き込むことができるが、「非アクティブ」ディスク領域は最初に「アクティブ化」する必要があり、このためのメタデータ書き込みが必要である。このアクティブなディスク領域を「アクティビティログ」として参照する。
.sp
アクティビティーログはメタデータに書き込まれるが、失敗したノードのリカバリー時にはログ全体を再同期化する必要がある。アクティビティログのサイズは、再同期にかかる時間やクラッシュ後に複製されるディスクが整合状態になる時間に影響を与える。
.sp
アクティビティログは、4メガバイトのセグメントから構成される。その
\fIal\-extents\fR
パラメータは、同時にアクティブにできるセグメントの数を決定する。\fIal\-extents\fR
のデフォルト値は 1237、 最小値は 7、 最大値は 65536 である。
.sp
有効な最大値はもっと小さくなる点に注意が必要であり、メタデータのデバイスの作成方法によっても異なる。次のマニュアルページを参照、\fBdrbdmeta\fR(8)。有効な最大値は 919 * (使用できる オンディスクのアクティビティログのリングバッファ領域 /4KB \-1) である。リングバッファはデフォルトで 32KB で、有効な最大値は 6433 である (データは 25GiB 以上カバーしている)。下位デバイスの量とレプリケーションリンク全体が 5 分以内で再同期できるようにすることを推奨する。
.RE
.PP
\fBal\-updates \fR\fB{yes | no}\fR\fB \fR
.RS 4
このパラメータを使用すると、アクティビティログを完全にオフにすることができる(\fBal\-extents\fR
パラメータを参照)。メタデータの書き込みが少なくて済むため、書き込みが高速になるが、故障したプライマリノードの回復のためにデバイス全体を再同期する必要がある。\fBal\-updates\fR
のデフォルト値は
\fByes\fR
である。
.RE
.PP
\fBdisk\-barrier\fR,
.br
\fBdisk\-flushes\fR,
.br
\fBdisk\-drain\fR
.RS 4
DRBD は、依存書き込みリクエストの順序を処理する 3 つの方法がある:
.PP
\fBdisk\-barrier\fR
.RS 4
ディスクバリアを使用して、リクエストが正しい順序でディスクに書き込まれるようにする。バリアの前に提出されたすべてのリクエストが、バリアの後に提出されたリクエストの前にディスクに書き込まれることを保証する。これは、SCSI デバイスの \*(Aqtagged command queuing\*(Aq と SATA デバイスの \*(Aqnative command queuing\*(Aq を使用して実装される。一部のデバイスおよびデバイススタックのみがこの方法をサポートする。デバイスマッパー (LVM) は、一部の構成でのみバリアをサポートする。
.sp
ディスクバリアをサポートしていないシステムで、このオプションを有効にするとデータが消失または破損する可能性がある。DRBD 8\&.4\&.1 までは、下位デバイスがバリアをサポートする場合
\fBdisk\-barrier\fR
が有効でした。しかし、linux\-2\&.6\&.36 (または RHEL6 の 2\&.6\&.32) 以降のカーネルでは、バリアがサポートされているかどうかを検出できなくなりました。drbd\-8\&.4\&.2 以降、このオプションはデフォルトでは無効であり、使用する場合は明示的に有効にする必要がある。
.RE
.PP
\fBdisk\-flushes\fR
.RS 4
依存書き込みリクエスト間でディスクフラッシュを使用する(ドライブベンダーにより \*(Aqforce unit access\*(Aq とも呼ばれる)。これにより、すべてのデータが強制的にディスクに格納される。このオプションは、デフォルトで有効である。
.RE
.PP
\fBdisk\-drain\fR
.RS 4
依存書き込みリクエストを送信する前に、リクエストキューが排出されるまで待つ(つまり、リクエストが完了するのを待つ)。この方法は、リクエストが完了するとディスク上で安定している。DRBD 8\&.0\&.9 より前は、これが実装された唯一の方法でした。このオプションは、デフォルトで有効である。運用環境では無効にしないことを推奨する。
.RE
.sp
これらの3つの方法から、DRBD は設定が有効で、下位デバイスもサポートしている最初のものを使用する。これらの3つのオプションがすべて無効になっている場合、DRBD は依存関係を気にせずに書き込みリクエストを送信する。下位デバイスによって、書き込みリクエストを並べ替えることができ、異なるクラスタノード上で異なる順序で書き込みリクエストを送信できる。これは、データの損失または破損の原因となる。したがって、書き込み順序を制御する 3 つの方法をすべて無効にしないことを推奨する。
.sp
書込み順序を設定する一般的なガイドラインは、揮発性書込みキャッシュを備えた通常のディスク(または通常のディスクアレイ)を使用する場合は、disk\-barrier または disk\-flushes を使用することである。キャッシュを持たないストレージまたはバッテリバックアップのライトキャッシュでは、 disk\-drain が適している。
.RE
.PP
\fBdisk\-timeout\fR
.RS 4
DRBD デバイスのデータを格納する下位レベルデバイスが、指定した
\fBdisk\-timeout\fR
以内で I/O リクエストを完了しない場合、DRBD はこれを障害とみなす。下位デバイスは切り離され、デバイスのディスク状態はディスクレス状態になる。DRBD が 1 台以上の対向ノードに接続したとき、失敗したリクエストはそのうちの 1 台に伝えられる。
.sp
このオプションは
\fIカーネルパニックを引き起こす可能性があり、注意が必要である\fR。
.sp
リクエストの「中断」あるいはディスクの強制切り離しは、完全に下位デバイスをブロックまたはハンギングして、リクエストをまったく処理せずエラーも処理しなくなる。この状況ではハードリセットとフェイルオーバ以外になす術がない。
.sp
「中断」すると、基本的にローカルエラーの完了を装い、すみやかにサービスの移行を行うことで安全な切り替えを行う。それでもなお、影響を受けるノードは "すぐ" に再起動される必要はある。
.sp
リクエストを完了することで、上位レイヤーに関連するデータページを再利用させることができる。
.sp
後にローカルの下位デバイスが「復帰」すると、ディスクから元のリクエストページへの DMA のデータは、うまくいくと未使用のページへランダムなデータを送るが、多くの場合その間に関係のないデータに変形してしまい、様々なダメージの原因になる。
.sp
つまり遅延した正常な完了は、特に読み込みリクエストの場合 panic() の原因になる。遅延した「エラー」完了は、その都度に通知は行うが、問題ないと考えてよい。
.sp
\fBdisk\-timeout\fR
のデフォルト値は 0 であり、無限のタイムアウトを意味する。タイムアウトは 0\&.1 秒単位で指定する。このオプションは DRBD 8\&.3\&.12\&. から有効である。
.RE
.PP
\fBmd\-flushes\fR
.RS 4
メタデータデバイスでディスクフラッシュとディスクバリアを有効にする。このオプションは、デフォルトで有効である。\fBdisk\-flushes\fR
のパラーメータを参照。
.RE
.PP
\fBon\-io\-error \fR\fB\fIhandler\fR\fR
.RS 4
DRBD が下位レベルデバイスの I/O エラーにどのように反応するかを設定する。次のポリシーが定義される:
.PP
\fBpass_on\fR
.RS 4
ディスクのステータスを inconsistent(不整合) にし、 I/O エラーを起こしたブロックに対応するビットマップにマークをつけ、リモートのクラスターノード上で I/O 操作を再度行う。
.RE
.PP
\fBcall\-local\-io\-error\fR
.RS 4
\fBlocal\-io\-error\fR
ハンドラを呼び出す (\fBhandlers\fR
セクションを参照)。
.RE
.PP
\fBdetach\fR
.RS 4
下位レベルデバイスを切り離し、ディスクレスモードで続行する。
.RE
.sp
.RE
.PP
\fBread\-balancing \fR\fB\fIpolicy\fR\fR
.RS 4
\fIpolicy\fR
定義された読み取りリクエストで、クラスターノード間に負荷分散する。次のポリシーがサポートされる:
\fBprefer\-local\fR
(デフォルト),
\fBprefer\-remote\fR,
\fBround\-robin\fR,
\fBleast\-pending\fR,
\fBwhen\-congested\-remote\fR,
\fB32K\-striping\fR,
\fB64K\-striping\fR,
\fB128K\-striping\fR,
\fB256K\-striping\fR,
\fB512K\-striping\fR
and
\fB1M\-striping\fR\&.
.sp
このオプションは、DRBD 8\&.4\&.1 から有効である。
.RE
.PP
\fBresync\-after \fR\fB\fIres\-name\fR\fR\fB/\fR\fB\fIvolume\fR\fR
.RS 4
デバイスは、指定されたデバイスの後でのみ再同期する必要があることを定義する。デフォルトでは、デバイス間の順序は定義されず、すべてのデバイスが並行して再同期される。下位レベルデバイスの構成、および使用可能なネットワークとディスクの帯域幅によっては、全体の再同期プロセスが遅くなる可能性がある。このオプションは、デバイス間の依存関係チェーンやツリーを形成するために使用できる。
.RE
.PP
\fBrs\-discard\-granularity \fR\fB\fIbyte\fR\fR
.RS 4
\fB rs\-discard\-granularity \fR
がゼロ以外の正の値に設定されている場合、DRBD はこのサイズで再同期操作をリクエストする。そのようなブロックが同期ソースノード上にゼロバイトしか含まない場合、同期ターゲットノードは、その領域に対して discard/trim/unmap コマンドを発行する。
.sp
この値は、下位ブロックデバイスの discard 粒度によって制約される。\fB rs\-discard\-granularity \fRが下位ブロックデバイスの discard 粒度の乗数でない場合、DRBD はそれを切り上げる。この機能は、下位ブロックデバイスが discard コマンドの後に、ゼロを読み戻す場合にのみアクティブになる。
.sp
The usage of
\fBrs\-discard\-granularity\fR
may cause
\fBc\-max\-rate\fR
to be exceeded\&. In particular, the resync rate may reach 10x the value of
\fBrs\-discard\-granularity\fR
per second\&.
.sp
デフォルト値は 0 である。このオプションは 8\&.4\&.7 から有効である。
.RE
.PP
\fBdiscard\-zeroes\-if\-aligned \fR\fB{yes | no}\fR
.RS 4
Linux のブロックデバイスで discard/trim/unmap のサポートにはいくつかの側面がある。discard が一般的にサポートされていても、暗黙に失敗したり、discard リクエストを部分的に無視したりすることがある。デバイスは、また、マップされていないブロックからの読み込みが、定義済みのデータ(通常はゼロ)、未定義のデータ(おそらく古いデータか、ゴミ)のどちらを返すか通知する。
.sp
異なるノードで DRBD が discard 特性が異なるデバイスによって構成されている場合、discard はデータの不一致(古いデータまたはゴミが 1 つのバックエンドに残り、別のバックエンドではゼロが残る)の原因となる。オンライン照合は、数多くの偽の差異を報告する可能性がある。たぶんほとんどのユースケース (ファイルシステム上の fstrim) では無害であるが、DRBD はそれを持つことはできない。
.sp
安全に動作させるには、ローカルのバックエンド(プライマリ上)が "discard_zeroes_data=true" をサポートしていない場合、 discard のサポートを無効にする必要がある。受信側(セカンダリ)がマップされていなかった領域を割り当て、 "discard_zeroes_data = true" をサポートしていない場合、受信側で discard を明示的にゼロに変換する必要がある。
.sp
discard をサポートしているのに、discard_zeroes_data = false をアナウンスするデバイス(特に LVM/DM シンプロビジョニング)がある。DM\-thin の場合、チャンクサイズに合わせた discard はマップされず、マッピングされていないセクタからの読み込みはゼロを返す。ただし、discard リクエストのアライメントされていない部分ヘッドまたはテール領域は暗黙に無視する。
.sp
整列したフル・チャンクの discard をパスし、これらの整列していない部分領域を明示的にゼロ・アウトするヘルパーを追加すると、そのようなデバイスでは discard_zeroes_data = true を効果的に達成する。
.sp
\fB discard\-zeroes\-if\-aligned \fR
を
\fByes\fR
に設定すると、 discard_zeroes_data = false を通知するバックエンドであっても DRBD は discard を使用し、 discard_zeroes_data = true を通知する。
.sp
\fB discard\-zeroes\-if\-aligned \fR
を
\fBno\fR
に設定すると、それぞれのバックエンドが discard_zeroes_data = false をアナウンスする場合、DRBD は常に受信側でゼロアウトにフォールバックし、プライマリ側では discard に関して通知しない。
.sp
私たちは、 discard_zeroes_data 設定を完全に無視していました。確立し、期待された動作を壊さず、シンプロビジョニング LV の fstrim がスペースを解放する代わりにスペースを使い果たさないためのデフォルト値は
\fByes\fR
である。
.sp
このオプションは 8\&.4\&.7 から有効である。
.RE
.PP
\fBdisable\-write\-same \fR\fB{yes | no}\fR
.RS 4
一部のディスクは、WRITE_SAME サポートをカーネルに通知するが、実際にそのようなリクエストを受信すると、I/O エラーで失敗する。これは主に、仮想化されたディスクを使用しているときに発生する。特に、この動作は VMware の仮想ディスクで観察されている。
.sp
\fBdisable\-write\-same\fR
を
\fByes\fR
に設定すると、WRITE_SAME サポートが手動で無効にできる。
.sp
\fBdisable\-write\-same\fR
のデフォルト値は
\fBno\fR
である。このオプションは 8\&.4\&.7 から有効である。
.RE
.SS "peer\-device\-options セクションのパラメータ"
.PP
\fBdisk\fR
キーワードでセクションを開くこともできる。
.PP
\fBc\-delay\-target \fR\fB\fIdelay_target\fR\fR,
.br
\fBc\-fill\-target \fR\fB\fIfill_target\fR\fR,
.br
\fBc\-max\-rate \fR\fB\fImax_rate\fR\fR,
.br
\fBc\-plan\-ahead \fR\fB\fIplan_time\fR\fR
.RS 4
再同期速度を動的に制御する。次のモードが使用できる。
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
フィル・ターゲットによる動的制御 (デフォルト)。c\-plan\-ahead がゼロ以外で、c\-fill\-target がゼロ以外の場合に有効になる。ゴールは、定義された量のデータでデータパスのバッファーを埋めることである。このモードは DRBD プロキシを使用する場合に推奨される。
\fBc\-plan\-ahead\fR,
\fBc\-fill\-target\fR,
\fBc\-max\-rate\fR
で設定する。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
遅延ターゲットによる動的制御。c\-plan\-ahead がゼロ以外 (デフォルト) で、c\-fill\-target がゼロの場合に有効になる。ゴールは、データパスで定義された遅延を持つことである。
\fBc\-plan\-ahead\fR,
\fBc\-delay\-target\fR,
\fBc\-max\-rate\fR
で設定する。
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
固定した再同期レート。c\-plan\-ahead がゼロの場合に有効である。DRBD は、固定レートで再同期 I/O を実行しようとする。
\fBresync\-rate\fR
で設定される。
.RE
.sp
\fBc\-plan\-ahead\fR
パラメーターは DRBD が再同期速度の変化にどのくらい速く適応するかを定義する。ネットワークの往復時間の 5 倍以上に設定する必要がある。
\fBc\-plan\-ahead\fR
のデフォルト値は 20 で 0\&.1 秒単位で設定する。
.sp
\fBc\-fill\-target\fR
パラメーターはどのくらいの量の再同期データを DRBD 実行中に常に持つかを定義する。通常のデータパスの一般的な値は 4K から 100K である。
\fBc\-fill\-target\fR
のデフォルト値は 100 で単位はセクターである。
.sp
\fBc\-delay\-target\fR
パラメータは DRBD が目指すべき再同期パスの遅延を定義する。これはネットワークの往復時間の 5 倍以上に設定する必要がある。
\fBc\-delay\-target\fR
のデフォルト値は 10 で、0\&.1 秒単位である。
.sp
c\-max\-rate パラメーターは、動的に制御される再同期で使用される最大帯域幅を制限する。これをゼロに設定すると、制限がなくなる(DRBD 9\&.0\&.28 以降)。DRBD ホストと DRBD プロキシをホストするマシン間で利用可能な帯域幅、または利用可能なディスク帯域幅のいずれかに設定する。
\fBc\-max\-rate\fR
のデフォルト値は 102400 で、単位は KiB/s である。
.sp
動的な再同期速度制御は DRBD 8\&.3\&.9 から有効である。
.RE
.PP
\fBc\-min\-rate \fR\fB\fImin_rate\fR\fR
.RS 4
同期元のプライマリノードは、アプリケーションの書き込みと再同期の書き込みの配分を管理する必要がある。\fBc\-min\-rate\fR
は、再同期の書き込みに使用できる帯域幅を制限する。残りの帯域幅はアプリケーションの書き込みに使用される。
.sp
\fBc\-min\-rate\fR
の値 0 は、再同期の書き込みに使用できる帯域幅に制限がないことを意味する。これにより、アプリケーションの書き込みが大幅に遅くなる可能性がある。再同期速度の最低値は 1(1 KiB/s) である。
.sp
\fBc\-min\-rate\fR
のデフォルト値は 250 で、単位は KiB/s である。
.RE
.PP
\fBresync\-rate \fR\fB\fIrate\fR\fR
.RS 4
DRBD が再同期に使用できる帯域幅を定義する。DRBD では、再同期中でも「通常の」アプリケーション I/O が可能である。再同期の帯域幅が大きすぎると、アプリケーション I/O が非常に遅くなる可能性がある。このパラメータは、これを避けることができる。これは、動的な再同期コントローラが無効の場合にのみ機能する。
.RE
.SS "global セクションのパラメータ"
.PP
\fBdialog\-refresh \fR\fB\fItime\fR\fR
.RS 4
DRBD init スクリプトを使用してDRBD デバイスを構成および起動することができる。これには、他のクラスタノードを待機する必要がある。待機中、init スクリプトは残りの待機時間を表示する。\fBdialog\-refresh\fR
は、そのカウントダウンの更新間隔(秒)を定義する。デフォルト値は 1 で、0 はカウントダウンを無効にする。
.RE
.PP
\fBdisable\-ip\-verification\fR
.RS 4
通常、DRBD は構成内の IP アドレスがホスト名と一致することを確認する。これらのチェックを無効にするには
\fBdisable\-ip\-verification\fR
を使用する。
.RE
.PP
\fBusage\-count \fR\fB{yes | no | ask}\fR\fB \fR
.RS 4
DRBD の\m[blue]\fBオンライン利用カウンター\fR\m[]\&\s-2\u[2]\d\s+2で説明されているように、DRBD には、どのバージョンを使用しているかを匿名でカウントするメカニズムがある。結果は誰でも見ることができるウェブページ上で公開されている。
.sp
このパラメータは、クラスタノードが利用カウンターに参加するかどうかを定義する。サポートされている値は
\fByes\fR,
\fBno\fR,
\fBask\fR(ユーザーに聞く、デフォルト) である。
.sp
DRBD の開発を推進する貴重なフィードバックを得るため、ユーザーにオンライン利用カウンターへの参加を依頼したいと考えている。
.RE
.PP
\fBudev\-always\-use\-vnr\fR
.RS 4
udev が drbdadm にデバイス関連のシンボリックリンクのリストを要求すると、drbdadm は、リソースに明示的な
volume VNR { }
定義があるか、暗黙的なボリューム番号 0 を持つ単一のボリュームしかないかによって、異なる命名規則でシンボリックリンクを提示する:
.sp
.if n \{\
.RS 4
.\}
.nf
# implicit single volume without "volume 0 {}" block
DEVICE=drbd
SYMLINK_BY_RES=drbd/by\-res/
SYMLINK_BY_DISK=drbd/by\-disk/
# explicit volume definition: volume VNR { }
DEVICE=drbd
SYMLINK_BY_RES=drbd/by\-res//VNR
SYMLINK_BY_DISK=drbd/by\-disk/
.fi
.if n \{\
.RE
.\}
.sp
global セクションでこのパラメータを定義すると、drbdadm は常に
\&.\&.\&./VNR
の部分を追加し、ボリューム定義が暗黙的であるか明示的であるかを気にしない。
.sp
過去との互換性のために、これはデフォルトでは無効になっているが、有効にすることを推奨する。
.RE
.SS "handlers セクションのパラメータ"
.PP
\fBafter\-resync\-target \fR\fB\fIcmd\fR\fR
.RS 4
再同期が完了したとき、ノードの状態が
\fBInconsistent\fR
から
\fBConsistent\fR
に変化したときに再同期ターゲットで呼び出される。このハンドラは
\fBbefore\-resync\-target\fR
ハンドラで作成したスナップショットを削除するのに使用できる。
.RE
.PP
\fBbefore\-resync\-target \fR\fB\fIcmd\fR\fR
.RS 4
再同期の開始前に再同期ターゲットで呼び出される。このハンドラは、再同期中に下位レベルのデバイスのスナップショットを作成するために使用できる。再同期中に再同期ソースが使用できなくなった場合、スナップショットに戻すことで consistent 状態が復元される。
.RE
.PP
\fBbefore\-resync\-source \fR\fB\fIcmd\fR\fR
.RS 4
再同期が始まる前に再同期のソース側で呼び出される。
.RE
.PP
\fBout\-of\-sync \fR\fB\fIcmd\fR\fR
.RS 4
\fBverify\fR
が終了し out\-of\-sync ブロックが見つかった時にすべてのノードで呼び出される。例としてはアラート SMS を送るスクリプトである。
.RE
.PP
\fBquorum\-lost \fR\fB\fIcmd\fR\fR
.RS 4
クォーラムを失ったプライマリで呼び出される。このハンドラは DRBD ストレージを使用するアプリケーションを再起動できない場合にノードをリブートするときに主に使われる。
.RE
.PP
\fBfence\-peer \fR\fB\fIcmd\fR\fR
.RS 4
ノードが特定の対向ノード上のリソースをフェンシングする必要があるときに呼び出される。ハンドラは、DRBD が対向ノードとのコミュニケーションに使用するのと同じ通信パスを使用すべきでない。
.RE
.PP
\fBunfence\-peer \fR\fB\fIcmd\fR\fR
.RS 4
ノードが他のノードからのフェンシング制約を削除するときに呼び出される。
.RE
.PP
\fBinitial\-split\-brain \fR\fB\fIcmd\fR\fR
.RS 4
DRBD が対向ノードに接続し、対向ノードがローカルノードとスプリットブレイン状態にあることを検出すると呼び出される。このハンドラは自動解決されるスプリットブレインシナリオでも呼び出される。
.RE
.PP
\fBlocal\-io\-error \fR\fB\fIcmd\fR\fR
.RS 4
下位レベルのデバイスで I/O エラーが発生したときに呼び出される。
.RE
.PP
\fBpri\-lost \fR\fB\fIcmd\fR\fR
.RS 4
ノードが現在プライマリであるにもかかわらず、 DRBD が同期先だと判断した場合に呼び出される。ノードは、プライマリ役割を断念すべきである。
.RE
.PP
\fBpri\-lost\-after\-sb \fR\fB\fIcmd\fR\fR
.RS 4
ノードが現在プライマリで、スプリットブレイン後の自動回復プロセスが失敗したときに呼び出される。ノードのデータは放棄されるべきである。
.RE
.PP
\fBpri\-on\-incon\-degr \fR\fB\fIcmd\fR\fR
.RS 4
ローカルノードはプライマリであり、ローカルの下位レベルのデバイスも対向ノードの下位レベルのデバイスも最新でないときに呼び出される。(プライマリには読み書きするデバイスがない)。
.RE
.PP
\fBsplit\-brain \fR\fB\fIcmd\fR\fR
.RS 4
DRBD が自動的に解決できないスプリットブレイン状況を検出した。修復のための手作業が必要なので、このハンドラは、管理者の注意を呼び出すために使用できる。
.RE
.PP
\fBdisconnected \fR\fB\fIcmd\fR\fR
.RS 4
対向ノードへの接続がダウンした。ハンドラーは
\fBDRBD_CSTATE\fR
環境変数から切断の理由を知ることができる。
.RE
.SS "net セクションのパラメータ"
.PP
\fBafter\-sb\-0pri \fR\fB\fIpolicy\fR\fR
.RS 4
スプリットブレインが検出され、2 つのノードのいずれもプライマリでない場合の対応方法を定義する。(2 つのノードが接続されたときにスプリットブレインを検出する、スプリットブレインの決定は常に2つのノード間である) 定義されたポリシーは次のとおり:
.PP
\fBdisconnect\fR
.RS 4
自動再同期はしない。単に切断する。
.RE
.PP
\fBdiscard\-younger\-primary\fR,
.br
\fBdiscard\-older\-primary\fR
.RS 4
最初(\fBdiscard\-younger\-primary\fR)、または最後(\fBdiscard\-older\-primary\fR) にプライマリなったノード から再同期する。両方のノードが独立してプライマリになった場合、
\fBdiscard\-least\-changes\fR
ポリシーが使用される。
.RE
.PP
\fBdiscard\-zero\-changes\fR
.RS 4
スプリットブレイン状況が検出されてからノードの 1 つだけがデータを書き込んだ場合は、このノードからもう 1 つのノードに再同期する。両方のノードがデータを書き込んだ場合は切断する。
.RE
.PP
\fBdiscard\-least\-changes\fR
.RS 4
より多くの変更されたブロックを持つノードから再同期する。
.RE
.PP
\fBdiscard\-node\-\fR\fB\fInodename\fR\fR
.RS 4
名前付きノードと常に再同期する。
.RE
.RE
.PP
\fBafter\-sb\-1pri \fR\fB\fIpolicy\fR\fR
.RS 4
1 つのノードがプライマリ、もう 1 つのノードをセカンダリのときに、スプリットブレインが検出された場合の対応方法を定義する。(2 つのノードが接続されたときにスプリットブレインを検出する、スプリットブレインの決定は常に2つのノード間である) 定義されたポリシーは次のとおり:
.PP
\fBdisconnect\fR
.RS 4
自動再同期を行わず接続を切断する。
.RE
.PP
\fBconsensus\fR
.RS 4
\fBafter\-sb\-0pri\fR
アルゴリズムの結果が現在のセカンダリノードのデータを破棄することになる場合、セカンダリノードのデータを破棄する。それ以外の場合は切断する。
.RE
.PP
\fBviolently\-as0p\fR
.RS 4
プライマリのデータに大きな変更がある場合でも、常に
\fBafter\-sb\-0pri\fR
アルゴリズムの判断を採用する。このポリシーは
\fBallow\-two\-primaries\fR
オプションを指定し、 1 ノードファイルシステム (OCF2 や GFS ではない) を使用している場合のみ有用である。このオプションを使用すると、プライマリノードがクラッシュする可能性があり、推奨しない。
.RE
.PP
\fBdiscard\-secondary\fR
.RS 4
セカンダリノード上のデータを破棄する。
.RE
.PP
\fBcall\-pri\-lost\-after\-sb\fR
.RS 4
常に
\fBafter\-sb\-0pri\fR
アルゴリズムの判断を採用する。プライマリノードでデータを破棄することになる場合は、 プライマリノードで
\fBpri\-lost\-after\-sb\fR
ハンドラを呼び出す。
.RE
.RE
.PP
\fBafter\-sb\-2pri \fR\fB\fIpolicy\fR\fR
.RS 4
スプリットブレインが検出され、両方のノードがプライマリである場合の対応方法を定義する。(2 つのノードが接続されたときにスプリットブレインを検出する、スプリットブレインの決定は常に2つのノード間である) 定義されたポリシーは次のとおり:
.PP
\fBdisconnect\fR
.RS 4
自動再同期を行わず接続を切断する。
.RE
.PP
\fBviolently\-as0p\fR
.RS 4
\fBafter\-sb\-1pri\fR
の
\fBviolently\-as0p\fR
ポリシーを参照。
.RE
.PP
\fBcall\-pri\-lost\-after\-sb\fR
.RS 4
そのマシンがセカンダリに降格できる場合を除いて、いずれかのマシンの
\fBpri\-lost\-after\-sb\fR
ヘルパープログラムを呼び出す。ヘルパープログラムはマシンを再起動することが期待され、ノードをセカンダリにする。どのマシンがヘルパープログラムを実行するかは、
\fBafter\-sb\-0pri\fR
ポリシーによって決定される。
.RE
.RE
.PP
\fBallow\-two\-primaries\fR
.RS 4
DRBD デバイスを構成する最も一般的な方法は、一度に 1 つのノードのみをプライマリ(したがって書き込み可能)にすることである。
.sp
いくつかのシナリオでは、2 つのノードを一度にプライマリにしたい場合がある。 DRBD 以外のメカニズムで、共有され複製されたデバイスへの書き込みが調整される方法を使用する必要がある。これは、OCFS2 や GFS などの共有ストレージクラスタファイルシステム、または仮想マシンイメージと仮想マシンを物理マシン間で移動できる仮想マシンマネージャを使用して実行できる。
.sp
\fBallow\-two\-primaries\fR
は、2つのノードを同時にプライマリにすることを DRBD に指示する。非分散ファイルシステムを使用する場合は、このオプションを有効にしてはならない。データ破損とノードクラッシュが発生する。
.RE
.PP
\fBalways\-asbp\fR
.RS 4
通常、3 番目のノードが存在しないことが現在の UUID 値から明らかな場合のみ、スプリットブレイン発生後の修復ポリシーだけが適用される。
.sp
このオプションを指定すると、両ノードのデータに関連性があるとして、スプリットブレイン発生後のポリシーが適用される。UUID の分析により 3 番目のノードの存在が疑われる場合には、フル同期が行われることがある。(または、なんらかの別の原因によって間違った UUID セットで判断してしまった場合)
.RE
.PP
\fBconnect\-int \fR\fB\fItime\fR\fR
.RS 4
2つのノード間の接続が
\fBdrbdsetup connect\fR
で構成される、DRBD はすぐに接続を確立しようとする。これが失敗すると、DRBD は\fBconnect\-int\fR
秒後に接続を試みる。\fBconnect\-int\fR
のデフォルト値は 10 秒である。
.RE
.PP
\fBcram\-hmac\-alg \fR\fB\fIhash\-algorithm\fR\fR
.RS 4
対向ノードの認証に使用するハッシュベースのメッセージ認証コード (HMAC) またはセキュアハッシュアルゴリズムを構成する。カーネルはいくつかの異なるアルゴリズムをサポートしており、その中にはカーネルモジュールとしてロード可能なものもある。/proc/crypto にリストされている shash アルゴリズムを参照。デフォルトで
\fBcram\-hmac\-alg\fR
は設定されていない。対向ノードの認証には、\fBshared\-secret\fR
も構成する必要がある。
.RE
.PP
\fBcsums\-alg \fR\fB\fIhash\-algorithm\fR\fR
.RS 4
通常、2 つのノードが再同期するとき、同期ターゲットは同期ソースから非同期データ\:\:を要求し、同期ソースはデータを送信する。多くの使用パターンで、それらのブロックのかなりの数が実際には同一になっている。
.sp
\fBcsums\-alg\fR
アルゴリズムが指定されている場合、同期ターゲットは、非同期データの要求と、現在持っているデータのハッシュ値も送信する。同期ソースは、このハッシュ値とそれ自身のバージョンのデータを比較する。ハッシュ値が異なる場合、新しいデータを同期ターゲットに送信し、そうでない場合はデータが同じであることを通知する。これにより、必要なネットワーク帯域幅が削減されるが、CPU 使用率が高くなり、同期ターゲットの I/O が増加する可能性がある。
.sp
\fBcsums\-alg\fR
は、カーネルによってサポートされている安全なハッシュアルゴリズムの 1 つに設定できる。 /proc/crypto にリストされている shash アルゴリズムを参照。デフォルトでは、
\fBcsums\-alg\fR
設定されていない。
.RE
.PP
\fBcsums\-after\-crash\-only\fR
.RS 4
このオプション(および上記の csums\-alg) を有効にすると、プライマリクラッシュ後の最初の再同期に対してのみチェックサムベースの再同期を使用するが、その後の「ネットワーク復帰」では使用しない。
.sp
ほとんどの場合、再同期が必要であるとマークされたブロックは実際に変更されているため、チェックサムの計算、および再同期ターゲット上のブロックの読み書きはすべてオーバーヘッドである。
.sp
チェックサムベースの再同期の利点は、大部分がプライマリのクラッシュリカバリの後である。リカバリでは、アクティビティログでカバーされるより大きな領域が再同期が必要なものとしてマークされている。8\&.4\&.5 から導入された。
.RE
.PP
\fBdata\-integrity\-alg \fR \fIalg\fR
.RS 4
DRBD は通常、 TCP/IP プロトコルに組み込まれたデータ整合性チェックに依存するが、データ整合性アルゴリズムが設定されている場合は、さらに、このアルゴリズムを使用して、ネットワーク経由で受信したデータが送信者のものと一致することを確認する。データの整合性エラーが検出された場合、DRBD はネットワーク接続を閉じ、再接続し、再同期を行う。
.sp
\fBdata\-integrity\-alg\fR
は、カーネルによってサポートされている安全なハッシュアルゴリズムの 1 つに設定できる。 /proc/crypto にリストされている shash アルゴリズムを参照。デフォルトでは、このメカニズムは無効である。
.sp
CPU のオーバーヘッドが発生するため、本番環境でこのオプションを使用しないことを推奨する。また、「データ整合性に関する注意」も参照。
.RE
.PP
\fBfencing \fR\fB\fIfencing_policy\fR\fR
.RS 4
\fBフェンシング\fRは、両方のノードがプライマリで切断されている状態を回避するための予防措置である。これはスプリットブレイン状態とも呼ばれている。DRBDは、次のフェンシングポリシーをサポートする:
.PP
\fBdont\-care\fR
.RS 4
フェンシングのためのアクションを実行しない。これがデフォルトのポリシーである。
.RE
.PP
\fBresource\-only\fR
.RS 4
ノードが切り離されたプライマリ状態になると、対向ノードをフェンシングしようとする。この動作は
\fBfence\-peer\fR
ハンドラによって行われる。このハンドラは、レプリケーション用とは別のネットワーク経由で対向ノードにアクセスし、 そこで \*(Aq\fBdrbdadm outdate minor\fR\*(Aq の実行を想定する。
.RE
.PP
\fBresource\-and\-stonith\fR
.RS 4
ノードが切り離されたプライマリ状態になると、 DRBD はすべてのディスク I/O を停止して fence\-peer ハンドラを呼び出す。このハンドラは、レプリケーション用とは別のネットワーク経由で対向ノードにアクセスし、 そこで \*(Aq\fBdrbdadm outdate minor\fR\*(Aq の実行を想定する。これが実行できない場合、 STONITH 機能を使って対向ノードを強制排除する。これらが完了したら、ディスク I/O を再開する。fence\-peer ハンドラが失敗した場合、 \*(Aq\fBdrbdadm resume\-io\fR\*(Aq コマンドでディスク I/O を再開できる。
.RE
.RE
.PP
\fBko\-count \fR\fB\fInumber\fR\fR
.RS 4
セカンダリノードが書き込みリクエストを
\fBtimeout\fR
内で
\fBko\-count\fR
回以上失敗した場合、そのセカンダリノードはクラスタから排除される。プライマリノードは、このセカンダリノードへの接続をスタンドアロンに設定する。この機能を無効にするには、明示的に 0 に設定する必要がある。デフォルトはバージョン間で変更されている。8\&.4 は 7 がデフォルト値である。
.RE
.PP
\fBmax\-buffers \fR\fB\fInumber\fR\fR
.RS 4
再同期、オンライン照合を行う際に、受信側で DRBD マイナーデバイスあたりに使用するメモリを制限する。単位は PAGE_SIZE で、ほとんどのシステムで 4KiB である。設定できる最小値は 32 (=128 KiB) でハードコードされている。これらバッファはディスクからの読み書きの際にデータブロックを保持するために使用される。輻輳時のデッドロックを回避するために、この設定はハード制限というよりは閾値として使用される。最大バッファページが使用されると、プールからのそれ以上の割り当てが制限される。受信側の I/O バックエンドに余裕がない場合には、 max\-buffers を増やすとよい。
.RE
.PP
\fBmax\-epoch\-size \fR\fB\fInumber\fR\fR
.RS 4
書き込みバリアを発行する前に DRBD が発行できる書き込みリクエストの最大数を定義する。デフォルト値は 2048 で、最小値は 1 、最大値は 20000 である。このパラメータを 10 未満の値に設定すると、パフォーマンスが低下する可能性がある。
.RE
.PP
\fBon\-congestion \fR\fB\fIpolicy\fR\fR,
.br
\fBcongestion\-fill \fR\fB\fIthreshold\fR\fR,
.br
\fBcongestion\-extents \fR\fB\fIthreshold\fR\fR
.RS 4
デフォルトでは、 TCP 送信キューが一杯になると、 DRBD は書き込みをブロックする。これにより、より多くのバッファスペースが再び利用可能になるまで、アプリケーションがさらに書き込みリクエストを生成するのを防ぐ。
.sp
DRBD を DRBD\-proxy と一緒に使用する場合は、 送信キューがいっぱいになる前に DRBD を AHEAD/BEAIND モードに切り替える
\fBpull\-ahead\fR
\fBon\-congestion\fR
ポリシーといっしょに使用することが望ましい。DRBD は、自身と対向ノードとの間の違いをビットマップに記録するが、もはや対向ノードに複製はしない。十分なバッファスペースが再び利用可能になると、ノードは対向ノードと同期を再開し、通常の複製に戻る。
.sp
これには、キューがいっぱいになってもアプリケーションの I/O をブロックしないという利点があるが、対向ノードの同期が大幅に遅れるという欠点もある。また、再同期している間、対向ノードは inconsistent(不整合) になる。
.sp
利用可能な congestion ポリシーは
\fBblock\fR
(デフォルト),
\fBpull\-ahead\fR
である。\fBcongestion\-fill\fR
は、この接続で動作中に許可されているデータ量を定義する。デフォルト値は 0 で、この輻輳制御のメカニズムを無効にする(最大 10 ギガバイト)。\fBcongestion\-extents\fR
は、 AHEAD/BEAIND モードに切り替える前にアクティブにできるビットマップエクステントの数を定義する。
\fBal\-extents\fR
と同じデフォルトと制限をもつ。\fBcongestion\-extents\fR
は、
\fBal\-extents\fR
より小さい値に設定した場合のみ有効である。
.sp
AHEAD/BEHIND モードは DRBD 8\&.3\&.10 から有効である。
.RE
.PP
\fBping\-int \fR\fB\fIinterval\fR\fR
.RS 4
対向ノードへの TCP/IP 接続で
\fBping\-int\fR
秒間に何も通信が行われなかった場合、DRBD はキープアライブパケットを送信して、対向ノードまたはネットワーク接続の失敗がすぐに検出されるようにする。デフォルト値は 10 秒で、最小値は 1 、最大値は 120 秒である。単位は秒である。
.RE
.PP
\fBping\-timeout \fR\fB\fItimeout\fR\fR
.RS 4
キープアライブパケットへの応答のタイムアウトを定義する。対向ノードが
\fBping\-timeout\fR
間で応答しない場合、 DRBD は接続を終了し、再接続しようとする。デフォルト値は 0\&.5 秒で、最小値は 0\&.1 秒、最大値は 30 秒である。単位は 10 分の 1 秒である。
.RE
.PP
\fBsocket\-check\-timeout \fR\fB\fItimeout\fR\fR
.RS 4
DRBD\-Proxy を使っていて大量のバッファを確保する必要がある環境では ping\-timeout に非現実的な大きな値を指定しなければならないことがある。TCP コネクションが開始したときの安定するのを待つ局面でも、 DRBD はデフォルトで ping\-timeout を使ってしまう。DRBD\-Proxy は通常、同じデータセンターに配置されているため、長い待機時間は DRBD の接続プロセスを妨げる可能性がある。
.sp
このような場合、\fBsocket\-check\-timeout\fR
に DRBD と DRBD\-Proxy 間の round trip time(RTT) を設定するとよい。たいていの場合 1 である。
.sp
デフォルトの単位は 10 分の 1 秒である。デフォルト値は 0 で socket\-check\-timeout 値の代わりに
\fBping\-timeout\fR
値を使用する。8\&.4\&.5 から導入された。
.RE
.PP
\fBprotocol \fR\fB\fIname\fR\fR
.RS 4
この接続で指定されたプロトコルを使用する。サポートされているプロトコルは次のとおり:
.PP
\fBA\fR
.RS 4
DRBD デバイスへの書き込みは、ローカルディスクへの書き込みと TCP/IP 送信バッファに到達した時点で完了とする。
.RE
.PP
\fBB\fR
.RS 4
DRBD デバイスへの書き込みは、ローカルディスクへの書き込みと、すべての対向ノードが書き込みリクエストを受信をした時点で完了とする。
.RE
.PP
\fBC\fR
.RS 4
DRBD デバイスへの書き込みは、ローカルディスクとすべてのリモートディスクへの書き込みが終わった時点で完了とする。
.RE
.sp
.RE
.PP
\fBrcvbuf\-size \fR\fB\fIsize\fR\fR
.RS 4
TCP/IP 受信バッファのサイズを指定する。0(デフォルト) を指定すると、バッファサイズが動的に調整される。このパラメータは通常設定する必要はないが、最大 10MiB まで設定できる。デフォルトの単位はバイトである。
.RE
.PP
\fBrr\-conflict\fR \fIpolicy\fR
.RS 4
このオプションは、再同期決定の結果がクラスタ内の現在のロール割り当てと互換性がない場合を解決するのに役立つ。定義されたポリシーは次のとおり:
.PP
\fBdisconnect\fR
.RS 4
自動再同期を行わず接続を切断する。
.RE
.PP
\fBretry\-connect\fR
.RS 4
今すぐ切断し、その後すぐに再接続する。
.RE
.PP
\fBviolently\fR
.RS 4
プライマリノードへの再同期が許可され、ブロックデバイス上のデータがノードの 1 つに対して安定しているという前提に反す。\fIこのオプションは危険であり、使ってはならない。\fR
.RE
.PP
\fBcall\-pri\-lost\fR
.RS 4
どこか 1 つのマシンで
\fBpri\-lost\fR
ハンドラを呼び出す。ハンドラはマシンを再起動することが期待され、ノードをセカンダリにする。
.RE
.PP
\fBauto\-discard\fR
.RS 4
\fBAuto\-discard\fR
reverses the resync direction, so that DRBD resyncs the current primary to the current secondary\&.
\fBAuto\-discard\fR
only applies when protocol A is in use and the resync decision is based on the principle that a crashed primary should be the source of a resync\&. When a primary node crashes, it might have written some last updates to its disk, which were not received by a protocol A secondary\&. By promoting the secondary in the meantime the user accepted that those last updates have been lost\&. By using
\fBauto\-discard\fR
you consent that the last updates (before the crash of the primary) should be rolled back automatically\&.
.RE
.RE
.PP
\fBshared\-secret \fR\fB\fIsecret\fR\fR
.RS 4
対向ノードの認証に使用する共有秘密鍵を設定する。secret は 64 文字までで指定する。対向ノードの認証には、
\fBcram\-hmac\-alg\fR
も設定する必要がある。
.RE
.PP
\fBsndbuf\-size \fR\fB\fIsize\fR\fR
.RS 4
TCP/IP 送信バッファのサイズを指定する。DRBD 8\&.0\&.13/8\&.2\&.7 以降、 0 (デフォルト) を指定すると、バッファサイズが動的に調整される。32 KiB 未満の値は、この接続のスループットに有害である。大きなバッファサイズは、プロトコル A が遅延の大きいネットワークで使用される場合に特に有用である。サポートされる最大値は 10 MiB である。
.RE
.PP
\fBtcp\-cork\fR
.RS 4
デフォルトで、DRBD は TCP_CORK ソケットオプションを使用して、カーネルが部分的なメッセージを送信しないようにする。その結果、ネットワーク上のパケット量が少なくなり、サイズが大きくなる。一部のネットワークスタックでは、この最適化で悪化する可能性がある。\fBtcp\-cork\fR
を使用してこの最適化を無効にすることができる。
.RE
.PP
\fBtimeout \fR\fB\fItime\fR\fR
.RS 4
ネットワークを介した応答のタイムアウトを定義する。対向ノードが指定された
\fBtimeout\fR
時間内で応答を送信しない場合、対向ノードが死んだと判断して TCP/IP コネクションを切断する。タイムアウト値は、
\fBconnect\-int\fR、\fBping\-int\fR
より小さい値でなければならない。デフォルトは 6 秒である。値は 10 分の 1 秒単位で指定する。
.RE
.PP
\fBtransport \fR\fB\fItype\fR\fR
.RS 4
DRBD9 では、DRBD によって使用されるネットワークトランスポートは個別のモジュールとしてロードされる。このオプションを使用すると、ロードするトランスポートとモジュールを指定できる。現在のところ、\fBtcp\fR
と
\fBrdma\fR
の 2 つのみをサポートする。RDMA トランスポートモジュールは LINBIT から購入したライセンスでのみ利用可能である。デフォルトは
\fBtcp\fR。
.RE
.PP
\fBuse\-rle\fR
.RS 4
クラスタノード上の複製された各デバイスには、それぞれの対向ノードデバイス用の個別のビットマップがあある。このビットマップは、ローカルデバイスと対向ノードデバイスの違いを追跡するために使用される。クラスタの状態によっては、デバイスのビットマップ、対向ノードデバイスのビットマップ、または両方のビットマップにディスクが異なるとマークできる。2つのクラスタノードが接続すると、相互のビットマップを交換し、ローカルと対向ノードのビットマップを検査して全体的な違いを判断する。
.sp
非常に大きなデバイスのビットマップは比較的大きいが、通常、ランレングス符号化を使用して非常にうまく圧縮される。これにより、ビットマップ転送の時間と帯域幅を節約できる。
.sp
\fBuse\-rle\fR
は run\-length エンコーディングを使用するかどうかを指定する。DRBD 8\&.4\&.0 以降デフォルトで有効である。
.RE
.PP
\fBverify\-alg \fR\fB\fIhash\-algorithm\fR\fR
.RS 4
オンライン照合(\fBdrbdadm verify\fR) は、ディスクブロックのチェックサム(すなわち、ハッシュ値)を計算して比較し、それらが異なるかどうかを検出する。\fBverify\-alg\fR
は、これらのチェックサムに使用するアルゴリズムを決定する。オンライン照合を使用するには、カーネルでサポートされている安全なハッシュアルゴリズムの1つに設定する必要がある。 /proc/crypto にリストされている shash アルゴリズムを参照。
.sp
低負荷の期間(例えば、月に1回)で定期的にオンライン照合をスケジュールすることを推奨する。また、「データ整合性に関する注意」も参照。
.RE
.PP
\fBallow\-remote\-read \fR\fB\fIbool\-value\fR\fR
.RS 4
DRBDが対向ノードから読み取ることを許可または禁止する。
.sp
プライマリノードのディスクが切り離されると、DRBDはクラスタ内の別のノードから読み書きを続ける。このために、up\-to\-date データを持つノードを検索し、見つかったノードを使用してオペレーションを再開する。しかし、対向ノードは複製ターゲットとしてのみ使用されるため、対向ノードからデータを読み戻すことが望ましくない場合もある。この場合、
\fBallow\-remote\-read\fR
を
\fBno\fR
にセットすることで、このノードが対向ノードからデータを読み取ることを禁止できる。
.sp
\fBallow\-remote\-read\fR
パラメータは DRBD 9\&.0\&.19 から利用可能である。デフォルトは
\fByes\fR
。
.RE
.SS "on セクションのパラメータ"
.PP
\fBaddress \fR\fB\fI[address\-family]\fR\fR\fB \fR\fB\fIaddress\fR\fR\fB:\fR\fB\fIport\fR\fR
.RS 4
接続エンドポイントのアドレスファミリ、アドレス、およびポートを定義する。
.sp
アドレスファミリは
\fBipv4\fR,
\fBipv6\fR,
\fBssocks\fR
(Dolphin Interconnect Solutions の「スーパーソケット」),
\fBsdp\fR
(Infiniband Sockets Direct Protocol),
\fBsci\fR
がサポートされる (\fBsci\fR
は
\fBssocks\fR
の別名である)。アドレスファミリが指定されていない場合、
\fBipv4\fR
が仮定される。\fBipv6\fR
アドレスファミリ以外は、 address に IPv4 アドレス表記を使用する(たとえば、1\&.2\&.3\&.4)。\fBipv6\fR
アドレスは角括弧で囲み、 IPv6 アドレス表記法を使用する(たとえば、 [fd01:2345:6789:abcd :: 1])。ポートは常に 1〜65535 の 10 進数で指定される。
.sp
各ホストで、ポート番号は各アドレスごとに一意でなければならない。ポートは共有できない。
.RE
.PP
\fBnode\-id \fR\fB\fIvalue\fR\fR
.RS 4
クラスタ内のノードの一意のノード識別子を定義する。ノード識別子は、ネットワークプロトコル内の個々のノードを識別し、ビットマップスロットをメタデータ内のノードに割り当てるために使用される。
.sp
ノード識別子は、クラスタがダウンしている場合にのみ、クラスタ内で再割り当てすることができる。構成内およびデバイスメタデータ内のノード識別子が、すべてのホスト上で一貫して変更されることが不可欠である。メタデータを変更するには、
\fBdrbdmeta dump\-md\fR
でダンプし、ビットマップスロット割り当てを調整し、\fBdrbdmeta restore\-md\fR
でメタデータを更新する。
.sp
\fBnode\-id\fR
パラメータは DRBD 9 以降存在する。その値の範囲は 0 から 16 である。デフォルトはない。
.RE
.SS "options セクションのパラメータ (リソース options)"
.PP
\fBauto\-promote \fR\fB\fIbool\-value\fR\fR
.RS 4
書き込みのためにデバイスをマウントまたはオープンする前に、リソースをプライマリに昇格させる必要がある。
.sp
DRBD 9 より前は、これを明示的に行う必要があった( "drbdadm primary")。DRBD 9 以降、
\fBauto\-promote\fR
を使用すると、デバイスの 1 つが書き込み用にマウントまたはオープンされるときに、リソースをプライマリに自動的に昇格させることができる。すべてのデバイスがアンマウントされるか、オープンしているユーザがいなくなると、すぐにリソースの役割がセカンダリになる。
.sp
自動プロモーションは、クラスタの状態が許可する場合にのみ成功する(つまり、明示的な
\fBdrbdadm primary\fR
コマンドが成功するなら)。それ以外の場合は、DRBD 9 より前と同様にデバイスのマウントまたはオープンが失敗する:
\fBmount\fR(2)
システムコールは、 errno を EROFS(読み取り専用ファイルシステム) に設定して失敗する。\fBopen\fR(2)
システムコールは、 errno を EMEDIUMTYPE(メディアタイプが間違っている) に設定してが失敗する。
.sp
\fBauto\-promote\fR
の設定に関係なく、デバイスが明示的に昇格された場合 (\fBdrbdadm primary\fR)、明示的に降格する必要がある(\fBdrbdadm secondary\fR)。
.sp
\fBauto\-promote\fR
は DRBD 9\&.0\&.0 から有効で、デフォルトは
\fByes\fR
である。
.RE
.PP
\fBcpu\-mask \fR\fB\fIcpu\-mask\fR\fR
.RS 4
DRBD のカーネルスレッドに CPU アフィニティマスクを設定する。CPU マスクは 16 進数で指定する。デフォルト値は 0 で、スケジューラがどの CPU 上でカーネルスレッドを実行するかを決定する。システムに存在しない
\fBcpu\-mask\fR
CPU番号は無視される。
.RE
.PP
\fBon\-no\-data\-accessible \fR\fB\fIpolicy\fR\fR
.RS 4
要求されたデータがローカルまたはリモートで使用できない場合に(たとえば、すべてのディスクに障害が発生した場合など)、どのように I/O 要求を処理するかを決定する。クォーラムが有効になっている場合は
\fBon\-no\-data\-accessible\fR
を
\fBon\-no\-quorum\fR
と同じ値に設定する必要がある。定義されたポリシーは次のとおり:
.PP
\fBio\-error\fR
.RS 4
errno を EIO に設定してシステムコールは失敗する。
.RE
.PP
\fBsuspend\-io\fR
.RS 4
リソースは I/O を中断する。下位レベルのデバイスを接続(再接続)したり、データにアクセスできる対向ノードに接続したり、\fBdrbdadm resume\-io \fR\fB\fIres\fR\fR
で DRBD に I/O を再開させたりすることで、 再開できる。データがない場合、 I/O を強制的に再開すると、
\fBio\-error\fR
ポリシーと同じ結果になる。
.RE
.sp
この設定は、DRBD 8\&.3\&.9 から有効である。デフォルトのポリシーは
\fBio\-error\fR
である。
.RE
.PP
\fBpeer\-ack\-window \fR\fB\fIvalue\fR\fR
.RS 4
各ノード上の各デバイスのために、DRBD は、ローカルデータと各対向ノードデバイスのリモートデータの差分のビットマップを維持する。例えば、それぞれが単一デバイスを有する 3 ノード構成 (ノード A、B、C) において、各ノードは、各対向ノードに対して 1 つのビットマップを維持する。
.sp
ノードが書き込みリクエストを受け取ると、書き込みノードのビットマップを更新する方法はわかるが、ノード間のビットマップを更新する方法はわからない。この例では、書き込みリクエストがノード A から B および C に伝搬するとき、ノード B および C はノード A と同じデータを有するが、両方が同じデータを有するか不明である。
.sp
是正措置として、書き込みノードは、時には、相手との間にどのような状態があるかを示すピアツーピアパケットを対向ノードに送信する。
.sp
\fBpeer\-ack\-window\fR
は、peer\-ack パケットを送信する前に、プライマリノードが送信するデータ量を指定する。値が小さいとネットワークトラフィックが増加する。値が大きいとネットワークトラフィックは減少するが、セカンダリノードのメモリ消費量が大きくなり、プライマリノードの障害後に、セカンダリノード間の再同期時間が長くなる。(注:peer\-ack パケットは、他の理由でも送信される場合がある。たとえば、メンバーシップの変更または
\fBpeer\-ack\-delay\fR
タイマーの満了など)。
.sp
\fBpeer\-ack\-window\fR
のデフォルト値は、2 MiB であり、単位はセクタである。このオプションは 9\&.0\&.0 から有効である。
.RE
.PP
\fBpeer\-ack\-delay \fR\fB\fIexpiry\-time\fR\fR
.RS 4
最後に終了した書き込みリクエストの後に
\fIexpiry\-time\fR
間、新しい書き込みリクエストが発行されない場合、peer\-ack パケットが送信される。タイマーが満了する前に新しい書き込みリクエストが発行されると、タイマーは
\fIexpiry\-time\fR
にリセットされる。(注:peer\-ack パケットは、他の理由でも送信される場合がある。たとえば、メンバーシップの変更または
\fBpeer\-ack\-window\fR
オプションなど)。
.sp
このパラメータは、リモートノードの再同期動作に影響を与える可能性がある。対向ノードは、 AL\-extent のロックを解除する peer\-ack を受信するまで待つ必要がある。対向ノード間の再同期操作は、これらのロックを待つ必要がある。
.sp
\fBpeer\-ack\-delay\fR
のデフォルト値は、100 ミリ秒であり、単位はミリ秒である。このオプションは 9\&.0\&.0 から有効である。
.RE
.PP
\fBquorum \fR\fB\fIvalue\fR\fR
.RS 4
有効にすると、レプリケートされたデータセットを変更するために、クラスタパーティションはクォーラムを必要とする。つまり、クラスタパーティション内のノードは、クラスタパーティションにクォーラムがある場合にのみプライマリに昇格できる。昇格すべきノードにディスクが直接接続されているすべてのノードが対象である。プライマリノードが書き込みリクエストを実行する必要があるが、クラスタパーティションがクォーラムを失った場合、 I/O をフリーズするか、または書き込みリクエストを拒否する(\fBon\-no\-quorum\fR
の設定に依存)。クォーラムが失われると、プライマリは常に
\fBquorum\-lost\fR
ハンドラを呼び出す。ハンドラは通知のためのものであり、リターンコードは無視される。
.sp
オプションの値は、
\fBoff\fR,
\fBmajority\fR,
\fBall\fR, または数値である。数値を設定する場合は、値がノード数の半分を超えていることを確認すること。クォーラムはデータの不一致を回避するメカニズムであり、2 つ以上の複製が存在する場合にフェンシングの代わりに使用されるときがある。デフォルトは
\fBoff\fR
である。
.sp
切断されたノードがすべて outdated(無効) としてマークされている場合、パーティションのサイズに関係なく、常にクォーラムを持つ。つまり、すべてのセカンダリノードを正常に切断すると、1 つのプライマリが動作し続ける。1 つのセカンダリが切断された瞬間に、切断されたすべてのセカンダリノードがパーティションを形成すると仮定する。パーティションが他のパーティションよりも小さい場合、この時点ではクォーラムは失われる。
.sp
ディスクレスノードがクォーラムを常に取得できるようにする場合、\fBmajority\fR,
\fBall\fR
オプションは使用しないことを推奨する。クラスタ内のディスクフルノードの完全な数を決定するための DBRD のヒューリスティックな方法は正確でないため、絶対数を指定することを推奨する。
.sp
クォーラムの実装は、DRBD カーネルドライバのバージョン 9\&.0\&.7 から有効である。
.RE
.PP
\fBquorum\-minimum\-redundancy \fR\fB\fIvalue\fR\fR
.RS 4
このオプションは、パーティションがクォーラムを獲得できるように UpToDate のディスクを持つノードの必要最小限の数を設定する。これは、素の
\fBquorum\fR
とは異なる要件である。
.sp
オプションの値は、
\fBoff\fR,
\fBmajority\fR,
\fBall\fR, または数値である。数値を設定する場合は、値がノード数の半分を超えていることを確認すること。
.sp
ディスクレスノードがクォーラムを常に取得できるようにする場合、\fBmajority\fR,
\fBall\fR
オプションは使用しないことを推奨する。クラスタ内のディスクフルノードの完全な数を決定するための DBRD のヒューリスティックな方法は正確でないため、絶対数を指定することを推奨する。
.sp
このオプションは、DRBD カーネルドライバのバージョン 9\&.0\&.10 から有効である。
.RE
.PP
\fBon\-no\-quorum \fR\fB{io\-error | suspend\-io}\fR\fB \fR
.RS 4
By default DRBD freezes IO on a device, that lost quorum\&. By setting the
\fBon\-no\-quorum\fR
to
\fBio\-error\fR
it completes all IO operations with an error if quorum is lost\&.
.sp
通常、\fBon\-no\-data\-accessible\fR
は
\fBon\-no\-quorum\fR
と同じ値に設定する。
.sp
\fBon\-no\-quorum\fR
オプションは、DRBD カーネルドライバのバージョン 9\&.0\&.8 から有効である。
.RE
.PP
\fBon\-suspended\-primary\-outdated \fR\fB{disconnect | force\-secondary}\fR\fB \fR
.RS 4
This setting is only relevant when
\fBon\-no\-quorum\fR
is set to
\fBsuspend\-io\fR\&. It is relevant in the following scenario\&. A primary node loses quorum hence has all IO requests frozen\&. This primary node then connects to another, quorate partition\&. It detects that a node in this quorate partition was promoted to primary, and started a newer data\-generation there\&. As a result, the first primary learns that it has to consider itself outdated\&.
.sp
When it is set to
\fBforce\-secondary\fR
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
\fBstatus\fR
and
\fBevents2\fR
under the name
\fBforce\-io\-failures\fR\&.
.sp
The
\fBdisconnect\fR
setting simply causes that node to reject connect attempts and stay isolated\&.
.sp
The
\fBon\-suspended\-primary\-outdated\fR
option is available starting with the DRBD kernel driver version 9\&.1\&.7\&. It has a default value of
\fBdisconnect\fR\&.
.RE
.SS "startup セクションのパラメータ"
.PP
このセクションのパラメータは、DRBD init スクリプトでシステム起動時の DRBD の動作を定義する。システムが起動し、実行後には効果がない。
.PP
\fBdegr\-wfc\-timeout \fR\fB\fItimeout\fR\fR
.RS 4
システムが停止したとき、クラスタが単一ノードで構成されている場合、すべてのピアが接続されるまで待機する時間を定義する。このパラメータは通常、
\fBwfc\-timeout\fR
より小さい値に設定する。再起動前に到達できなかった対向ノードが再起動後に到達できる可能性は低いため、待機が助けになる可能性は低いということである。
.sp
タイムアウトは秒単位で指定する。デフォルト値は 0 であり、無限のタイムアウトを意味する。\fBwfc\-timeout\fR
パラーメータも参照。
.RE
.PP
\fBoutdated\-wfc\-timeout \fR\fB\fItimeout\fR\fR
.RS 4
システムが停止したとき、すべての対向ノードが outdated(無効) であった場合、すべての対向ノードが接続されるまで待機する時間を定義する。このパラメータは通常、
\fBwfc\-timeout\fR
より小さい値に設定する。outdated(無効) の対向ノードがその間にプライマリになることはできないので、以前に生存していたノードを待つ必要がないということである。
.sp
タイムアウトは秒単位で指定する。デフォルト値は 0 であり、無限のタイムアウトを意味する。\fBwfc\-timeout\fR
パラーメータも参照。
.RE
.PP
\fBstacked\-timeouts\fR
.RS 4
スタックデバイスでは、通常は
\fBwfc\-timeout\fR
および
\fBdegr\-wfc\-timeout\fR
は無視される。これらのタイムアウト値には、代わりに\fBconnect\-int\fR
の 2 倍のタイムアウト値が使われる。\fBstacked\-timeouts\fR
パラメータを指定すると、DRBD はスタックデバイスに対しても
\fBwfc\-timeout\fR
および
\fBdegr\-wfc\-timeout\fR
にもとづいて動作するようになる。スタックデバイスの対向ノードが多くの場合に利用できないケースや対向ノードがプライマリにならない場合に限って、このオプションを指定すべきである。このパラメータを誤って使用すると、スプリットブレインにつながる可能性がある。
.RE
.PP
\fBwait\-after\-sb\fR
.RS 4
このパラメータは、スプリットブレイン状況が検出された場合でも、DRBD が init スクリプトで待機し続けるため、ノード間の接続が拒否される。
.RE
.PP
\fBwfc\-timeout \fR\fB\fItimeout\fR\fR
.RS 4
すべての対向ノードが接続されるまで init スクリプトが待機する時間を定義する。これは、DRBD リソースを管理できないクラスタマネージャと組み合わせて使用\:\:する場合に便利である。クラスタマネージャが起動すると、DRBD リ ソースはすでに起動して実行されている。Pacemaker などのより優れたクラスターマネージャを使用すると、クラスターマネージャが DRBD リソースを制御できるようになる。タイムアウトは秒単位で指定する。デフォルト値は 0 であり、無限のタイムアウトを意味する。\fBdegr\-wfc\-timeout\fR
パラーメータも参照。
.RE
.SS "volume セクションのパラメータ"
.PP
\fBdevice /dev/drbd\fR\fB\fIminor\-number\fR\fR
.RS 4
複製されたブロックデバイスのデバイス名とマイナー番号を定義する。これは、アプリケーションがアクセスするデバイスである。ほとんどの場合、デバイスは直接使用されるのではなく、ファイルシステムとして使用される。このパラメータは必須で、標準のデバイス命名規則が適用される。
.sp
このデバイスに加えて、udev は、
\fB/dev/drbd/by\-res/\fR\fB\fIresource\fR\fR\fB/\fR\fB\fIvolume\fR\fR,
\fB/dev/drbd/by\-disk/\fR\fB\fIlower\-level\-device\fR\fR
シンボリックリンクをデバイスに作成する。
.RE
.PP
\fBdisk\fR {[disk] | \fBnone\fR}
.RS 4
DRBD が実際のデータを格納するために使用する下位ブロックデバイスを定義する。複製された DRBD デバイスが設定されている間は、下位レベルのデバイスを直接使用してはならない。読み取りアクセス専用のツール
\fBdumpe2fs\fR(8)
や同様のツールも許可されない。キーワード
\fBnone\fR
は、下位ブロックデバイスが設定されていないことを指定する。下位レベルデバイスの継承もこれにより上書きされる。
.RE
.PP
\fBmeta\-disk internal\fR,
.br
\fBmeta\-disk \fR\fB\fIdevice\fR\fR,
.br
\fBmeta\-disk \fR\fB\fIdevice\fR\fR\fB [\fR\fB\fIindex\fR\fR\fB]\fR
.RS 4
複製されたブロックデバイスのメタデータが存在する場所を定義する。
\fBinternal\fR
は、下位レベルのデバイスにデータとメタデータの両方が含まれていることを意味する。別のデバイスに格納されている場合は、これを指定する。
.sp
\fIindex\fR
を指定すると、複数のレプリケートされたデバイスが同じメタデータデバイスを共有でき、それぞれ別のインデックスを使用する。各インデックスは 128 MiB のデータを占有し、2 つのクラスタノードで最大 4 TiB の複製されたデバイスサイズに対応する。メタデータデバイスは共有しないで、必要に応じて lvm ボリュームマネージャを使用してメタデータデバイスを作成することを推奨する。
.sp
\fIindex\fR
を指定しない場合、下位レベルのデバイスのサイズによってメタデータのサイズが決定される。必要なサイズは 36 KiB +(下位デバイスのサイズ) / 32K *(ノード数\-1) である。もしメタデータデバイスがそれよりも大きい場合、余分なスペースは使用されない。
.sp
このパラメータは、\fBdisk\fR
が
\fBnone\fR
以外に設定されている場合は必須で、\fBdisk\fR
が
\fBnone\fR
に設定されている場合は無視される。\fBdisk\fR
パラメータなしの
\fBmeta\-disk\fR
パラメータは使用できない。
.RE
.SH "データ整合性に関する注意"
.PP
DRBD は、データの整合性チェックのための 2 つの異なるメカニズムをサポートする。
\fBdata\-integrity\-alg\fR
ネットワークパラメータを使用すると、ネットワーク経由で送信されたデータにチェックサムを追加できる。もう 1 つのオンライン照合メカニズム(\fBdrbdadm verify\fR,
\fBverify\-alg\fR
パラメータ)を使用すると、ディスク上のデータの違いをチェックできる。
.PP
両方のメカニズムは、データが I/O 中に変更された場合(つまり、ネットワークを介して送信されている間、またはディスクに書き込まれている間)、誤検出を引き起こす可能性がある。これは常に問題を示すとは限らない。たとえば、一部のファイルシステムやアプリケーションでは、特定の操作のために I/O 下のデータを変更する。スワップ領域も I/O 中に変更される可能性がある。
.PP
ネットワークデータの整合性チェックは、データの送信後に送信側のチェックサムを検証することによって、 I/O 中のデータ変更を識別しようとする。不一致が検出された場合は、エラーを記録する。また、受信側も、不一致を検出するとエラーをログに記録する。したがって、受信側でのみ記録されるエラーはネットワーク上のエラーを示し、両側に記録されたエラーは I/O でのデータ変更を示す。
.PP
直近の例 (2007 年) では系統的なデータ損傷のケースがあり、特定の種類のギガビット NIC の TCP オフロードエンジンとドライバのバグが原因であった。データの破損が、コアメモリからカードへの DMA 転送で発生していた。TCP チェックサムはカード上で計算されたため、 TCP/IP プロトコルチェックサムではこの問題を検出できませんでした。
.SH "VERSION"
.sp
このドキュメントは DRBD バージョン 9\&.0\&.0 向けに改訂されている。
.SH "AUTHOR"
.sp
Written by Philipp Reisner and Lars Ellenberg \&.
.SH "REPORTING BUGS"
.sp
Report bugs to \&.
.SH "COPYRIGHT"
.sp
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\&.
.SH "SEE ALSO"
.PP
\fBdrbd\fR(8),
\fBdrbdsetup\fR(8),
\fBdrbdadm\fR(8),
\m[blue]\fBDRBD User\*(Aqs Guide\fR\m[]\&\s-2\u[1]\d\s+2,
\m[blue]\fBDRBD Web Site\fR\m[]\&\s-2\u[3]\d\s+2
.SH "NOTES"
.IP " 1." 4
DRBD User's
Guide
.RS 4
\%http://www.drbd.org/users-guide/
.RE
.IP " 2." 4
オンライン利用カウンター
.RS 4
\%http://usage.drbd.org
.RE
.IP " 3." 4
DRBD
Web Site
.RS 4
\%http://www.drbd.org/
.RE