DRBD, heartbeat on Debian Etch
Jump to navigation
Jump to search
DRBD & Heartbeat on Debian Etch
Install DRBD
- DRBD is not part of the kernel, so the build part is deprecated
- // START deprecated
Unfortunately, drbd is not actively available as a package under Debian Etch, so it has to be build from source.
Luckily this can be done automatically with debian.
apt-get install module-assistant build-essential drbd0.7-module-source ## Then build the module m-a a-i drbd0.7
- // END deprecated
Setup some basic drbd replication [internal meta - partition]
resource drbd { protocol C; incon-degr-cmd "killall heartbeat"; disk { on-io-error panic; } syncer { rate 10M; # Note: 'M' is MegaBytes, not MegaBits } on server1 { device /dev/drbd0; disk /dev/hdc3; address 192.168.0.110:7789; meta-disk internal; } on server2 { device /dev/drbd0; disk /dev/hda3; address 192.168.0.140:7789; meta-disk internal; } }
Of course adjust to your need.
Install heartbeat
apt-get install heartbeat
Setup heartbeat (basic)
Edit both host files ( /etc/ha.d/authkeys )
auth 2 1 crc 2 sha1 ThisIsASampleKeyAnythingAlphaNumericIsGoodHere 3 md5 ThisIsASampleKeyAnythingAlphaNumericIsGoodHere
Edit HA for master node ( /etc/ha.d/ha.cf )
keepalive 1 deadtime 10 warntime 5 initdead 60 udpport 694 ucast eth0 192.168.0.140 ### Change to 192.168.0.110 for slave auto_failback off node server1 node server2
Edit resources ( /etc/ha.d/haresources )
server1 drbddisk::drbd \ Filesystem::/dev/drbd0::/data::ext3 \ mysql \ apache2 \ IPaddr::192.168.0.180/24
Update systemfiles
Add needed servers to hosts file
[ ... ] 192.168.0.110 server1 192.168.0.140 server2 192.168.0.180 server [ ... ]
chmod /etc/ha.d/authkeys files
chmod 0600 /etc/ha.d/authkeys
Prepare new drbd partition for data
mkfs.ext3 /dev/drbd0
Setup exim
dpkg-reconfigure exim4-config
Mount and prepare drbd disk
mkdir /data mount /dev/drbd0 /data ## Create appropriate dirs for data to reside on or hardlink mkdir -p /data/var/log/apache2 mkdir /data/var/log/mysql chown www-data: /data/var/log/apache2 chown mysql: /data/var/log/mysql mkdir -p /data/var/lib/ mv /var/lib/mysql /data/var/lib chown mysql: /data/var/lib/mysql mkdir /data/var/www/ chown www-data: /data/var/www
Install services
## Apache + php5 + mysql apt-get install apache2 php5 php5-mysql mysql-server ## pureftpd apt-get install pure-ftpd
Heartbeat controlled ressources
Stop services and let heartbeat handle it:
/etc/init.d/apache2 stop /etc/init.d/mysql stop ## Copy to cp -p /etc/init.d/mysql /etc/ha.d/resource.d/ cp -p /etc/init.d/apache2 /etc/ha.d/resource.d/ ## Remove old init-scripts for mysql/apache update-rc.d -f apache2 remove update-rc.d -f mysql remove ## Config to use the new storage (/data)