DRBD (جهاز البلوك المكرر الموزع) هو حل تخزين موزع ومرنة ومتكرر عالمياً لنظام لينكس. إنه يعكس محتويات الأجهزة المحظورة مثل محركات الأقراص الصلبة والأقسام والأحجام المنطقية وما إلى ذلك. بين الخوادم. يقوم بإنشاء نسخ من البيانات على جهازي تخزين بحيث يمكن استخدام البيانات الموجودة على الجهاز الآخر في حالة فشل أحدهما.
يمكننا القول أن هذا شيء يشبه تكوين شبكة RAID 1 مع الأقراص المعينة لخوادم مختلفة. ومع ذلك ، فإنه يعمل بشكل مختلف تمامًا عن RAID (حتى متصل بالشبكة).
في البداية ، تم استخدام DRBD في المقام الأول في مجموعات الكمبيوتر عالية التوفر (HA) ، ومع ذلك ، بدءًا من الإصدار التاسع ، يمكن استخدامه لنشر حلول التخزين السحابي.
في هذه المقالة ، سنرشدك إلى كيفية تثبيت DRBD على CentOS وسنشرح باختصار كيفية استخدامه لنسخ التخزين (القسم) عبر خادمين. هذه هي المقالة المثالية لبدء استخدام DRBD على Linux.
بيئة الاختبار
سنستخدم مجموعة من عقدتين لهذا الإعداد.
- العقدة 1: 192.168.56.101 - tecmint.tecmint.lan
- العقدة 2: 192.168.56.102 - server1.tecmint.lan
الخطوة 1: تثبيت حزم DRBD
يتم تطبيق DRBD كوحدة نواة Linux. إنه برنامج تشغيل جهاز كتلة افتراضي ، لذلك يجلس في الجزء السفلي من مكدس الإدخال / الإخراج الخاص بالنظام.
يمكن تثبيت 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 kernel والأدوات المساعدة على كلا العقدتين باستخدام:
# 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 برمجيًا أو وحدة تخزين منطقية LVM أو أي نوع آخر من أجهزة الحظر الموجودة على نظامك.
في هذا البرنامج التعليمي ، سنقوم بإنشاء جهاز حظر اختبار بسعة 2 جيجا بايت باستخدام الأمر dd.
# 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 ثلاثة أنماط مختلفة للنسخ المتماثل (أي ثلاث درجات التزامن النسخ المتماثل) ، وهي:
- البروتوكول أ: بروتوكول النسخ المتزامن ؛ الأكثر استخدامًا في سيناريوهات النسخ المتماثل للمسافات الطويلة.
- البروتوكول B: بروتوكول النسخ المتزامن شبه المتزامن أو بروتوكول الذاكرة المتزامنة.
- البروتوكول C: يستخدم عادةً للعقد على شبكات المسافات القصيرة ؛ هو إلى حد بعيد بروتوكول النسخ المتماثل الأكثر استخدامًا في إعدادات DRBD.
هام : يؤثر اختيار بروتوكول النسخ المتماثل على عاملين للنشر: الأمان وزمن الوصول. على النقيض من ذلك ، فإن الإنتاجية مستقلة إلى حد كبير عن بروتوكول النسخ المتماثل المختار.
الخطوة 4. إضافة مورد
المورد هو مصطلح جماعي يشير إلى جميع جوانب مجموعة بيانات محددة يتم نسخها. سنحدد مواردنا في ملف
/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;
}
}
}
أين:
- على hostname : القسم الموجود الذي ينتمي إليه بيان التكوين المتداخل.
- اختبار : هذا هو اسم المورد الجديد.
- device / dev / drbd0 : تحديد جهاز كتلة ظاهري جديد يديره DRBD.
- القرص / dev / sdb1 : هذا هو قسم جهاز كتلة هو جهاز النسخ الاحتياطي لجهاز DRBD.
- قرص التعريف : يحدد مكان تخزين DRBD لبياناته الوصفية. الوسائل الداخلية تخزن DRBD بياناتها الوصفية على نفس الجهاز الفعلي ذي المستوى المنخفض مثل البيانات الفعلية في الإنتاج.
- address : يحدد عنوان 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 ، سنستخدم أدوات الإدارة التالية (التي تتفاعل مع وحدة kernel لتكوين وإدارة موارد DRBD):
- drbdadm : أداة إدارية عالية المستوى خاصة بإدارة مخاطر الكوارث.
- drbdsetup : أداة إدارية ذات مستوى أدنى لتوصيل أجهزة DRBD بأجهزتها الاحتياطية ، وتهيئة أزواج أجهزة DRBD لتعكس أجهزتها الاحتياطية ، وللتحقق من تكوين أجهزة DRBD قيد التشغيل.
- Drbdmeta : أداة لإدارة البيانات الوصفية.
بعد إضافة جميع تكوينات المورد الأولية ، نحتاج إلى استدعاء المورد على كلا العقدتين.
# drbdadm create-md test
تهيئة مخزن البيانات الوصفية
بعد ذلك ، يجب أن نبدأه ، والذي سيربط المورد بجهاز النسخ الاحتياطي الخاص به ، ثم يضبط معلمات النسخ المتماثل ويربط المورد بنظيره:
# drbdadm up test
الآن إذا قمت بتشغيل الأمر lsblk ، ستلاحظ أن جهاز DRBD / وحدة التخزين drbd0 مرتبطة بجهاز النسخ الاحتياطي
/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/
الآن قم بنسخ أو إنشاء بعض الملفات عند نقطة التحميل أعلاه وقم بعمل قائمة طويلة باستخدام الأمر ls :
# 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 .
ملخص
DRBD مرنة للغاية ومتعددة الاستخدامات ، مما يجعلها حل نسخ متماثل للتخزين مناسب لإضافة HA إلى أي تطبيق تقريبًا. في هذه المقالة ، أوضحنا لك كيفية تثبيت DRBD على CentOS 7 وعرضنا لفترة وجيزة كيفية استخدامه لنسخ التخزين. لا تتردد في مشاركة أفكارك معنا باستخدام نموذج التعليقات أدناه.
تعلم المزيد عن الدورة.