DRBD
DRBD (Distributed Replicated Block Device) on jakautunut replikoitu tallennusjärjestelmä Linux-alustalle. Se on toteutettu ytimessä olevana ajurina, useina käyttäjätilan hallintaohjelmina ja muutamina komentosarjoina. DRBD:tä käytetään perinteisesti korkean käytettävyyden (HA) tietokoneklustereissa, mutta DRBD-version 9 alkaen sitä voidaan käyttää myös suurempien ohjelmistomääritteisten tallennusallasten luomiseen, erityisesti pilviympäristöissä.
DRBD | |
---|---|
Kotisivu | Dokumentointi uusin(27.4.2024) versio (englanniksi) |
DRBD-laitteet ovat DRBD-lohkolaitteita, jotka viittaavat loogiseen lohkolaitteeseen loogisessa levyjärjestelmässä. DRBD-ohjelmisto on vapaa ohjelmisto, joka on julkaistu GNU General Public License version 2:n ehtojen mukaisesti.
DRBD:n toimintatapa:
DRBD kerrostaa loogiset lohkolaitteet (yleensä nimetty /dev/drbdX, missä X on laitteen numero) olemassa olevien paikallisten lohkolaitteiden päälle osallistuvilla klusterisolmuilla. Kirjoitukset ensisijaiselle solmulle siirretään alempitasoiselle lohkolaitteelle ja samanaikaisesti toissijaiselle solmulle (tai useammalle). Toissijainen solmu siirtää sitten tiedot vastaavaan alempitasoiseen lohkolaitteeseen. Kaikki luku-I/O suoritetaan paikallisesti, ellei luku-tasapainotusta ole määritetty. Jos ensisijainen solmu epäonnistuu, klusterinhallintaprosessi ylentää toissijaisen solmun ensisijaiseksi tilaksi. Tämä siirtymä voi vaatia tiedostojärjestelmän eheyden myöhemmän tarkistuksen. DRBD:n synkronointialgoritmi on tehokas, koska se resynkronisoi vain ne lohkot, jotka muuttuivat katkoksen aikana, ei koko laitetta. DRBD integroituu usein Pacemaker- tai Heartbeat-klusteriresurssienhallintajärjestelmiin. Se toimii myös yhdessä virtualisointiratkaisujen, kuten Xenin, kanssa. DRBD mahdollistaa kuormantasapainon konfiguroinnin, jolloin molemmat solmut voivat käyttää tiettyä DRBD:tä luku-/kirjoitustilassa ja jakaa tallennustilan semantiikkaa. Esimerkiksi usean ensisijaisen (luku-/kirjoitustila) konfiguraatio vaatii hajautetun tiedostojärjestelmän kuten Ocfs2 käyttöä.
Heikkoudet:
Ajettaessa DRBD:tä dual-primary moodissa ja äkillisen virtakatkoksen tai muun häiriön tapahtutuessa palvelinten uudelleenkäynnistyksen yhteydessä saattaa tapahtua nk. split-brain reaktio, joka tarkoittaa, että palvelin ei tiedä miltä koneelta tieto haetaan replikoitavaksi ja on haasteellista saada järjestelmä tästä viirheestä toipumaan ilman uudelleenasennusta ja tietojen häviämistä. Joten etenkin tuotantokäytössä on syytä heti käyttöönoton jälkeen aloittaa crontabin ja vaikka rsyncin avulla DRBD-osion säännöllinen tiheä varmuuskopiointi.
Asenna DRBD Debian 12 käyttöjärjestelmään:
Lisää molemmat palvelimet /etc/hosts -tiedostoon:
sudo nano /etc/hosts
192.168.1.201 esimerkkiservu-1.lan esimerkkiservu-1 192.168.1.202 esimerkkiservu-2.lan esimerkkiservu-2
Asenna DRBD-paketit komennolla:
sudo apt install drbd-utils
Lataa DRBD-moduuli ytimeen komennolla:
sudo modprobe drbd
Varmista, että moduuli on lisätty:
lsmod | grep drbd
Valmistele alitason tallennuslaitteet: Jokaiselle isäntäsolmulle valitse looginen lohkolaitteisto, joka toimii DRBD:n alla. Konfiguroi DRBD-resurssi: Luo DRBD-resurssille konfiguraatiotiedosto (esim. /etc/drbd.d/r0.res).
sudo nano /etc/drbd.d/r0.res
resource r0 { net { protocol C; cram-hmac-alg sha1; shared-secret "123456789"; } on esimerkkiservu-1 { address 192.168.1.201:7788; node-id 1; volume 0 { device /dev/drbd0; disk /dev/sdb5; meta-disk internal; } } on esimerkkiservu-2 { address 192.168.1.202:7788; node-id 2; volume 0 { device /dev/drbd0; disk /dev/sdb5; meta-disk internal; } }
Määritä ensisijainen ja toissijainen isäntäsolmu sekä looginen laite.
Alusta ja ota käyttöön DRBD-resurssi:
Alusta DRBD-resurssi komennolla:
sudo drbdadm create-md r0
Ota DRBD-resurssi käyttöön komennolla:
sudo drbdadm up r0
Aseta ensisijainen resurssi alkuperäisen laitteen synkronointiin: Määritä ensisijainen isäntäsolmu komennolla:
sudo drbdadm primary --force r0
Luo tiedostojärjestelmä DRBD-laitteelle: Luo tiedostojärjestelmä (esim. ext4) komennolla:
sudo mkfs.ext4 /dev/drbd0
Liitä DRBD-laite toiselle isäntäsolmulle: Liitä DRBD-laite toiselle isäntäsolmulle komennolla:
sudo mount /dev/drbd0 /mnt
Nyt DRBD on asennettu ja konfiguroitu. Voit käyttää DRBD:tä korkean käytettävyyden ratkaisuna tai replikoida tietoa isäntäsolmujen välillä.