Premyslel jsem o HA IMAP serveru, ale prijde mi, ze to v zasade neni mozne nejak snadno poresit. Bud muzu mit /var/spool/imap na externim NAS poli a budu ho mit pristupne z obou nodu, ale budu mit jaksi jen jedno NAS pole a kdyz prestane komunikovat, tak je mi houby platne, ze mam dva imap servery a nebo budou pouzivat kazdy vlastni disk, ale potom zase hrozi, ze maily prijate na padlem stroji dostanou stejne UID jako zpravy prijate na druhem nodu a po najeti systemu se imap klienti zblazni, protoze nikdo nepocita s tim, ze by UID bylo u dvou ruznych zprav stejne.
Take muzete disk sdilet, ale musite si byt uplne jisti, ze druhy nod umrel. Zazil jsem provedeni e2fsck disku sdileneho pres FC, ktery byl druhym nodem pouzivan a z filesystemu zbyly jen trosky. HB tohle resi tak, ze protejsimu nodu vypne UPS, ale nesmi se splest.
Podle me je HB skvely na ruzne load balancery, firewally, web servery, proste na veci, kde bud neni stavova informace (pripadne je jen velmi omezena - zaznamy v NAT tabulce) a nebo se moc nemeni data. Ale na mailserver a nebo imap server je to pouzitelne jen za cenu velkych investic do HW.
Tak me napada, ze by se ten "IMAP cluster" dal bez draheho HW resit na aplikacni urovni:
1/ oba uzly by byly v zasade nazavisle stroje (s vlastnimi disky), s tim ze hlavni prisun posty by byl (rekneme na urovni SMTP) duplikovan a nezavisle rozesilan na oba uzly
2/ zbyvalo by tedy pouze na aplikacni urovni zajistit "synchronizaci" paralelne pracujicich IMAPD, tj. vytvorit patch ktery by v pripade zapisove operace (oznaceni zpravy jako prectene, smazani zpravy ...) vytvoril "transakcni log" a ten zaslal ke zpracovani druhe strane
3/ vlastni cluster by pak pouze zajistoval migraci IP-adresy mezi uzly a jeji propagaci do site (tj. nebyly by potreba zadne sdilene disky)