2台の異なるサーバー(iSCSI vloume)からのext4ファイルシステムで同じディスクをマウントすると、ディスク上のデータが破損する可能性が高いことを知っています。私の質問は、サーバーの1つがディスクを読み取り専用でマウントし、他のサーバーがディスクを読み取り/書き込みでマウントすると、違いが生じるのでしょうか?
これにはOCFS2などを使用でき、NFSでディスクをエクスポートして他のサーバーにアクセスできることは知っていますが、提案するセットアップが機能するかどうかを知りたいです。
2台の異なるサーバー(iSCSI vloume)からのext4ファイルシステムで同じディスクをマウントすると、ディスク上のデータが破損する可能性が高いことを知っています。私の質問は、サーバーの1つがディスクを読み取り専用でマウントし、他のサーバーがディスクを読み取り/書き込みでマウントすると、違いが生じるのでしょうか?
これにはOCFS2などを使用でき、NFSでディスクをエクスポートして他のサーバーにアクセスできることは知っていますが、提案するセットアップが機能するかどうかを知りたいです。
回答:
いいえ。キャッシュのため、読み取り専用クライアントで一貫した結果が得られません。それは間違いなくそれのために設計されていません。IOエラーがアプリケーションに返されることを期待できます。おそらくコードにはまだいくつかの見落としがあり、それがカーネルクラッシュや、任意のプロセスで使用されるメモリの破損を引き起こす可能性があります。
しかし、最も重要なことは、ext4は読み取り専用マウントでもジャーナルを再生します。そのため、読み取り専用のマウントは、基礎となるブロックデバイスに引き続き書き込みます。両方のマウントが読み取り専用であっても安全ではありません:)。
blockdev --setro /dev/sda1
。
sudo mount -t ext4 -o ro,loop,noload /dev/vda /mnt/
digital-forensics.sans.org/blog/2011/06/14/...を
これによりデータの破損を回避できますが、おそらくあなたがしたいことにはならないでしょう。ボリュームを別のノードに読み取り専用でマウントする際に問題に気付いたことはありません。通常、roノードで「予期しない空きiノードをスローするだけで、e2fsckを実行する」などが/ var / log / messagesに一致しない場合でも。クリティカルではないファイルシステム( "/ opt / mySpecialmount")に関して予想外のことが予想される場合、通常、Linuxはボリュームを読み取り専用でマウントします(これは既に存在します)。キャッシングの効果を非常に心配している場合は、何らかのdrop_caches / vfs_cache_pressureレジームを実行してみてください。
ジャーナルが再生されないようにするには、マウント引数に「noload」を追加し、errors = remount-roとともに実行します(注意するだけでエラーが発生します)。
ただし、読み取り専用でマウントしても問題ない場合は、おそらく他のノードへの参照としてのみ使用できます。この場合、NFSまたはsmbfsが問題を解決し、ext3 / 4になります。パフォーマンスが必要な場合は、クラスター化されたファイルシステムを調べることができます(管理オーバーヘッドはほとんどありませんが、パフォーマンスが本当に必要な場合はそこにあります)。
man mount
。ファイル内の一貫性のないデータを検出および/または許容するアプリケーションがあると想像できますが、これまでにそのような警告については言及していませんでした:)。