
2 台のサーバーを介した高可用性 NFS の基本的なプロセスは何ですか? 2 台のサーバー間でフローティング IP をフェイルオーバーするためにハートビートを使用しているとします。次に、その IP に基づいて NFS 共有をマウントするサードパーティ サーバーがあります。これは、ファイルを操作し、フェイルオーバーが発生した場合に NFS がアクティブなままになり、NFS と IP が他のサーバーに切り替えられるため、一時的に使用できなくなるという考え方です。
しかし、ワークフローについて疑問があります。現時点では、手動フェイルオーバーでは、ノード 1 を drbd プライマリとして設定し、drbd をフローティング IP で nfs エクスポートとしてマウントできます。その後、フェイルオーバーする場合は、drbd ドライブをアンマウントし、サーバーをセカンダリに設定してから、ノード 2 をプライマリに設定し、drbd nfs をマウントすると、ノード 2 に新しい IP が表示されます。
これは正しい考えでしょうか? nfs/drbd マウントを正常にアンマウントしようとすると、nfs がまだアクセスしているため (つまり、サードパーティのサーバーが共有にアクセスしている場合)、失敗する可能性があります。
手動フェイルオーバーと同様のプロセスを実行し、すぐにフェイルオーバーする方法はありますか?
答え1
あなたのアプローチに従うと、フェイルオーバーを実行するときに nfs サービスを停止することを念頭に置く必要があるため、手順は次のようになります。
- ノード2のNFSサービスを停止する
- アンマウントNFSドライブノード2上
- サービスIPアドレスをノード2からノード1へ移動します。
- マウントNFSドライブノード1上
- ノード1でNFSサービスを開始する
他にも選択肢はあります。例えば、クラスタファイルシステム(RedHatのGFS)、このようにしてマウントすることができますNFSドライブ両方のサーバーで。障害が発生した場合にノードからノードへ移動するか、アクティブ/アクティブになるように何らかの方法でバランスをとるかは、あなた次第です。