ダウンタイムを最小限に抑えながら、あるサーバーから別のサーバーにデータを移行する方法は?

ダウンタイムを最小限に抑えながら、あるサーバーから別のサーバーにデータを移行する方法は?

私はかなり大きなユーザーベース(約10,000人のユーザー)を持ち、各ユーザーのクォータが約GBのmaildir形式を使用してdovecotを実行するサーバーを持っています。

物理メールディレクトリは、NFSを介してEメールサーバーにマウントされている別のストレージシステムに保存されます。

ストレージシステムのパフォーマンス上の問題により、新しいストレージシステムにアップグレードしています。古いシステムから新しいシステムにデータを直接同期しましたが、プロセスにはかなり長い時間がかかります(16時間以上)。

私たちの計画は、rsyncを継続的に実行し、2番目のタスクが完了したらすぐにメールサーバーからdovecot / qmail / etcを削除し、インストール場所を新しいシステムに切り替えてから電子メールを復元することです。運が良ければダウンタイムは合計1~2分に過ぎません。問題は、最後に、rsyncが実行されたときに電子メールがまだコピーされないことです。したがって、これを軽減するために、切り替え後に通常使用される --delete フラグを使用せずに再度 rsync を実行します。これにはいくつかの問題がありますが、私の視点で最大の問題は、ユーザーが移行直前に持っていた電子メールにアクセスできないことです。

ダウンタイムを最小限に抑え、時間を無駄にせずにこれを行う方法について提案がある人はいますか?以前のストレージシステムはNetAppであり、新しいシステムは大きな山が接続されたfreebsdボックスであり、電子メールサーバーはUbuntuです。

移行が完了するまで、ユーザーの観点からストレージシステムをネストする方法があるはずですが、どうすればよいかわかりません(可能であれば)

ベストアンサー1

あなたは次のようにこれを行うことができますオブまたは連合ファイルシステム

どちらのファイルシステムも「共同」ファイルシステムです。あなたは次のことをします

  • 既存のNASをインストールしてください。/mnt/old
  • 新しいNASを次の場所にインストールします。/mnt/new
  • ここ/mnt/nasに統合ファイルシステムをマウントします。/mnt/new/mnt/old
  • そのペアへのすべてのアクセスは/mnt/nas/foo/bar最初に照会され、/mnt/new/foo/bar存在しない場合は再び置き換えられます/mnt/old/foo/bar。ファイルを変更すると、元のファイルがコピーされ、変更されたバージョンがコピー/mnt/old/mnt/new/mnt/newます。
  • rsync統合ファイルシステムをマウントしたら、fromから/mnt/old実行できます/mnt/new。これはシステムの実行中に実行できます。 rsyncがファイルを保存すると、Accessは/mnt/nasファイルの選択を開始します。/mnt/new

おすすめ記事