状態:
- mdadmを使用して新しいRAID1アレイを作成しています。
私はLVMやdm-cryptなどの追加のレイヤーを使用しません。
これで、メタデータバージョン1.2がデフォルトバージョンであることが確認されました。システムの他のすべての部分(grub2など)がサポートしている場合は、このバージョンが推奨バージョンであることがわかります。これが私の状況です。
- マンページや他の多くのソースを通じて、メタデータ1.2は、スーパーブロックがディスクの先頭に保存されることを意味しています。最初から4KiBです。
- 以前に作成したRAID1アレイは、ディスクの最後にスーパーブロックを格納するメタデータバージョン0.90を使用しました。上書きを防ぐために、ディスクの最後の部分を分割しませんでした。
私の意図は、GPTパーティションテーブルを使用して新しいRAID1アレイを分割することです。最初のパーティションはセクタ2048で始まります。セクタが512バイトの場合、実際のパーティションはディスクの先頭から1024KiBで始まるという意味です。
質問:
- バージョン1.2スーパーブロックを上書きしないように予防措置を講じる必要がありますか?それとも、セクタ2048で最初のパーティションを起動しても比較的安全ですか?
- grubがディスクの先頭に書き込むことを想像してみますが、おそらく最初の512バイトしか必要ありません。ディスク上でこのバイトの後に書き込む他のプログラムはありますか?
- 最初のセクタの終わり(セクタ2048まで)の後の部分はディスクの「規制された」部分ですか?他のプログラムは、書き込みを開始する前に他のデータがあるかどうかを確認しますか?これに関する具体的な情報が見つかりません。
私は、あなたがdd
スーパーブロックを破ることができることを知っています;-)同様ですmdadm --zero-superblock
。私はLVMのような他のユーティリティやファイルシステム層がスーパーブロックが保存されているディスクの特定の部分を上書きしていることをすぐに気付かないかもしれないことにもっと興味があります。
答え1
それはレイヤーについてです。
ディスク(最下位レベル)があります。このディスクにパーティションテーブルを配置します。これに基づいてRAIDを配置します。 RAIDにはLUKSを入れます。 LUKSにLVMを追加します。 LVMでは、最後はファイルシステム(最も高いレベル)です。
Disk -> Partition -> RAID -> LUKS -> LVM -> Filesystem
これらのレイヤーの一部をスキップまたは並べ替えることができます。通常、ディスクで始まりファイルシステムで終わり、その間にオプションがあります。
これまでは問題ありません。すべてが大丈夫でしょう。
各層が尊重される限り、競合はありません。各レイヤーにはメタデータがありますが、各レイヤーはメタデータを損なうことなく使用できるコンテンツのみを提供します。sector 0
パーティションテーブル自体と競合する可能性があるため、パーティションを最初から作成することはできません。デバイスmd
に記録してmd
メタデータを損傷することはできません。ファイルシステムを埋めると、ファイルシステムのメタデータまたはその下のレイヤーが破損することはありません。各レイヤーが独自に管理されるからです。
したがって、何も心配する必要はありません。
もはやこれらの層を尊重しない限り。
RAIDとGPTに言及しました。 GPTパーティションにRAIDを配置するか、RAIDにGPTを配置できます。あるレイヤーが別のレイヤーの上にある場合、まったく問題はありません。しかし、同時に2つのレイヤーを並べて使用しようとするとどうなりますか? GPTを使用してディスクを分割し、ディスク全体をRAIDのメンバーにします。
本当にうまくいきません。
GPTには開始と終了にメタデータがあります。 RAIDには開始と終了にメタデータがあります(md
メタデータのバージョンによって異なるため)。 RAIDメタデータはGPTを完全に上書きできます(その逆も同様)。それとも、オフセットが少し異なるため、実際には動作しているように見えるかもしれませんが、それでもひどい状況です。
同時に別のレイヤーを使用したい場合は、どこに配置しますか? RAIDに配置すると、パーティションが作成された境界にまたがる可能性があります。パーティションに挿入するとRAIDレイヤーをバイパスするため、ミラーリングされません。データが破損した場合、RAIDはデータが同期されたと信じています。
互いに協力して補完する必要があるとき、突然階層が互いに戦うようになります。
答え2
これについて心配する必要はありません。ボリュームのデータはメタデータと重複しません。そうでなければ、管理するのは非常に難しいでしょう!たとえば、各ディスクの外観は次のようになります(拡張されていません)。
[--------------------- sda ------------------------]
[---][------------------ sda1 ---------------------]
[---][----------------------------------------]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one copy of the data in /dev/md0
^^^^ superblock
^^^^ partition table
パーティションテーブルはパーティションには含まれず、RAIDメタデータはRAIDボリュームには含まれません。コンテンツをRAIDボリュームに配置すると、コンテンツはメタデータが占有しない部分を占有します。特別な準備をする必要はありません。