ການສ້າງ REPLICATION ຂໍ້ມູນດ້ວຍ DRBD

ການສ້າງ REPLICATION ຂໍ້ມູນດ້ວຍ DRBD

 

 

DRBD (Distributed Replicated Block Device) ຄືຊັອບແວທີ່ສາມາດສໍາເນົາຂໍ້ມູນໃຫ້ກັບຮາດດິດ ( ຫຼື ອຸປະກອນເກັບຂໍ້ມູນອື່ນໆ ) ໃຫ້ຂໍ້ມູນຄືກັນທຸກປະການຜ່ານທາງເຄືອຂ່າຍ ການສໍາເນົາຂໍ້ມູນບໍ່ພຽງແຕ່ໄຟລແຕ່ເລິກລົງໄປເຖິງລະດັບ block ຂອງຮາດດິດ ບາງຄົນກໍອາດຈະໃຊ້ຄໍາວ່າ RAID1 ຜ່ານທາງເຄືອຂ່າຍ ຈຸດປະສົງກໍເພື່ອສໍາຮອງຂໍ້ມູນໄປສະຖານທີ່ປະຕິບັດການສໍາຮອງ (disaster recovery site – DR site) ຖ້າສະຖານທີ່ເຮັດວຽກຫຼັກມີບັນຫາສາມາດຍ້າຍໄປໄວ້ບ່ອນສໍາຮອງໄດ້ເພື່ອໃຫ້ການປະຕິບັດງານໄດ້ຢ່າງຕໍ່ເນື່ອງ

ໃນການທົດລອງນີ້ເຮົາຈະໃຊ້ 2 ເຄື່ອງ ແລະ ຈໍາລອງ Harddisk ໄວ້ 2 ລູກທັງ 2 ເຄື່ອງ (sda + sdb)

ກວດກາຄວາມພ້ອມຂອງ Disk

ເຮັດໃຫ້ທັງ 2 ເຄື່ອງຮູ້ຈັກກັນດ້ວຍ hostname (ໃນຂັ້ນຕອນການ config ເຮົາຈະອ້າງ hostname ແທນ IP )


ຂັ້ນຕອນການຕິດຕັ້ງ DRBD

All Server

1 > ຕິດຕັ້ງ Epel Packages

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

2 > ອັບເດດ repo

yum -y update

3 > ຕິດຕັ້ງ DRBD

[root@host1 ~]# yum -y install drbd83-utils kmod-drbd83
[root@host2 ~]# yum -y install drbd83-utils kmod-drbd83

4 > ສ້າງພາທິຊັ່ນສໍາລັບ DRBD

[root@host1 ~]# fdisk -cu /dev/sdb
[root@host2 ~]# fdisk -cu /dev/sdb

5 > ສ້າງ ໄຟລ clusterdb_res.res

[root@host1 ~]# vi /etc/drbd.d/clusterdb_res.res
resource clusterdb_res {
	protocol C;
	handlers {
	pri-on-incon-degr “/usr/lib/drbd/notify-pri-on-incon-degr.sh;/usr/lib/drbd/notifyemergency-reboot.sh;echo b > /proc/sysrq-trigger; reboot -f”;
	pri-lost-after-sb “/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notifyemergency-reboot.sh; echo b > /proc/sysrq-trigger ;reboot -f”;
	local-io-error “/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergencyshutdown.sh; echo o > /proc/sysrq-trigger ; halt -f”;fence-peer “/usr/lib/drbd/crm-fence-peer.sh”;
	}

	startup {
	degr-wfc-timeout 120; # 2 minutes.
	outdated-wfc-timeout 2; # 2 seconds.
	}

	disk {
	on-io-error detach;
	}

	net {
	cram-hmac-alg “sha1”;
	shared-secret “clusterdb”;
	after-sb-0pri disconnect;
	after-sb-1pri disconnect;
	after-sb-2pri disconnect;
	rr-conflict disconnect;
	}

	syncer {
	rate 10M;
	al-extents 257;
	on-no-data-accessible io-error;
	}

	on host1 {
	device /dev/drbd0;
	disk /dev/sdb1;
	address 192.168.0.221:7788;
	flexible-meta-disk internal;
	}

	on host2 {
	device /dev/drbd0;
	disk /dev/sdb1;
	address 192.168.0.222:7788;
	meta-disk internal;
	}
}

6 > ຄັດລອກໄຟລໄປທີ່ host2

[root@host1 ~]# scp /etc/drbd.d/clusterdb_res.res host2:/etc/drbd.d/clusterdb_res.res

7 > ສ້າງ drbd partition

[root@host1 ~]# drbdadm create-md clusterdb_res
[root@host2 ~]# drbdadm create-md clusterdb_res

8 > ເປີດນໍາໃຊ້ drbd

[root@host1 ~]# service drbd start
[root@host2 ~]# service drbd start

ສາມາດກວດສອບຄວາມພ້ອມນໍາໃຊ້

service drbd status

9 > ສັງເກດວ່າໃນຕອນນີ້ ສະຖານະຈະເປັນ Secondaty/Secondary ເຊິ່ງເຮົາຈະຕ້ອງເຮັດໃຫ້ເຄື່ອງໃດເຄື່ອງໜຶ່ງເປັນ Primary ເພື່ອທີ່ຈະ Mount ມານໍາໃຊ້

[root@host1 ~]# drbdadm primary –force data
[root@host1 ~]# drbdadm — –overwrite-data-of-peer primary all

ສັງເກດວ່າສະຖານະຕອນນີ້ເປັນ Primary/Secondary ແລ້ວ

10 > Format partition

[root@host1 ~]# mkfs -t ext4 /dev/drbd0

Screen Shot 2556-08-21 at 2.10.45 PM

ທົດລອງ Mount ເພື່ອນໍາໃຊ້

[root@host1 ~]# mkdir -p /home/putter
[root@host1 ~]# mount /dev/drbd0 /home/putter/

ເຮົາສາມາດ Mount ໄດ້ສະເພາະທີ່ເປັນ Primary ເທົ່ານັ້ນຫາກຕ້ອງການປ່ຽນຈາກ Primary ເປັນ Secondary

[root@host1 ~]# drbdadm secondary clusterdb_res
[root@host2 ~]# drbdadm — –overwrite-data-of-peer primary all

** ຫາກໃຜໄດ້ເປີດໃຊ້ firewall ກໍເປີດ port tcp 7788 ດ້ວຍ

ຂໍ້ມູນເພີ່ມເຕີມ
http://www.drbd.org/
http://www.raspberrypithai.com/2013/01/10/drbd-raspberry-pi/