web-dev-qa-db-ja.com

同じext4ディスクを2つのホスト(1つは読み取り専用)からマウントできますか?

同じディスクを2つの異なるサーバー(iSCSI vloume)のext4ファイルシステムでマウントすると、ディスク上のデータが破損する可能性があることを知っています。私の質問は一方のサーバーがディスクを読み取り専用でマウントし、もう一方のサーバーが読み取り/書き込みでマウントする場合、違いはありますか?

OCFS2などがこれに使用でき、NFSでディスクをエクスポートして他のサーバーにアクセスできることを知っていますが、私が提案する設定が機能するかどうかを知りたいです。

17
Fernando

いいえ。キャッシュのため、読み取り専用クライアントでは一貫した結果が得られません。それは間違いなくそれのために設計されていません。 IOエラーがアプリケーションに返されることが予想されます。おそらくコードにいくつかの見落としがあるため、カーネルクラッシュやプロセスで使用されているメモリの破損を引き起こす可能性があります。

しかし、最も重要なのは、ext4は読み取り専用のマウントでもジャーナルを再生することです。そのため、読み取り専用マウントは、基礎となるブロックデバイスに書き込みを行います。 bothマウントが読み取り専用だったとしても安全ではありません:)。

26
sourcejedi

これにより、データの破損を回避できますが、おそらくあなたがやりたいことではありません。別のノードにボリュームを読み取り専用でマウントする問題に気づいたことはありません。通常、roノードで一致しないものが「予期しない空きiノード」をスローするだけの場合でも、/ var/log/messagesにe2fsckなどを実行してください。重要でないファイルシステム( "/ opt/mySpecialmount")について何かが恐ろしく予想外の場合、通常、Linuxはボリュームを読み取り専用でマウントします(これはすでに存在しています)。キャッシュがどのような影響を与えるかについて非常に心配している場合は、何らかのdrop_caches/vfs_cache_pressureレジームを実行してみることができます。

ジャーナルの再生を回避するには、マウント引数に「noload」を追加し、errors = remount-roと一緒に追加します(注意のために誤るだけです)。

とは言っても、読み取り専用でマウントしても問題ない場合は、おそらく他のノードのリファレンスとして使用している可能性があります。その場合、NFSまたはsmbfsが問題を解決し、ext3 /よりも少し並行性を高めるように設計されています。 4になります。パフォーマンスが必要な場合は、クラスター化されたファイルシステムを調べることができます(管理オーバーヘッドは少し増えますが、パフォーマンスが本当に必要な場合はそこにあります)。

0
Bratchley