SANストレージへの物理接続を共有する2台のRHEL6サーバーがあります(つまり、両方のサーバーがこれを認識できます/dev/sdb
実行時fdisk -l
)。
私の目標は、両方のサーバーが同時にext4にアクセスすることではありません。実際、サーバーの1つがほとんどの時間それをマウントします。最初のサーバーに障害が発生した場合にのみ、他のサーバーにこのext4ファイルシステムをマウントしてもらいます。
私はすでに論理ボリュームを作成し、両方のサーバーがこのファイルシステムを正常にマウントできることをテストしました。マウントする前に、ボリュームが他のサーバーにマウントされていないことを確認するスクリプトを作成します。
私の質問は、サーバーが交代でこのようなext4ファイルシステムをマウントするとき、私が見逃している根本的な問題があるのでしょうか? OSのボリュームにチェックや「メモ」があるのではないかと心配しています...
この方法でext4を使用することに問題はありません。実際、これは、高可用性(HA)構成のファイルサーバー(デュアルホームNFSサーバーやLustreなどの大規模クラスターファイルシステムなど)で一般的に行われます。 ext4機能もあります-マルチマウント保護(mmp
)は、HAソフトウェアと組み合わせて使用することを目的としていますreduce 2つにマウントされることでファイルシステムが破損するリスク同時にノード。
とはいえ、独自に作成するのではなく、Corosync/Pacemaker(RHEL/CentOSにデフォルトで含まれている)などの既存のHAソフトウェアを使用してストレージを管理する必要があります(これはすべてのデータを失うためのレシピです)。 STONITHおよびpowerman
(まれにCorosync/Pacemakerが失敗した場合のバックアップ用)のハードウェア電源制御(例:mmp
)とともに、単一のext4ファイルシステムを2つ以上のサーバーに安全にマウントできます。一度に1つのサーバー。
あなたの質問からは明らかではありませんでしたが、サーバー間で同時にsingleディスク上のLV /パーティションを共有することはあまり安全ではないことに注意してください。一度にアクセスできるのは、いずれかのサーバーのディスク全体のみです。
実際、ファイルシステムをアンマウントして別のOSインストールからマウントするときに何度も行った一般的なシナリオがあります。それは「回復」と呼ばれます。
リカバリを行うときはいつでも、たとえばCDのOSまたは他のコンピュータのインストールから起動し、ファイルシステムに変更を加えます。それをアンマウントして元のOSから起動すると、すべてが正しく機能します。
このシナリオは、私(そしておそらくすべての経験豊富なLinux管理者)が何十回も問題なく実行した標準的なメンテナンスタスクのようなものです。
さらに、たとえば、USBドライブをあるコンピューターにマウントし、マウントを解除して、別のコンピューターに問題なくマウントすることもできます。
もちろん、ファイルシステムに関する注意事項もいくつかあります。特定のインストールに依存するのではなく、重要なFS "マウントオプション、ファイルシステムの状態-クリーンなど..."などの属性を保存します。
電話をかけると、これらの属性について読むことができます
男tune2fs
ファイルシステムを正しくアンマウントして別のOSにマウントする場合の状況については、正しいロックメカニズムなどについて心配するほど心配する必要はありません。Ext3/ 4ファイルシステムはクラスタリング用に作成されておらず、作成していません。なぜそうしようとしているのか理解してください。
無料のオープンソースで、この種の状況のために特別に作成されたLinuxカーネルの代替OCFS2(Oracle Cluster File System 2)があります。 OCFS2を使用せず、むしろ自分で行う理由がわかりません-テスト済みの無料のソリューションを使用できる場合は、(「不明なバグがある」と読む)ロックシステムを作成しました。
ファイルシステムが正常にアンマウントされている限り、これら2つのホストが今説明した方法でそのデバイスを共有できない理由はありません共通のuserId(UID)がある場合 AliceがユーザーID1001の場合ホストAで、ボブがホストBのユーザーID 1001である場合、ホストAのアリスが所有する/ mnt/yourshareddevice/somedirectoryにマウントされた/ dev/sdbのディレクトリは、ホストBのボブが所有します。
個人的には、従来のネットワークファイルストレージソリューション(NFS、SMB、Glusterなど)を介してそのデバイスを共有する方が便利だと思いますが、あなたが説明していることは実行可能で機能的です。