Na tom, ze pri vypadku jednoho serveru prevezme nejakou sluzbu zalozni server, neni nic zas tak sloziteho (IMHO).
Chtelo by to ale nejaky prubezny mirror dat na zalozni server, aby ten mohl pri vypadku hlavniho zacit tam, kde hlavni prestal. Neco jako "raid-1 over the net".
Napr. u zmineneho IMAP, MySQL, WWW nebo jakehokoliv jineho serveru pracujiciho nad nejakymi daty mi bude samotne obnoveni sluzby k nicemu, kdyz nepobezi nad aktualnimi daty. Jiste, muzu mit zdroj dat nekde jinde (NFS server, SCSI disk ci pole pripojeny spolecnou sbernici k obema serverum apod.), tim ale mira redundance zase klesa, protoze system nebude odolny proti vypadku toho uloziste.
V konkretnich pripadech tohle lze "rucne" resit - hlavni SMTP muze veskerou postup posilat na zalozni server, vsechny SQL menici databazi se budou provadet na obouch serverech apod., ale kdyz jsem se to snazil na linuxu vyresit obecne, tak vymyslel akorat priserne slozite reseni vyuzivajici codu, ktere ovsem potrebovalo ne 2, ale hned 5 stroju.
Data - s temi je vzdycky problem :) Kratce receno - neni problem mit sdileny disk (viz nize), ale problem je, jak zaridit, aby jedny data mely namountovany 2 ruzny masiny (v podstate neresitelny problem v Linuxu).
Co se tyka uloziste dat - jsou 2 moznosti:
- free - pouzij netblock device a udelej si RAID1 pres net (ale bude to pomale)
- hw - zivim se krome jineho prodejem IDE_to_SCSI poli, ktere maji 2 SCSI kanaly (tzn. pripojis je k 2 serverum a sdilis jej), pripadne FibreChannel (ale to je o necem uz jinem - jen FC karta do serveru stoji 50 kKc - to se uz blizi cene zakladniho IDE2SCSI) - vic kdyztak viz email, at tady nekomercnime ;)
Ale opakuji - nevim o zadne fs pro Linux, ktery by umoznil mit ty data namountovany na 2 masinach... Jedine reseni je v pripade vypadku heartbeatu provest nasilne prevzeti zarizeni, udelat fsck a mount.
Otazkou ale je, jestli je to vzdy potreba - treba u email/web serveru moc ne (emaily - jde hlavne neztratit zadnou prijatou zpravu, takze je prijmes a az nabehne hlavni server, tak je "preposles", web server - staci delat kazdych par minut rsync ;) - horsi je to s databazemi (tam se to da obejit, pokud databaze podporuje clusterovani - pry pro PostgreSQL uz neco takoveho je). Vetsinou se staci spokojit s degradovanym rezimem prace v pripade vypadku hlavniho serveru (napr. prijimam/odesilam emaily, ale nefunguji uzivatelske schranky, mam webovske stranky, ale treba bez diskuznich for apod.)
Nedávno jsem se ptal v konferenci na možnosti rychlého připojení jednoho úložiště ke dvěma počítačům a dostalo se mi rady, že asi nejúčinnější je připojení jednoho SCSI disku (nebo pole, to je asi jedno) k oběma počítačům jednou kšandou a nasazením OpenGFS (http://opengfs.sourceforge.net/), který zajistí přes síť synchronizaci operací.
Osobně jsem se zajímal hlavně o rychlé sdílení dat mezi dvěma servery, ale myslím, že by to mohlo fungovat i v případě HA.
Pripojit se to da, ale funkcnost bude kdovi jaka. Mam pocit, ze uz snad i ze specifikace SCSI neni mozne sdilet jedno SCSI LUN (v tomto pripade disk) vice radici. W2K cluster to napriklad resi, tak ze si jeden node zabere cele zarizeni pro sebe. Napr. neni tedy mozne mit 2 partisny na jednom disku a kazdou mit aktivni na jinem nodu. Ono i v praxi je to dost velky problem. Napriklad instalace w2k clusteru na intel IBM servery obcas pripomina horrorove sceny, neb musite nejdrive radice primet k tomu aby se domluvili co patri komu. Musi byt tedy podpora primo v OS a na urovni filesystemu. Kdysi to umel tusim veritas volume manager (ani nevim jestli te projekt jeste funguje a umi to i advfs nad Tru64)
Opakuju jeste jednou - pokud budete mit 1 SCSI disk se 2 NTFS partisnami NENI mozne mit jednu partisnu na jednom nodu a druhou na druhem nodu. Vytvori se Vam resource, ktery bude mit zacleneny obje partisny. Pokud disky budete mit dva a na kazdem jednu partisnu pak to neni problem.