DRBD, heartbeat on Debian Etch

From Skytech
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


This article is much out-of-date; don't follow it!

DRBD & Heartbeat on Debian Etch

Install DRBD

      • DRBD is now 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)