Sdílené úložiště pro HA cluster

Při konfiguraci vysoké dostupnosti služby pomocí HA clusteru (napřílad Heartbeat) každý pravděpodobně narazí na potřebu sdíleného úložiště. Toto sdílené úložiště musí být dostupné ze všech uzlů clusteru, možností jak to řešeit je více. Nejpoužívanější variantou v tzv. enterprise sféře je hardwarové diskové pole s více řadiči a v některých případech i vícecestným připojením k jednotlivým serverům (uzlům clusteru). Disové pole se dříve připojovalo přes SCSI rozhraní, které je dnes považováno za mrtvé. Náhradou za SCSI je Fibre Channel rozhraní využívající optických vláken. Toto řešení je léty provozu v těch nejnáročnějších podmínkách perfektně prověřené, ale je drahé a mnoho menších zákazníků na něj nemá – ceny se pohybují v milionech až desítkách milionů korun v závislosti na požadované konfiguraci.

Levnější variantou může být připojení diskového úložiště přes ethernet v kombinaci s levnějším HW diskovým polem, které umožní připojení dvou serverů pro HA cluster úložiště a nad ním lze pototé postavit HA cluster pro požadovanou službu ( úložišti se pak uzly clusteru připojují např přes NFS, iSCSI nebo jiný vhodný protokol). V situaci kdy nechceme nebo nemůžeme použít klasické HW diskové pole možné použít DRBD.

Základní funkčnost DRBD si lze představit jako RAID1 (mirror) přes síť. Blokové zařízení DRBD se z hlediska uživatele chová podobně jako sdílené diskové pole připojené ke oboum počítačům najednou – je možné na zařízení vytvářet souborový systém, PV lvm nebo využívat přímo dané zařízení jako „raw“ device. Od verze 0.8 umožňuje DRDB režim Primary/Primary což znamená, že lze k „mirroru“ vytvořenému přes DRBD přistupovat z obou uzlů drdb clusteru a rovnoceně na ně zapisovat. Tato vlastnot nové verze DRBD umožňuje implemetovat takové věci jako je souborový systém GFS nebo OCFS2 a tím zpřístupnit data na obou uzlech clusteru. Také je možné provádět živou migraci virtuálních strojů (domU) XENu.

[img_assist|nid=5|title=Architektura DRBD|desc=|link=none|align=center|width=320|height=295]

HW implementace propojení

  • Fibre Channel – klasika v enterprise sféře používající nejčastěji 1Gbps (dnes již zastaralé), 2Gbps, 4Gbps nebo 8Gbps rychlost připojení optickým vláknem.
  • SCSI – UltraSCSI 160 nebo UltraSCSI 320 připojení bylo dříve často používané, dnes je již nahrazeno FC nebo SAS připojením. Se SCSI se u nových zařízení nepotkáte.
  • SAS – pokračování SCSI (Serial Attached SCSI), v určité míře kompatibilní se SATA. Podrobný popis je dostupný na Wikipedii.

Připojení přes síť

  • iSCSI – protokol zpřístupňující vzdálená disková zařízení přes TCP/IP. Protokol je směrovatelný a použitelný na velké vzdálenosti. Existují specializované HBA pro iSCSI do serverů. Některá pole implementují iSCSI nativně. V případě, že pole iSCSI neimplementuje a je nutné jeho využití, je možné postavit HA Cluster ze serverů nad klasickým polem připojeným přes SAS nebo FC, který bude iSCSI zpřístupňovat.
  • GNBD/NBD – v Linuxu nativní způsob jak vyexportovat z HA clusteru diskové zařízení, které je poté možné v klientovi používat podobně jako lokální disk. Server exportující NBD zařízení musí podobně jako v případě iSCSI fungovat v režimu HA clusteru. Menší zajímavost: NBD vytvořil český programátor Pavel Machek. GNBD/NBD je tedy zajímavý způsob připojení úložiště do klienta a sám musí být v režimu HA clusteru nad nějakým konkrétním úložištěm – nejčastěji nad DRBD nebo klasickým diskovým polem.
  • DRBD je software na úrovni linuxového jádra implementující blokové zařízení, které umožňuje sdílet data mezi dvěmi počítači. Základní funkčnost DRBD si lze představit jako RAID1 (mirror) přes síť.
  • Síťový souborový systém je také jednou z možností jak implementovat úložiště pro vysoce dostupné služby. Reálné využití v unixovém světě najde pravděpodobně NFS. Samozřejmě je třeba počítat s HA clusterem i na serverech nabízejicích síťový souborový systém.
  • „Vlastní řešení“ – některé programy implementují vlastní způsob řešení sdílení dat. Jako příklad lze uvést adresářové servery (LDAP), které lokálně využívají například berkley db a mezi jednotlivými uzly data replikují v režimu tzv. multimaster replikace. To znamená, že změna zapsaná na jakýkoliv uzel clusteru se okamžitě promítne do ostatních uzlů. Další možností je například replikace paměti používaná u aplikačního serveru Glassfish, který si informace o sezení (session) předává mezi jednotlivými uzly. V případě Glassfishe je možné replikaci paměti nahradit HADB což je vlastně HA cluster databáze, která podobnou replikaci zajišťuje sama (a není limitována takovou věcí jako je RAM aplikačních serverů).