راه اندازی DRBD با OCFS2 در دبیان

در این مقاله به راه اندازی DRBD با OCFS2 در دبیان می پردازیم.

توجه: برای دیدن فیلم آموزشی نصب دبیان بصورت حرفه ای اینجا و برای دیدن لست آموزش های لینوکس اینجا را کیلیک کنید.

DRBD چیست؟

این ابزار یا تکنولوژی در واقع همان replication کردن hard disk می باشد که هم بصورت primary/secondary و هم بصورت primary/primary قابل راه اندازی است.

ما در این مقاله به آموزش هر دو روش خواهیم پرداخت.

drbd

در ابتدا تنظیمات هر دو ماشین را برای درک بهتر در زیر می آوریم

ماشین ۱:

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *