したがって、LVMとRAIDは、複数の物理HDDにまたがる可能性がある仮想ストレージデバイスを作成できます。論理ボリュームまたはRAIDデバイスを作成した後に通常行うことは、ファイルシステムを使用してデバイスをフォーマットすることです。
ext4がクラスタファイルシステムではない場合、mkfs.ext4が機能するのはなぜですか?
私が知る限り、各HDDの各パーティションには特定の種類のローカルファイルシステム(ext2、ext3、ext4、ntfs、fat32...)があります。複数のHDDのパーティションを結合する場合、クラスタファイルシステムは必要ありませんか?
クラスタファイルシステムを使用せずに複数のプロセスが同じファイルを変更しようとするとどうなりますか?
ベストアンサー1
クラスタファイルシステムは、基本的に独立して同じストレージにアクセスする複数のコンピュータを処理できるシステムです。したがって、たとえば、デフォルトのストレージが予期せず変更される可能性がある場合(コンピュータの1つがここにデータを書き込むため)を処理する必要があります。
これをRAID1と比較してみてください(例えば、理解しやすいので)。ファイルシステムで「デバイスAのセクタYにデータXを書き込む」要求を受け入れてから、ゾーンYに書き込むことがすべてです。あるいは、ファイルシステム要求「デバイスAからセクタYを読み込む」は、BまたはC(まったく同じデータを含む)からセクタYを読み込みます。これはファイルシステムに完全に透過的です。 RAIDは、ブロックデバイスが動作すると予想されるものとまったく同じように動作するブロックデバイスを提供します。
デフォルトでは、ブロックデバイスには次の機能が必要です(正式な定義ではありません)。
- セクタを任意の順序で読み書きできます。
- データDをセクタXに書き込む場合は、後でセクタXを読み込むたびにDを返す必要があります。
これがRAIDデバイスが行うことです(実際にはそれがRAIDデバイスが行うことです)。より良いもの物理ディスクより)。これは、クラスタファイルシステムで使用される共有ディスクの場合には該当しません。特に、他のシステムが同時にそのセクタにデータD2を記録している可能性があるので、第2のポイントに違反する。
この点で、LVMは単にセクタ番号を再マッピングしますが、ブロックデバイスの動作をある程度維持するという点でRAIDと同様に機能します。たとえば、セクタ1-100をデバイスAに送信し、セクタ101-200をデバイスBに送信できますが、これはまだその動作を維持します(もちろん、AとBが動作している場合)。