تكوين DRBD لتكرار التخزين على خادمين CentOS 7

تم إعداد ترجمة المقال عشية بدء الدورة “Linux Administrator. الافتراضية والمجموعات " .








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 وعرضنا لفترة وجيزة كيفية استخدامه لنسخ التخزين. لا تتردد في مشاركة أفكارك معنا باستخدام نموذج التعليقات أدناه.






تعلم المزيد عن الدورة.







All Articles