2. What is DRBD?
● Distributed Replicated Block Device
● RAID 1 mirror across network
● Realtime replications
● Linux-only kernel module
● 2 nodes – Primary/Secondary
● Single/Dual primary mode
● Open source, free
3. Visual Overview
Primary Server Secondary Server
Service (MySQL, Apache, etc) Service (MySQL, Apache, etc)
File system File system
OS OS
Buffer cache Buffer cache
DRBD DRBD
Disk TCP/IP TCP/IP Disk
Scheduler Scheduler
Disk Driver NIC Driver NIC Driver Disk Driver
Network Card Network Card
Disk Disk
Network Card Network Card
Original chart: http://www.drbd.org/users-guide/ch-fundamentals.html
4. Uses
● Database Server( MySQL)
● Web Server (Apache)
● File Server (Samba)
● FTP
● DNS
● Email (Postfix)
● Source Repository (Subversion)
5. My Setup
● App 1 ● App 2
● AMD Opteron 180 ● AMD Sempron 2800+
2.4GHz dual-core ● 3GB RAM
● 4GB RAM ● 1 x 250 IDE Hard
● 2 x 250GB SATA Drive
Software RAID 1 ● 2 x Gigabit NICs
● 2 x Gigabit NICs
13. Heartbeat
● Exchange heartbeats
● When the heartbeat fails, other begins takeover
● Use 2 NICs (try to prevent split brain)
● Uses LSB init scripts
● Version 1
– Simple as cake
● Version 2
– GUI, allows more complex situations
17. Samba
[global]
log file = /var/log/samba/log.%m
passwd chat = *EntersnewsUNIXspassword:*
%nn *RetypesnewsUNIXspassword:* %nn [data]
*passwd:*passwordsupdatedssuccessfully* . writeable = yes
socket options = TCP_NODELAY path = /mnt/data
obey pam restrictions = yes force group = root
encrypt passwords = true force user = root
passwd program = /usr/bin/passwd %u create mode = 664
passdb backend = tdbsam directory mode = 775
dns proxy = no
server string = %h server (Samba, Ubuntu) [www]
invalid users = root force user = www-data
workgroup = WORKGROUP writeable = yes
os level = 20 create mode = 664
auto services = data path = /mnt/data/www
security = user directory mode = 775
syslog = 0 force group = www-data
panic action = /usr/share/samba/panic-action %d
max log size = 1000
# guest account = nobody
18. Split Brain
● Both servers are primary
● Which one is up-to-date?
● How do you prevent split brain?
19. Stonith
apt-get install stonith
Shoot
The
Other
Node
In
The
Head
● Home made stonith device
● Connects serial port to other server's reset switch
● ~$40 in Radio Shack parts to build 2 of them
● http://www.scl.co.uk/rcd_serial/README.rcd_serial
20. MySQL
● For maximum performance, use RAID 10 with
battery backed cache RAID controller
● Write transactions to disk so they get replicated
– innodb_flush_log_at_trx_commit=1
– sync_binlog=1
● More info:
– http://www.mysqlperformanceblog.com/2008/06/02/how-much-overhead-drdb-could-cause/
21. Demo
● Reboot app1
● App2 become primary
● App1 comes online, re-syncs
● Turn off app1's network
● DRBD on app2 loses connection with app1
● Run home and enable app1's networking :)
22. More Info
● http://www.drbd.org/
● http://www.cb1inc.com/taxonomy/term/70