CyrusIMAPサーバーを2.2.12から2.4.12/13にアップグレードしようとしています。
私の実際のバージョンは古いリリースなので、それを行うための良いガイドを探していることを知っています。バージョンをアップグレードしたり、新しいバージョンをインストールして構成をインポートしたりするだけではないと思いますが、間違っていますか?データベース情報を移行する必要があると思いますが、移行する方法がわかりません。
私たちのメインでユニークなCyrusサーバーは、10000人以上のユーザーとそれに対応するメールボックスを管理しています。新しい移行では、このメインサーバーをより小さなサーバーに分割して、クライアントごとにメールボックスを分割したいと考えています。 Cyrus 2.2.12からいくつかのメールボックスをエクスポートするにはどうすればよいですか?メールボックスを選択的にエクスポートしたい。
「Mailsync」ツールを見つけましたが、メールボックスで選択できるようには見えません。 Cyrusの新しいバージョンに適切に移行する方法はありますか?
(約8年前、5万を超えるユーザーアカウントを古いメールサーバー(uw-imapdを実行)から、3台のサーバーで構成されCyrusを実行する新しいサーバー「ファーム」に移行しました。当時、私はl337Perlスキルを使用して古いサーバーにログインし、新しいサーバーのメールを一度に1つのユーザーアカウントでIMAP経由でコピーする移行スクリプト。OpenLDAPサーバー+ Perdition
がこの前にあり、ユーザーをどこに転送するかを決定していました(古いサーバーに)サーバーまたは新しいサーバーへ)操作はダウンタイムなしでオンラインで実行されました。これはトピックから外れているので、返信を続けます。)
警告の言葉:あなたがやろうとしている仕事は少し退屈かもしれません、そしてあなたのために十分に短い返事をタイプすることも簡単ではありません。 :-)ここにあなたが考慮すべきいくつかのポイントがあります。
やるべきことがいくつかあります。 Cyrus自体のアップグレードはそれほど不可能ではありませんが、ユーザーを1つのサーバーから複数のサーバーに同時に分割するには計画が必要です。 BerkeleyDB/skiplist形式が途中で変更され、古いデータファイルをそのまま使用できないため、古いサーバーから新しいサーバーにすべてをコピーするだけでは機能しません。
ユーザー/メールボックスリストに関しては、ctl_mboxlist -d
スイッチを使用して古いサーバーのユーザー/メールボックス情報をテキストファイルにダンプしてから、ctl_mboxlist -u
を使用してコンテンツを新しいサーバーにロードすることをお勧めします。 。これは、Cyrusをアップグレードするだけで、同時により強力でありながら単一のサーバーに移行する場合に当てはまります。メールボックスは、Cyrusでrsync
の後にreconstruct -rfx user/*
コマンドを使用してコピーできます。
同時に分割を実行したい場合は、xfermailbox
のcyradm
コマンドで実際にメールボックスをあるサーバーから別のサーバーに移動できるかどうかを試してみてください。もしそうなら、xfermailbox
を10000回呼び出して、ユーザーアカウントを好きな場所に移動するスクリプトを作成するだけです。
別のヒント:移行後に一部のユーザーがメールフォルダー/メールを見つけることができない場合は、おそらくreconstruct -rfx user/someaccount
コマンドが必要です。
これまではすべて元気でダンディですが、次のことを考慮しましたか?
Perdition
やCyrus Murder
のようなものはありますか?mailboxes.db
などにBerkeleyDBまたはSkiplistを使用しているかどうかを再確認してください。適切に調整されていないDB_CONFIG
パフォーマンスが簡単に停止したり、デッドロックが発生したりする可能性があります。スキップリストはもっと心配がありません。また、CyrusでのPOP3実装は非常にエントロピーを必要とし、サーバーにハードウェアベースの乱数ジェネレーターがない場合、rngd
デーモンがないか、Cyrusが/dev/urandom
を使用するように構成されていないとログインが非常に遅くなる可能性があります。ランダム性のために/dev/random
の代わりに。これが少しお役に立てば幸いです。
あなたは私に従うべき素晴らしい手がかりを与えてくれました。
とにかく私は私が考慮すべきアイデアに答えます:
とにかく、私が成功または移行のために何をすべきかについての計画をしていることを正しく知っているので、あなたが私に提供したコマンドを試すことはできません。
確認したら戻ってきます。
どうもありがとう!