High Availability

Yksi high availability -järjestelmän käyttökohteista on virtuaalialustat. HA:n tarkoitus on palvelun jatkuvuuden takaaminen tilanteessa, jossa verkko tai infrastruktuuri vikaantuu, tai toimii epävakaasti. HA varmistaa, että palvelu ajetaan alas vikaantuneessa isäntä-palvelimessa, ja että palvelu nousee ylös vara-palvelimella. Palvelun ajaminen alas on yhtä tärkeää, kuin palvelun saaminen ajoon vara-isännällä. Jos ensisijainen palvelin nousee automaattisesti ylös, syntyy suuri riski tiedon korruptiolle, koska kaksi identtistä palvelua yrittävät päästä käsiksi samoihin resursseihin yhtäaikaisesti. HA:lla voidaan myös ajoittaa palveluiden käynnistyminen tietyssä järjestyksessä. Esimerkiksi DNS- ja DHCP-palvelut käynnistetään ennen clientejä tai palvelimia, jotka ovat riippuvaisia näistä palveluista.

XenServerissä HA:ssa on seuraavat vaatimukset:


• Shared storage, vähintään yhdellä iSCSI, NFS tai FC LUNilla, joka on 356MB tai suurempi. Heartbeat SR. 
   HA luo kaksi volumea heartbeat SR:lle.
   - 4MB heartbeat volume heartbeatille.
   - 256MB metadata volume, käytetään master metadatan tallentamiseen, masterin vikaantumisen varalta.

• XenServer pool
• Staattiset IP-osoitteet kaikille isännille.

1. Liitetään xenserver2 ja xenserver3 HA-pooliin.

# xe pool-join master-address=xenserver1.foo.bar master-username=root master-password=salasana
Host agent will restart and attempt to join pool in 10.000 seconds...


2. Nimetään HA-pool.

# xe pool-list
uuid ( RO)                : ee98b8e2-59c2-ac51-6635-69c75c73872a
          name-label ( RW):
    name-description ( RW):
              master ( RO): d0c69d5a-27cd-48fb-ba35-574416b9b0a7
          default-SR ( RW): bdf583f7-d5a0-9d0b-9c3d-17197b1cc565

# xe pool-param-set name-label=HA-Pool uuid=ee98b8e2-59c2-ac51-6635-69c75c73872a


3. Otetaan HA käyttöön ja asetetaan iSCSI oletus tallennusmediaksi.

# xe sr-list| grep -B 1 iSCSI
uuid ( RO)                : b9f5ac3a-e808-952c-07a8-dc484cee379f
          name-label ( RW): iSCSI_SR

# xe pool-ha-enable heartbeat-sr-uuids=b9f5ac3a-e808-952c-07a8-dc484cee379f ha-config:timeout=20

# xe pool-param-set uuid=ee98b8e2-59c2-ac51-6635-69c75c73872a default-SR=b9f5ac3a-e808-952c-07a8-dc484cee379f


4. pool-ha-compute-max-host-failures-to-tolerate –komento kertoo maksimäärän isäntiä, jotka voivat vikaantua ennen kuin järjestelmän resurssit loppuvat kaikkien suojattujen VM:ien ajamiseen. ha-host-failures-to-tolerate -komennolla asetetaan raja millä järjestelmä varoittaa kapasiteetin loppumisesta. Tämän arvon tulisi olla yhtäsuuri tai pienempi kuin ha-host-failures-to-tolerate -arvon. Lisätään arvo ja pool-uuid.

# xe pool-ha-compute-max-host-failures-to-tolerate
3

# xe pool-param-set ha-host-failures-to-tolerate=2 uuid=ee98b8e2-59c2-ac51-6635-69c75c73872a


HA-pool

HA XenCenteristä katsottuna


5. Asetetaan poolissa olevalle virtuaalikoneelle prioriteeti.

# xe vm-list|grep -B 1 Cent
uuid ( RO)           : 7c04dc09-be2c-7bd3-e948-3a4a3234a6e4
     name-label ( RW): Centos7



# xe vm-param-set uuid=7c04dc09-be2c-7bd3-e948-3a4a3234a6e4 ha-restart-priority=restart ha-always-run=true