در این مقاله به راه اندازی DRBD با OCFS2 در دبیان می پردازیم.
توجه: برای دیدن فیلم آموزشی نصب دبیان بصورت حرفه ای اینجا و برای دیدن لست آموزش های لینوکس اینجا را کیلیک کنید.
DRBD چیست؟
این ابزار یا تکنولوژی در واقع همان replication کردن hard disk می باشد که هم بصورت primary/secondary و هم بصورت primary/primary قابل راه اندازی است.
ما در این مقاله به آموزش هر دو روش خواهیم پرداخت.
در ابتدا تنظیمات هر دو ماشین را برای درک بهتر در زیر می آوریم
ماشین ۱:
Hostname: drbd1.nowlearn.ir
IP: 192.168.100.110
ماشین ۲:
Hostname: drbd2.nowlearn.ir
IP: 192.168.100.120
بعد از معرفی ماشین ها به صورت زیر عمل میکنیم
نصب DRBD بر روی ماشین ها
برای این منظور دستور زیر را بر روی هر دو ماشین دبیان خود اجرا میکنیم
apt-get install -y drbd8-utils
برای اینکه یک شبیه ساز برای device خود در DRBD بسازین دستورات زیر را بر روی هر دو ماشین اجرا میکنیم
dd if=/dev/zero of=/root/drbd.testimage bs=1024k count=1024
losetup /dev/loop1 /root/drbd.testimage
نکته: برای انکه کارمان ساده تر شود و هر دو ماشین به راحتی هم دیگر را ببینند فایل /rtc/hosts هر دو ماشین را ویرایش میکنیم و عبارات زیر را به آن اضافه میکنیم.
۱۹۲٫۱۶۸٫۱۰۰٫۱۱۰ drbd1.nowlearn.ir
۱۹۲٫۱۶۸٫۱۰۰٫۱۲۰ drbd2.nowlearn.ir
بعد نصب بسته های مربوطه نوبت به تنظیمات آن میرسد.
تنظیم DRBD بصورت primary/secondary
برای این منظور دستور زیر را بر روی هر دو ماشین اجرا میکنیم
vi /etc/drbd.d/simo.res
و سپس محتویات زیر را در آن کپی میکنیم .
resource drbdsimo {
<TAB>meta-disk internal;
<TAB>device /dev/drbd1;
<TAB>syncer {
<TAB><TAB>verify-alg sha1;
<TAB>}
<TAB>net {
<TAB><TAB>allow-two-primaries;
<TAB>}
# drbd1.nowlearn.ir -> hostname !!!!!!
on drbd1.nowlearn.ir {
<TAB>disk /dev/loop1;
<TAB>address 192.168.100.110:7789;
<TAB>}
# drbd2.nowlearn.ir -> hostname !!!!!!
on drbd2.nowlearn.ir {
<TAB>disk /dev/loop1;
<TAB>address 192.168.100.120:7789;
<TAB>}
}
توجه : بجای عبارت <TAB> از کلید tab بر روی کیبرد به تعداد تکرار استفاده کنید.
بعد از انجام کارهای بالا نوبت به start کردن سرویس DRBD میرسد.
یرای این منظور دستورات زیر را بر روی هر دو ماشین اجرا میکینم .
drbdadm create-md drbdsimo
modprobe drbd
drbdadm up drbdsimo
حالا دستور زیر را بر روی ماشینی که میخواهیم primary باشد اجرا میکنیم
drbdadm — –overwrite-data-of-peer primary drbdsimo
برای چک کردن درست کار کردن تنظیمات دستور زیر را اجرا میکنیم و باید خروجی مانند زیر ببینیم
cat /proc/drbd
# version: 8.4.3 (api:1/proto:86-101)
# srcversion: 1A9F77B1CA5FF92235C2213
#
# ۱: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—–
# ns:90396 nr:0 dw:0 dr:91308 al:0 bm:5 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:958112
# [>……………….] sync’ed: 9.0% (958112/1048508)K
# finish: 0:02:38 speed: 6,024 (6,024) K/sec
بعد از اینکه از تنظیمات مطمئن شدیم باید هارد دیسکمان را که الان بصورت drbd است را format کنیم و سپس mount کنیم. برای این منظور دستور زیر را اجرا میکنیم .
mkfs.xfs /dev/drbd1
mount /dev/drbd1 /mnt
نکته: دستورات بالا را فقط در ماشین primary اجرا کنید.
نکته: اگر بخواهیم جای ماشین های primary و secondary را عوض کنیم بصورت زیر عمل میکنیم.
ابتدا دستورات زیر را بر روی ماشین primary اجرا میکنیم
umount /dev/drbd1
drbdadm secondary drbdsimo
سپس بر روی ماشین secondary دستور زیر را اجرا میکنیم
drbdadm primary drbdsimo
تنظیم DRBD بصورت primary/primary
ابتدا برای اینکه کارمان آسان تر شود اسکریپ زیر را بر روی هر دو ماشین ایجاد میکنیم.
vi /etc/init.d/loop-for-drbd
و محتویات زیر را در آن کپی میکنیم
#!/bin/sh
#
DRBD_FILEDATA_SRC=”/root/drbd.testimage”
DRBD_FILEDATA_DEVICE=”/dev/loop1″
LOSETUP_CMD=/sbin/losetup
# Source function library
. /etc/rc.d/init.d/functions
start () {
echo -n $”Setting up DRBD loop devices…”
$LOSETUP_CMD $DRBD_FILEDATA_DEVICE $DRBD_FILEDATA_SRC
echo
}
stop() {
echo -n $”Tearing down DRBD loop devices…”
$LOSETUP_CMD -d $DRBD_FILEDATA_DEVICE
echo
}
restart() {
stop
start
}
case “$1” in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
*)
echo $”Usage: $0 {start|stop}”
exit 1
esac
exit $RETVAL
و سپس برای اینکه اسکریپت خاصیت اجرایی داشته باشد دستور زیر را بر روی هر دو ماشین جایی که اسکریپت را ساختیم اجرا میکنیم
chmod a+x /etc/init.d/loop-for-drbd
یعد از ساختن اسکریپت بر روی هر دو ماشین دستور زیر را اجرا میکنیم و فایلی که در زیر آمده را میسازیم.
vi /etc/drbd.d/simo.res
و محتویات زیر را در آن کپی میکنیم
resource drbdsimo {
<TAB>meta-disk internal;
<TAB>device /dev/drbd1;
<TAB>disk /dev/loop1;
<TAB>syncer { rate 1000M; }
<TAB><TAB>net {
<TAB><TAB><TAB>allow-two-primaries;
<TAB><TAB><TAB>after-sb-0pri discard-zero-changes;
<TAB><TAB><TAB>after-sb-1pri discard-secondary;
<TAB><TAB><TAB>after-sb-2pri disconnect;
<TAB><TAB>}
<TAB>startup { become-primary-on both; }
<TAB>on drbd1.nowlearn.ir { address 192.168.100.110:7789; }
<TAB>on drbd2.nowlearn.ir { address 192.168.100.120:7789; }
}
توجه : بجای عبارت <TAB> از کلید tab بر روی کیبرد به تعداد تکرار استفاده کنید.
حالا نوبت به start کردن و سپس verified کردن drbd میرسد که یصورت زیر عمل میکنیم
ابتدا بر روی هر دو ماشین دستورات زیر را اجرا میکنیم
drbdadm create-md drbdsimo
modprobe drbd
drbdadm up drbdsimo
سپس بر روی ماشین ۱ دستور زیر را اجرا میکنیم
drbdadm — –overwrite-data-of-peer primary drbdsimo
و بر روی ماشین ۲ دستور زیر را اجرا میکنیم
drbdadm primary drbdsimo
در اینجا کار ما با هر دو روش راه اندازی drbd تمام شده است و نوبت به format کردن هارد دیسک با ocfs2 میرسد.
برای آشنایی با نصب و تنظیم ocfs2 بر روی دبیان اینجا را کیلیک کنید.
نکته: برای فرمت کردن drbd با ocfs2 بصورت زیر عمل میکنیم.
mkfs.ocfs2 -L “web” /dev/drbd1