ترجمه مقاله در آستانه شروع دوره آماده شد
DRBD (Distributed Replicated Block Device) یک راه حل ذخیره سازی توزیع شده، انعطاف پذیر و قابل تکرار جهانی برای لینوکس است. محتویات دستگاه های بلوک مانند هارد دیسک ها، پارتیشن ها، حجم های منطقی و غیره را منعکس می کند. بین سرورها کپیهایی از دادهها را روی دو دستگاه ذخیرهسازی ایجاد میکند تا در صورت خرابی یکی از آنها، دادههای روی دومی قابل استفاده باشد.
می توان گفت چیزی شبیه به
در ابتدا، DRBD عمدتاً در خوشههای رایانهای با دسترسی بالا (HA) استفاده میشد، با این حال، با شروع نسخه XNUMX، میتوان از آن برای استقرار راهحلهای ذخیرهسازی ابری استفاده کرد.
در این مقاله نحوه نصب DRBD بر روی CentOS را توضیح خواهیم داد و به طور خلاصه نحوه استفاده از آن برای تکرار فضای ذخیره سازی (پارتیشن) در دو سرور را توضیح خواهیم داد. این مقاله عالی برای شروع با DRBD در لینوکس است.
محیط آزمایش
ما از یک خوشه دو گره برای این تنظیمات استفاده خواهیم کرد.
- نود 1: 192.168.56.101 – tecmint.tecmint.lan
- نود 2: 192.168.56.102 – server1.tecmint.lan
مرحله 1: بسته های DRBD را نصب کنید
DRBD به عنوان یک ماژول هسته لینوکس پیاده سازی شده است. این یک درایور برای یک دستگاه بلوک مجازی است، بنابراین در پایین پشته I/O سیستم قرار دارد.
DRBD را می توان از ELRepo یا EPEL نصب کرد. بیایید با وارد کردن کلید امضای بسته ELRepo و اتصال مخزن در هر دو گره مانند شکل زیر شروع کنیم.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
سپس باید ماژول هسته DRBD و ابزارهای کمکی را روی هر دو گره با استفاده از:
# yum install -y kmod-drbd84 drbd84-utils
اگر SELinux را فعال کردهاید، باید سیاستهایی را پیکربندی کنید تا فرآیندهای DRBD از کنترل SELinux مستثنی شوند.
# semanage permissive -a drbd_t
علاوه بر این، اگر سیستم شما از فایروال (دیوار آتش) استفاده می کند، باید پورت DRBD 7789 را اضافه کنید تا امکان همگام سازی داده ها بین دو گره فراهم شود.
این دستورات را برای اولین گره اجرا کنید:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
سپس این دستورات را برای گره دوم اجرا کنید:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
مرحله 2: ذخیره سازی سطح پایین را آماده کنید
اکنون که DRBD را روی هر دو گره خوشه نصب کرده ایم، باید فضای ذخیره سازی تقریباً یکسان را روی آنها تهیه کنیم. این می تواند یک پارتیشن دیسک سخت (یا کل هارد دیسک فیزیکی)، یک دستگاه RAID نرم افزاری،
برای این مقاله، با استفاده از دستور dd یک دستگاه بلوک تست 2 گیگابایتی ایجاد می کنیم.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
بیایید فرض کنیم این یک پارتیشن استفاده نشده (/dev/sdb1) در یک دستگاه بلوک دوم (/dev/sdb) متصل به هر دو گره است.
مرحله 3. پیکربندی DRBD
فایل پیکربندی اصلی DRBD - /etc/drbd.conf
و فایل های پیکربندی اضافی را می توان در دایرکتوری پیدا کرد /etc/drbd.d
.
برای تکرار فضای ذخیره سازی، باید تنظیمات لازم را به فایل اضافه کنیم /etc/drbd.d/global_common.conf
، که شامل بخش های کلی و کلی از پیکربندی DRBD است و باید منابع را در آن تعریف کنیم. .res
فایل ها.
بیایید یک نسخه پشتیبان از فایل اصلی در هر دو گره تهیه کنیم و سپس فایل جدید را برای ویرایش باز کنیم (از ویرایشگر متن دلخواه خود استفاده کنید).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf
خطوط زیر را به هر دو فایل اضافه کنید:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
فایل را ذخیره کنید و سپس ویرایشگر را ببندید.
بیایید برای لحظه ای به خط پروتکل C نگاه کنیم. DRBD از سه حالت تکرار مختلف (یعنی سه درجه همزمانی تکرار) پشتیبانی می کند:
- پروتکل A: پروتکل تکرار ناهمزمان. اغلب در سناریوهای تکرار مسافت طولانی استفاده می شود.
- پروتکل B: پروتکل تکرار نیمه سنکرون یا پروتکل حافظه همزمان.
- پروتکل C: معمولا برای گره ها در شبکه های با فواصل کوتاه استفاده می شود. این تا حد زیادی رایج ترین پروتکل تکرار مورد استفاده در تنظیمات DRBD است.
این مهم است: انتخاب پروتکل تکرار بر دو عامل استقرار تأثیر می گذارد: امنیت و تأخیر. در مقابل، توان عملیاتی به طور قابل توجهی به پروتکل تکرار انتخابی بستگی ندارد.
مرحله 4: یک منبع اضافه کنید
Resource یک اصطلاح چتر است که به تمام جنبه های یک مجموعه داده تکراری خاص اشاره دارد. ما منبع خود را در فایل تعریف می کنیم /etc/drbd.d/test.res
.
موارد زیر را به فایل هر دو گره اضافه کنید (به یاد داشته باشید که متغیرها را با مقادیر واقعی محیط خود جایگزین کنید).
به نام هاست توجه کنید، باید نام میزبان شبکه را مشخص کنیم که با استفاده از دستور uname به دست می آید. -n
.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}
که در آن:
- در نام میزبان: قسمت on که دستور پیکربندی تودرتو در آن اعمال می شود.
- آزمون: این نام منبع جدید است.
- دستگاه /dev/drbd0: یک دستگاه بلوک مجازی جدید را نشان می دهد که توسط DRBD مدیریت می شود.
- دیسک /dev/sdb1: این یک پارتیشن دستگاه بلوک است که یک دستگاه پشتیبان برای دستگاه DRBD است.
- متا دیسک: تعیین می کند که DRBD ابرداده خود را در کجا ذخیره می کند. داخلی به این معنی است که DRBD ابرداده خود را در همان دستگاه فیزیکی سطح پایین ذخیره می کند که داده های واقعی در حال تولید است.
- نشانی: آدرس IP و شماره پورت گره مربوطه را نشان می دهد.
همچنین توجه داشته باشید که اگر پارامترها در هر دو هاست مقادیر یکسانی داشته باشند، می توانید آنها را مستقیماً در قسمت منابع مشخص کنید.
به عنوان مثال، پیکربندی بالا را می توان به شکل زیر بازسازی کرد:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}
مرحله 5. منبع را راه اندازی و راه اندازی کنید
برای تعامل با DRBD از ابزارهای مدیریتی زیر استفاده خواهیم کرد (که با ماژول هسته برای پیکربندی و مدیریت منابع DRBD در تعامل است):
- دربدادم: ابزار مدیریت سطح بالا DRBD.
- drbdsetup: یک ابزار مدیریت سطح پایین برای اتصال دستگاههای DRBD به دستگاههای پشتیبان، پیکربندی جفت دستگاههای DRBD برای منعکس کردن دستگاههای پشتیبان آنها، و برای تأیید پیکربندی دستگاههای در حال اجرا DRBD.
- دربدمتا: ابزار مدیریت ابرداده.
پس از افزودن تمام تنظیمات منبع اولیه، باید منبع را در هر دو گره فراخوانی کنیم.
# drbdadm create-md test
راه اندازی فروشگاه فراداده
سپس باید آن را اجرا کنیم، که منبع را به دستگاه پشتیبان آن متصل می کند، سپس پارامترهای تکرار را تنظیم می کند و منبع را به همتای خود متصل می کند:
# drbdadm up test
حالا اگر دستور را اجرا کنید /dev/sdb1
:
# lsblk
لیست دستگاه های بلوک
برای غیرفعال کردن یک منبع، اجرا کنید:
# drbdadm down test
برای بررسی وضعیت یک منبع، دستور زیر را اجرا کنید (توجه داشته باشید که وضعیت دیسک ها در این مرحله مورد انتظار است. ناسازگار/ناسازگار):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
بررسی وضعیت یک منبع روشن است
بد
مرحله 6: منبع اولیه/منبع همگام سازی دستگاه اولیه را تنظیم کنید
در این مرحله، DRBD آماده حرکت است. حال باید مشخص کنیم که کدام گره باید به عنوان منبع همگام سازی اولیه دستگاه استفاده شود.
دستور زیر را فقط روی یک گره اجرا کنید تا همگام سازی کامل اولیه آغاز شود:
# drbdadm primary --force test
# drbdadm status test
تنظیم گره اولیه به عنوان دستگاه اولیه
هنگامی که همگام سازی کامل شد، وضعیت هر دو درایو باید UpToDate باشد.
مرحله 7: تست تنظیمات DRBD
در نهایت، باید بررسی کنیم که آیا دستگاه DRBD در صورت نیاز برای ذخیره داده های تکراری کار می کند یا خیر. به یاد داشته باشید که ما از یک حجم دیسک خالی استفاده کردیم، بنابراین باید یک سیستم فایل روی دستگاه ایجاد کنیم و آن را نصب کنیم تا بررسی کنیم که آیا می توانیم از آن برای ذخیره داده های تکراری استفاده کنیم یا خیر.
ما باید با استفاده از دستور زیر در گره ای که در آن همگام سازی کامل اولیه (که منبعی با نقش اصلی دارد) یک فایل سیستم روی دستگاه ایجاد کنیم:
# mkfs -t ext4 /dev/drbd0
ایجاد یک فایل سیستم بر روی حجم Drbd
سپس آن را همانطور که نشان داده شده است سوار کنید (می توانید نام مناسبی برای نقطه نصب بگذارید):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
حالا چند فایل را در نقطه نصب بالا کپی یا ایجاد کنید و یک لیست طولانی با آنها ایجاد کنید
# cd /mnt/DRDB_PRI/
# ls -l
محتویات جلد اصلی Drbd را فهرست کنید
در مرحله بعد، دستگاه را جدا کنید (مطمئن شوید که مانت باز نیست، پس از جدا کردن دایرکتوری برای جلوگیری از خطا، دایرکتوری را تغییر دهید) و نقش گره را از اولیه به ثانویه تغییر دهید:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test
گره دیگر را (که منبعی با نقش ثانویه دارد) اصلی کنید، سپس یک دستگاه را به آن وصل کنید و لیست بلندبالایی از نقاط نصب را صادر کنید. اگر راهاندازی به خوبی کار میکند، همه فایلهای ذخیره شده روی حجم باید در آنجا باشند:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l
بررسی تنظیم DRBD در حال اجرا بر روی گره ثانویه.
برای اطلاعات بیشتر، به صفحات راهنمای ابزارهای مدیریتی مراجعه کنید:
# man drbdadm
# man drbdsetup
# man drbdmeta
راهنما:
خلاصه
DRBD بسیار انعطاف پذیر و همه کاره است و آن را به یک راه حل تکرار ذخیره سازی مناسب برای افزودن HA به تقریباً هر برنامه ای تبدیل می کند. در این مقاله نحوه نصب DRBD بر روی CentOS 7 را نشان دادیم و به طور خلاصه نحوه استفاده از آن را برای تکرار ذخیره سازی نشان دادیم. با استفاده از فرم بازخورد زیر، نظرات خود را با ما در میان بگذارید.
منبع: www.habr.com