Mettre à niveau les boîtes aux lettres cyrus et split

J'essaie de mettre à niveau un server CIRUS IMAP du 2.2.12 au 2.4.12 / 13.

Je sais que je cherche un bon guide pour le faire, car ma version actuelle est une ancienne version. Je suppose que ce ne sera pas seulement la mise à niveau de la version, soit l'installation de la nouvelle et l'import de la configuration, est-ce que je ne me trompe pas? Je suppose que je devrai migrer les informations de la database, mais je ne sais pas comment procéder.

Notre server Cyrus principal et unique gère plus de 10000 users et leurs boîtes aux lettres correspondantes. Avec la nouvelle migration, nous voulons split ce server principal en petits servers pour split les boîtes aux lettres par le client. Comment puis-je exporter quelques petites boîtes aux lettres de Cyrus 2.2.12? Je souhaite exporter les boîtes aux lettres de manière sélective.

J'ai trouvé des outils «Mailsync», mais il ne semble pas qu'il soit sélectif avec la boîte aux lettres. Existe-t-il un moyen de migrer à la nouvelle version de Cyrus correctement?

(Il y a environ huit ans, j'ai migré plus de 50 000 counts d'users d'un ancien server de messagerie (en cours d'exécution uw-imapd) vers un nouveau server 'farm' composé de trois servers et d'exécuter Cyrus. À cette époque, j'ai utilisé mes compétences Per33 l337 pour créer un script de migration qui se connecte à un ancien server et copy les mails du nouveau server sur un count user IMAP à la fois. Un server OpenLDAP + Perdition était en face de ce qui décide d'où un user doit être renvoyé (vers un ancien server ou un nouveau server ). L'opération a été effectuée en ligne sans aucun time d'arrêt. Ceci est hors sujet, alors je vais continuer avec ma réponse.)

Un mot d'avertissement: le travail que vous allez faire peut être un peu ennuyeux et vous taper une réponse assez courte pour vous n'est pas aussi facile. 🙂 Voici quelques points à considérer.

Vous avez du travail à faire. La mise à niveau de Cyrus n'est pas si impossible, mais la division des users d'un server vers plusieurs servers nécessite une planification. Il suffit de copyr tout, de l'ancien server au nouveau, car le format BerkeleyDB / skiplist a été changé au milieu et les anciens files de données ne sont pas utilisables hors de la boîte.

En ce qui concerne la list des users / boîtes aux lettres, il est préférable d'utiliser ctl_mboxlist -d pour décharger les informations de l'user / boîte aux lettres sur l'ancien server vers un file text, puis ctl_mboxlist -u pour charger le contenu sur le nouveau server. C'est le cas si vous ne voulez que mettre en surbrillance Cyrus et en même time transféré vers un server plus puissant, mais unique. Les boîtes aux lettres peuvent être copiées avec rsync , puis reconstruct -rfx user/* command dans Cyrus.

Si vous souhaitez faire la division en même time, vous pouvez essayer si la command cyradm dans le cyradm nos jours vous permet de déplacer des boîtes aux lettres d'un server à l'autre. Si c'est le cas, vous pouvez simplement créer un script qui appelle xfermailbox 10 000 fois et déplace vos counts user où vous le souhaitez.

Un autre conseil: vous avez probablement besoin de reconstruct -rfx user/someaccount command si vous trouvez que, après la migration, certains users ne trouvent pas les dossiers / courriers de courrier.

Tous bien et dandy jusqu'à ce que, mais avez-vous considéré ce qui suit:

  • Si vous partagiez les users parmi plusieurs servers, avez-vous quelque chose comme Perdition ou Cyrus Murder prenant soin de redirect les connections POP / IMAP pour corriger le server de messagerie?
  • En cas de partage, avez-vous OpenLDAP ou une autre authentification centralisée / gestion des users en place?
  • En cas de fractionnement, avez-vous configuré votre Postfix ou quel que soit le server SMTP pour déterminer où se trouve le count user?
  • Avez-vous des problèmes de performances? 10 000 counts d'users ne sont pas très nombreux et, à less que vous ayez vraiment des raisons sérieuses de split les counts d'users sur plusieurs servers, vous devriez reconsidérer ce point. Un stockage centralisé de quelque sorte + deux servers semi-puissants configurés en mode de basculement actif / passif pourrait être plus judicieux et plus simple en termes d'administration du système. Bien sûr, avoir plusieurs servers plus petits avec des disques locaux pourrait aider à répartir la charge d'E / S, mais Cyrus dit «Merci» si vous lui donnez suffisamment de RAM et que les E / S ne devraient pas être un problème réel.
  • Si la raison de votre décision de split la charge sur plusieurs servers est due à des problèmes de performance, vérifiez si votre Cyrus utilise BerkeleyDB ou Skiplist pour les mailboxes.db aux lettres.db, etc. BerkeleyDB sans DB_CONFIG bien DB_CONFIG peut facilement tuer les performances et / ou conduire à des blocages. Skiplist est plus sans soucis. De plus, l'implémentation POP3 dans Cyrus est très entropie faim et si votre server ne dispose pas d'un générateur de nombres random basé sur le matériel, les connections peuvent être TRES lentes sans rngd , ou Cyrus configuré pour utiliser /dev/urandom au lieu de /dev/random pour le hasard.

J'espère que cela vous aidera un peu.

Vous m'avez donné une bonne idée à suivre.

Quoi qu'il en soit, je répondrai aux idées que je devrais considérer:

  • Nous avons la perdition, mais nous envisageons de garder la perdition ou de changer à nginx.
  • Nous avons LDAP
  • En ce moment, je ne suis pas sûr de cela et je devrais vérifier et enquêter
  • De nos jours, nous n'avons pas de problèmes de performance, mais nous augmentons et d'autres clients arrivent à notre système. Nous sums cependant convaincu que peut-être que les clients ou les groupes de clients devraient être une bonne option. Il pourrait être un travail fastidieux du sharepoint vue SysAdmin, mais pourrait être bon pour les entresockets et le SLA. Toute autre option sera bien reçue 🙂
  • Comme je l'ai déjà mentionné, nous n'avons pas de problèmes de préformance, en tout cas, nous utilisons BerkeleyDB

Quoi qu'il en soit, sachez que je fais un schéma de ce que nous devrions faire pour réussir ou migrer, alors je ne peux pas essayer les commands que vous me fournissez.

Je reviendrai quand je les verrai.

Merci beaucoup!