Řešení 1:
Dávám přednost použití keepalived pro vysokou dostupnost. Připadá mi jednodušší nastavit (jeden démon a konfigurace) než heartbeat a společnost. Jedinou nevýhodou, na kterou narážím, je, že keepalived nemá ve výchozím nastavení možnost unicast a pro komunikaci používá pouze VRRP (autor HAProxy však napsal patch pro unicast pro keepalived)
Řešení 2:
Ve skutečnosti pracuji na něčem velmi podobném tomu, co jste popsal (klastr přepnutí při selhání na EC2), a poté, co jsem vyzkoušel Heartbeat, jsem se rozhodl pro Corosync jako mou vrstvu pro zasílání zpráv. Corosync poběží na více serverech a podporuje Unicast (UDPU) od verze 1.3.0 (od listopadu 2010). Nastavil jsem a otestoval jsem Corosync na cloudu Amazon EC2 (pomocí Amazon Linux AMI) a mohu potvrdit, že funguje bez problémů.
Ukázkový soubor udpu je nainstalován do /etc/corosync.
Přidejte jeden členský blok do sekce rozhraní pro každý uzel a zadejte transport jako updu. (Použil jsem stejný port jako heartbeat v příkladu níže, ale můžete jej změnit podle potřeby).
např.:
totem {
version: 2
secauth: off
interface {
member {
memberaddr: 10.xxx.xxx.xxx
}
member {
memberaddr: 10.xxx.xxx.xxx
}
ringnumber: 0
bindnetaddr: 10.xxx.xxx.xxx
mcastport: 694
}
transport: udpu
}
(Heartbeat má podporovat clustery uzlů 3+ ve verzích 1.2.3+, i když jsem to nikdy osobně nezkoušel a nevím, jestli by to fungovalo s Unicastem).
Řešení 3:
Omlouváme se, ale část o kardiostimulátoru není pravdivá. Testy regrese a uvolnění kardiostimulátoru široce využívají automatizaci.
Chcete-li konfigurovat bez aktivního clusteru, přidejte před všechny příkazy CIB_file=/var/lib/heartbeat/crm/cib.xml
nebo jej nastavte ve svém prostředí. Před spuštěním clusteru se ujistěte, že jste odstranili soubor .sig.
U clusterů bez kvora by většina, ne-li všechny nástroje, měla podporovat -f
nebo --force
který dá klastru pokyn, aby změnu stejně přijal. Pokud najdete nástroj, který ne - nahlaste prosím chybu.
Řešení 4:
Ve světě open source existuje RedHat Cluster Suite. Už je to několik let, co jsem implementoval RHCS, takže dnes o tom nemám moc relevantních věcí, co bych o tom řekl.
Komerčně existuje Veritas Cluster Server. Nemám s tím zkušenosti.
Mnohem jednodušší a open source HA nástroj je UCARP. UCARP neposkytuje téměř stejný druh „infrastruktury“ jako Heartbeat/Pacemaker/CoroSync, ale můžete kolem něj vybudovat řešení HA.
Můžete také vybudovat vysoce dostupnou infrastrukturu s virtualizačními technologiemi, ale tato řešení se obvykle zaměřují na dostupnost na úrovni hostitele na rozdíl od dostupnosti na úrovni aplikací.