DRBD és l'abreviació de Distributed Replicated Block Device. DRBD és un dispositiu de blocs (block device) dissenyat per a crear clusters HA (high-availability). L'Alta Disponibilitat s'aconsegueix creant un mirror entre dos dispositius de blocs utilitzant una xarxa que sol estar dedicada a aquesta tasca.
$ sudo apt-get install drbd8-utils
Editem el fitxer /etc/drbd.conf, a continuació mostro un exemple:
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example #include "drbd.d/global_common.conf"; #include "drbd.d/*.res"; global { usage-count no; } common { syncer { rate 100M; } } resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret "4d186321c1a7f0f354b297e8914ab240"; } on drbd01 { device /dev/drbd0; wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret "4d186321c1a7f0f354b297e8914ab240"; } on drbd01 { device /dev/drbd0; disk /dev/sdb1; address 192.168.202.203:7788; meta-disk internal; } on drbd02 { device /dev/drbd0; disk /dev/sdb1; address 192.168.202.249:7788; meta-disk internal; } }
NOTA: Hem de recordar assegurar-nos de ficar la informació de les nostres maquines correctament o modificar els fitxers /etc/hosts i /etc/hostname d'acord amb el fitxer.
IMPORTANT: Les dues màquines han de tenir exactament igual el fitxer de configuració.
Iniciem el servei de drbd en cada màquina:
$ sudo /etc/init.d/drbd start
Ara, utilitzant la utilitat drbdadm inicialitzem l'emmagatzematge de les meta dades:
$ sudo drbdadm create-md r0
A la màquina primera (drbd1 en aquest cas) diem que sigui la primària amb la següent comanda:
$ sudo drbdadm -- --overwrite-data-of-peer primary all
Després d'executar la comanda anterior, es començara la sincronització. Podem veure el progres en la segona (drbd2 en aquest cas) executant:
$ watch -n1 cat /proc/drbd
Finalment, afegim el sistema de fitxer a /devdrbd0 i el muntem:
$ sudo mkfs.ext3 /dev/drbd0 $ sudo mount /dev/drbd0 /srv
$ sudo cp -r /etc/default /srv
$ sudo umount /srv
$ sudo drbdadm secondary r0
$ sudo drbdadm primary r0
$ sudo mount /dev/drbd0 /srv
$ sudo apt-get install ifenslave
Afegim les següents línies al fitxer /etc/modprobe.d/aliases.conf:
alias bond0 bonding options bonding mode=0 miimon=100 downdelay=200 updelay=200
Modifiquem la nostra configuració de xarxa i assignem la eth0 i la eth1 com a esclaus del bond0. Podeu veure el meu fitxer /etc/network/interfaces com a exemple:
# The user-accessible network interface auto bond0 iface bond0 inet static address 192.168.202.242 netmask 255.255.255.0 broadcast 192.168.202.255 network 192.168.202.0 gateway 192.168.202.1 up /sbin/ifenslave bond0 eth0 up /sbin/ifenslave bond0 eth1
# Members of the bonded network interface auto eth0 iface eth0 inet manual auto eth1 iface eth1 inet manual
Podem veure l'estat actual de la nostra interfície enllaçada amb la següent comanda:
$ cat /proc/net/bonding/bond0
El resultat serà paregut al següent:
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 200 Down Delay (ms): 200 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 08:00:27:69:ca:6c Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 08:00:27:33:23:2a