RawディスクデバイスにDRBDをセットアップしようとしています/dev/sdb
パーティションテーブルなし、LVMスタックPV/VG/LVなし
このディスクは仮想であり、私が使用するハイパーバイザーはオンザフライでディスクを拡張できるため、DRBDファイルシステムを拡張するときにLVMの操作やパーティションの再作成に煩わされたくありません。
私のリソース定義はより単純にすることはできません
resource data {
device /dev/drbd1;
meta-disk internal;
disk /dev/sdb;
on node1 {
address 10.10.10.16:7789;
}
on node2 {
address 10.10.10.17:7789;
}
}
メタデータ作品を作成する
# drbdadm create-md data
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
しかし、アタッチ操作は失敗します
# drbdadm attach data
1: Failure: (127) Device minor not allocated
additional info from kernel:
unknown minor
Command 'drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal' terminated with exit code 10
エラーメッセージは、コマンドがパーティションテーブルインデックスをデバイスのマイナーコードとして期待しているように聞こえます。
RawデバイスをDRBDリソースに接続するにはどうすればよいですか?
Debian DRBDパッケージの非常に特殊なケースでは、「データのアタッチ」を操作する必要はありません。
以下は、DebianでDRBDを起動して実行するための最小限の手順です。
/etc/drbd.d/data.res
を定義するために、両方のノードでリソースファイル/dev/drbd1
を作成します(このボリューム番号1
をビットマップのクリア操作で思い出してください!)drbdadm create-md data
を呼び出すsystemctl start drbd.service
Connected
の状態をdrbdadm cstate data
で確認します。 そうでない場合は、先に進まないでくださいサービスの起動またはネットワーク接続の問題が解決されるまで。primary
ノードのみで、ビットマップをクリアして、無駄な初期同期を防止します:drbdadm -- --clear-bitmap new-current-uuid data/1
(最後のパラメーターを気にする:resourceName/volumeNumber
)primary
ノードのみ、ノードをprimary
として昇格:drbdadm primary data
その時点から、primary
ノードでは、blockdev
やmkfs
などの通常のブロック操作で/dev/drbd1
デバイスを使用できます。
注意してビットマップのクリア操作をトリガーすると、セカンダリノードのデータが回復不能になります。ちなみに、セカンダリノードストレージが数時間にわたって完全に書き込まれるのを防ぎ、仮想化レイヤーがストレージにブロックを割り当てるように強制するため、初期セットアップには本当に便利です。
drbdadm attach data
は、メタデータの作成後に使用する唯一のコマンドではありません。
デバイスを起動するには、次のいずれかの手順が機能します。
# drbdadm create-md data
# drbdadm up data
-または-
# drbdadm create-md data
# drbdsetup-84 new-resource data
# drbdsetup-84 new-minor data 1 0
# drbdmeta 1 v08 /dev/sdb internal apply-al
# drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal
# drbdsetup-84 connect data ipv4:10.10.10.16:7789 ipv4:10.10.10.17:7789 --protocol=C
これを完了すると、接続状態が「接続済み」で、ディスク状態が「不整合/不整合」のデバイスができます。これは常に、または両方のノードで新しいメタデータを作成した後にのみ当てはまります。そこから、プライマリに昇格するノードを1つ選択するだけで、DRBDがプライマリから同期されます->セカンダリ:
# drbdadm primary data --force
通常の状況では、今後「--force」を使用してDRBDデバイスを昇格させる必要はありません。
しかし、あなたも言った:
このディスクは仮想であり、私が使用するハイパーバイザーはオンザフライのディスク拡張を許可しているので、DRBDファイルシステムを拡張するときにLVMの操作やパーティションの再作成に煩わされたくありません。
これはおそらくDRBDでは機能しません。 DRBDはそのメタデータをブロックデバイスの最後に配置し、そのメタデータでブロック数(およびその他)が追跡されます。バッキングブロックデバイスを動的に拡張すると、問題が発生する可能性があります。