Esittely
http://www.ubuntugeek.com/heartbeat2-xen-cluster-with-drbd8-and-ocfs2.html
VirtualBox

Tarkista asetukset (IO APIC, PAE, VT-x/AMD-V
Ubuntu 9.04 Server

Levyn osiointi, jossa #3 DRBD:tä varten

Esiasennettavat palvelut
sudo aptitude update && sudo aptitude safe-upgrade
sudo aptitude install chkconfig
Xen
Xen asennuspaketti voidaan etsiä paketinhallinnalla esimerkiksi seuraavasti.
sudo aptitude search xen
Asennetaan Xen.
sudo aptitude install ubuntu-xen-server
OCFS2
Asennetaan tarvittavat asennuspaketit.
sudo aptitude install ocfs2-tools ocfs2console
sudo nano /etc/ocfs2/cluster.conf
Cluster.conf -tiedoston sisältö kun klusteriin on määritelty kaksi nodea.
sudo less /etc/ocfs2/cluster.conf
cluster: name = ocfs2 node_count = 2 node: name = node1 cluster = ocfs2 number = 0 ip_address = 192.168.1.37 ip_port = 7777 node: name = node2 cluster = ocfs2 number = 1 ip_address = 192.168.1.39 ip_port = 7777
Suoritetaan konfigurointivelho.
sudo dpkg-reconfigure o2cb
Aktivoidaan ocfs2-palvelu käynnistymään koneen käynnistyessä.
sudo /etc/init.d/ocfs2 enable
Käynnistetään palvelut uudelleen.
sudo /etc/init.d/ocfs2 restart
sudo /etc/init.d/o2cb restart
Tarkastetaan palvelun tila.
sudo /etc/init.d/o2cb status
Module "configfs": Loaded Filesystem "configfs": Mounted Module "ocfs2_nodemanager": Loaded Module "ocfs2_dlm": Loaded Module "ocfs2_dlmfs": Loaded Module "ocfs2_stackglue": Loaded Filesystem "ocfs2_dlmfs": Mounted Checking O2CB cluster ocfs2: Online Heartbeat dead threshold = 7 Network idle timeout: 10000 Network keepalive delay: 5000 Network reconnect delay: 2000 Checking O2CB heartbeat: Not active
DRBD
Asennus
Asennetaan seuraavaksi DRBD 8 suoraan lähdekoodista kääntämällä.
Haetaan tuorein versio valmistajan sivuilta, puretaan asennuspaketti ja siirretään se hakemistoon /usr/src/drbd.
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.2.tar.gz
tar -xzf drbd-8.3.2.tar.gz
sudo mv drbd-8.3.2 /usr/src/.
sudo mv /usr/src/drbd-8.3.1 /usr/src/drbd
Asennetaan paketinhallinnalla kääntämistä ja asennusta varten tarvittavat riippuvuudet.
sudo aptitude install linux-headers-server linux-source make gcc flex build-essential
Siirrytään hakemistoon /usr/src/drbd, käännetään lähdekoodi ja suoritetaan asennus.
cd /usr/src/drbd
sudo make clean all
sudo make KDIR=/usr/src/linux-headers-2.6.28-14-server/
sudo make install
Ladataan lopuksi drbd-moduli kerneliin
sudo modprobe drbd
# Note that any kernel upgrade will require you to rebuild and reinstall the DRBD kernel module to match the new kernel.
Konfigurointi
Asennuksessa luodaan esimerkkikonfiguraatiotiedosto /etc/drbd.conf, jota voidaan helposti muokata omaan käyttötarkoitukseen soveltuvaksi. Koska ajatuksena on käyttää drbd:tä kahden virtuaalikoneen yhteisenä levynä ja suorittaa live migratiota virtuaalikoneiden välillä, muokataan drbd:n konfiguraatiota siten, että se sallii kaksi primary solmuja (eli luku ja kirjoitusoikeus molemminlla solmuilla).
Kopioidaan aluksi alkuperäinen esimerkkitiedosto talteen varmuuden vuoksi ja muokataan tämän jälkeen konfiguraatiota.
sudo cp /etc/drbd.conf /etc/drbd.conf.orig
sudo nano /etc/drbd.conf
Konfigurointi
global {
usage-count yes;
}
common {
syncer { rate 10M; }
}
resource r0 {
protocol C;
handlers {
pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
outdate-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";
}
startup {
wfc-timeout 0;
degr-wfc-timeout 120;
wait-after-sb;
become-primary-on both;
}
disk {
on-io-error detach;
}
net {
max-buffers 2048;
allow-two-primaries;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
rr-conflict disconnect;
}
syncer {
rate 10M;
}
on node1 {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.1.37:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sda3;
address 192.168.1.39:7788;
meta-disk internal;
}
}
Konfiguroinnin jälkeen drbd-palvelun käynnistäminen antaa seuraavan ilmoituksen
sudo /etc/init.d/drbd start
WARN: You are using the 'drbd-peer-outdater' as fence-peer program. If you use that mechanism the dopd heartbeat plugin program needs to be able to call drbdsetup and drbdmeta with root privileges. You need to fix this with these commands: chgrp haclient /sbin/drbdsetup chmod o-x /sbin/drbdsetup chmod u+s /sbin/drbdsetup chgrp haclient /sbin/drbdmeta chmod o-x /sbin/drbdmeta chmod u+s /sbin/drbdmeta
Korjataan oikeudet seuraavilla komennoilla.
sudo chgrp haclient /sbin/drbdsetup
sudo chmod o-x /sbin/drbdsetup
sudo chmod u+s /sbin/drbdsetup
sudo chgrp haclient /sbin/drbdmeta
sudo chmod o-x /sbin/drbdmeta
sudo chmod u+s /sbin/drbdmeta
Luodaan DRBD-resurssi levyosiolle /dev/sda3, jolla on asennuksen jäljiltä ext3-tiedostojärjestelmä. Tämä pitää poistaa, jotta voidaan luoda DRBD-resurssi.
sudo dd if=/dev/zero bs=1M count=50000 of=/dev/sda3 ; sync
Luodaan DRBD-resurssi.
sudo drbdadm create-md r0
Määritetään väliaikaisesti node sekondääriksi.
sudo drbdadm secondary r0
Määritetään noden data validiksi ja korotetaan primääriksi.
sudo drbdadm -- --overwrite-data-of-peer primary r0
Nyt voidaan tarkastella DRBD:n tilaa seuraavilla komennoilla.
sudo /etc/init.d/drbd status
cat /proc/drbd
Luodaan seuraavaksi tiedostojärjestelmä DRBD-resurssinlevylle.
sudo mkfs.ocfs2 /dev/drbd0
Luodaan hakemisto levyosion mounttaamista varten.
sudo mkdir /drbd0
Mountataan levyosio sitä varten luotuun hakemistoon.
sudo mount.ocfs2 /dev/drbd0 /drbd0
Poistetaan /dev/sda3:n mounttaus käynnistyksen yhteydessä.
sudo nano /etc/fstab
Muokataan riviä, jolle drbd on määritelty.
/dev/drbd0 /drbd ocfs2 _netdev 0 0
Jos riviä ei muokata, aiheutuu käynnistyksessä levyvirhe sillä osio on määritelty aiemmin liitettäväksi automaattisesti ja levyjärjestelmäksi on merkattu ext3. Optio _netdev liittää osion vasta kun verkkoyhteys on ylhäällä.
Muokataan palveluiden käynnistymistä seuraavasti
sudo chkconfig drbd --set on
sudo chkconfig o2cb --del
sudo chkconfig ocfs2 --del
sudo chkconfig o2cb --level 2345 --set on
sudo chkconfig ocfs2 --level 2345 --set on
Saadaan palvelut käynnistymään seuraavasti
chkconfig --list | grep drbd drbd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig --list | grep ocfs2 ocfs2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig --list | grep o2cb o2cb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Heartbeat
Luodaan heartbeatin konfiguroimista varten kolme tiedostoa
sudo touch /etc/ha.d/authkeys /etc/ha.d/ha.cf /etc/ha.d/haresources
Muokataan ha.cf-tiedosto.
sudo nano /etc/ha.d/ha.cf
keepalive 1 deadtime 10 warntime 5 initdead 120 udpport 694 ping 192.168.1.37 bcast eth0 auto_failback off node node1 node node2 use_logd yes compression bz2 compression_threshold 2 crm yes
Muokataan authkeys-tiedosto.
sudo nano /etc/ha.d/authkeys
auth 1 1 sha1 Tahan1Pitka3Satunnainen5Salasana7
Muutetaan tiedoston käyttöoikeudet.
sudo chmod 600 /etc/heartbeat/authkeys
Muokataan tiedostoa haresources.
sudo nano /etc/ha.d/haresources
node1 IPaddr::192.168.1.40/24 drbddisk Filesystem::/dev/drbd0::/drbd::ocfs2
Luodaan apuskriptillä Heartbeat v. 2 käyttämä cib.xml määritystiedosto ja siirretään se oikeaan hakemistoon. Nimetään haresources-tiedosto vielä uudelleen sillä Heartbeat ei käytä sitä, mutta antaa sen olemassa olosta varoituksen.
sudo /usr/lib/heartbeat/haresources2cib.py --stdout -c ha.cf haresources > ~/cib.xml
sudo mv ~/cib.xml /var/lib/heartbeat/crm/.
sudo mv /etc/ha.d/haresources /etc/ha.d/haresources.notinuse
sudo chown hacluster:haclient /var/lib/heartbeat/crm
Nyt voidaan käynnistää Heartbeat-palvelu
sudo /etc/init.d/heartbeat start