メールサーバーを無停止で切り替える方法

メールサーバーを無停止で切り替えなければいけない不幸な人の為に。
というか、後何回か不幸な目にあいそうなのでメモ。

環境

事前準備

移行先の設定は一通り完了しているものとします。

  1. DNSの設定を変更してTTLを短くしておきましょう。切り替えの待ち時間の短縮と失敗時の切戻しが早くなります。
  2. Aレコードに新旧サーバーを追加しておきます。

パターンA

  1. 移行元のサーバーにrelay_hostまたはtransport_mapsを設定し、移行先のサーバーにリレーするようにします。
  2. DNSのMXレコードを移行先のサーバーに向けます。

以上。Sendmailのサーバーはリレーの設定のしかたがよくわからなかったので、ちょっと複雑ですがBでやりました。

パターンB

  1. 移行先のサーバーにrelay_hostまたはtransport_mapsを設定し、移行元のサーバーにリレーするようにします。
  2. DNSのMXレコードを移行先のサーバーに向けます。

この時点では移行先のサーバー経由で移行元のサーバーに通常通り配送されています。

  1. 十分時間がたったところで、移行元のリレーを解除し、mydestinationまたはvirtual_transport_map等でドメイン宛のメールを受信できるように設定します。

移行先のサーバーにメールが溜るようになります。MXレコードがPOP3サーバーと同じサーバーを指しているなら、DNSが伝搬すると同時に新しいサーバーで受信できる状態になってます。

  1. あとは、以降元のサーバーに残っているメールを新しいサーバーにコピーしてあげれば完了です。


サーバー環境の都合上、A,B両方でやりました.
Bの方法なら移行元のサーバーの設定を変更する必要がないので、移行元がレンタルサーバーでもたぶん大丈夫です。

その他、Webサーバーも無停止で切り替えましたが、そのうち書きます。