إعداد Pacemaker على خادم SUSE Linux Enterprise في Azure
تتناول هذه المقالة كيفية إعداد Pacemaker على SUSE Linux Enterprise Server (SLES) في Azure.
نظرة عامة
في Azure، لديك خياران لإعداد إنشاء الحد في مجموعة منظّم القلب لـ SLES. يمكنك استخدام عامل إنشاء الحد لـ Azure، والذي يعيد تشغيل عقدة فاشلة عبر Azure APIs، أو يمكنك استخدام جهاز SBD.
استخدام جهاز SBD
يمكنك تكوين جهاز SBD باستخدام أي من الخيارين:
SBD مع خادم هدف iSCSI:
يتطلب جهاز SBD جهازًا ظاهريًا إضافيًا واحدًا على الأقل يعمل كخادم هدف لواجهة نظام الكمبيوتر الصغير للإنترنت (iSCSI) ويوفر جهاز SBD. ومع ذلك، يمكن مشاركة خوادم هدف iSCSI مع مجموعات Pacemaker الأخرى. تتمثل ميزة استخدام جهاز SBD في أنه إذا كنت تستخدم بالفعل أجهزة SBD محليًا، فإنها لا تتطلب أي تغييرات في كيفية تشغيل مجموعة Pacemaker.
يمكنك استخدام ما يصل إلى ثلاثة أجهزة SBD لنظام مجموعة أجهزة Pacemaker للسماح لـ SBD بأن تصبح غير متوفرة، على سبيل المثال أثناء تصحيح نظام التشغيل من خادم الهدف iSCSI. إذا كنت ترغب في استخدام أكثر من جهاز SBD واحد لكل جهاز Pacemaker، تأكد من نشر عدة خوادم هدف iSCSI والاتصال SBD واحد من كل خادم هدف iSCSI. نوصي باستخدام جهاز واحد أو ثلاثة أجهزة SBD. لا يمكن لجهاز تنظيم ضربات القلب أن يقوم بتسييج عقدة الكتلة تلقائيًا إذا تم تكوين جهازي SBD فقط وكان أحدهما غير متوفر. إذا كنت تريد أن تكون قادرًا على إنشاء الحد الزمني عندما يكون خادم هدف iSCSI معطلاً، فيجب عليك استخدام ثلاثة أجهزة SBD، وبالتالي، ثلاثة خوادم هدف iSCSI. هذا هو التكوين الأكثر مرونة عند استخدام SBDs.
هام
عندما تقوم بتخطيط ونشر عقد Linux Pacemaker وأجهزة SBD، لا تسمح بالتوجيه بين أجهزتك الظاهرية والأجهزة الظاهرية التي تستضيف أجهزة SBD بالمرور عبر أي أجهزة أخرى، مثل الأجهزة الظاهري للشبكة (NVA).
يمكن أن يكون لأحداث الصيانة وغيرها من المشكلات المتعلقة بـ NVA تأثير سلبي على استقرار وموثوقية التكوين العام للكتلة. لمزيد من المعلومات، راجع قواعد التوجيه المعرفة من جانب المستخدم.
SBD مع قرص Azure المشترك:
لتكوين جهاز SBD، تحتاج إلى إرفاق قرص Azure مشترك مفرد على الأقل بجميع الأجهزة الظاهرية التي تعد جزءًا من مجموعة Pacemaker. تتمثل ميزة جهاز SBD الذي يستخدم قرص Azure المشترك في أنك لا تحتاج إلى نشر أجهزة ظاهرية إضافية.
فيما يلي بعض الاعتبارات المهمة حول أجهزة SBD عند استخدام قرص Azure المشترك:
- يتم دعم قرص Azure المشترك مع Premium SSD كجهاز SBD.
- أجهزة SBD التي تستخدم قرص Azure المشترك مدعومة في قابلية الوصول العالية لـ SLES 15 في SP01 والإصدارات الأحدث.
- يتم دعم أجهزة SBD التي تستخدم قرص Azure المشترك المتميز على التخزين المتكرر محليًا (LRS) والتخزين المتكرر للمنطقة (ZRS).
- اعتمادا على نوع التوزيع الخاص بك، اختر التخزين المتكرر المناسب لقرص Azure المشترك كجهاز SBD الخاص بك.
- جهاز SBD الذي يستخدم LRS للقرص المشترك المميز لـ Azure (skuName - Premium_LRS) مدعوم فقط مع النشر في مجموعة التوفر.
- يُوصى باستخدام جهاز SBD يستخدم ZRS للقرص المشترك المميز لـ Azure (skuName - Premium_ZRS) مع النشر في مناطق التوفر.
- لا يتوفر ZRS للقرص المُدار حاليًا في جميع المناطق ذات مناطق التوفر. ولمزيد من المعلومات، راجع قسم "Limitation" في ZRS في خيارات التكرار للأقراص المدارة.
- لا يلزم أن يكون القرص المشترك Azure الذي تستخدمه لأجهزة SBD كبيرا. تحدد قيمة maxShares عدد عقد نظام المجموعة التي يمكنها استخدام القرص المشترك. على سبيل المثال، يمكنك استخدام أحجام الأقراص P1 أو P2 لجهاز SBD على مجموعة ثنائية العقد مثل SAP ASCS / ERS أو SAP HANA.
- لتوسيع نطاق HANA باستخدام النسخ المتماثل لنظام HANA (HSR) وPacemaker، يمكنك استخدام قرص Azure المشترك لأجهزة SBD في مجموعات مع ما يصل إلى أربعة عُقد لكل موقع نسخ متماثل نظرًا للحد الحالي من maxShares.
- لا نوصي بإرفاق جهاز SBD للقرص المشترك Azure عبر مجموعات Pacemaker.
- إذا كنت تستخدم العديد من أجهزة SBD لقرص Azure المشترك، فتحقق من الحد الأقصى لعدد أقراص البيانات التي يمكن إرفاقها بجهاز ظاهري.
- ولمزيد من المعلومات حول القيود المفروضة على أقراص Azure المشتركة، راجع بعناية قسم "Limitations" في وثائق القرص المشترك لـ Azure.
استخدام عامل الحد الزمني لـ Azure
يمكنك إعداد إنشاء الحد باستخدام عامل إنشاء الحد لـ Azure. يتطلب عامل Azure fence هويات مدارة لأجهزة نظام المجموعة الظاهرية أو كيان خدمة يدير إعادة تشغيل العقد الفاشلة عبر واجهات برمجة تطبيقات Azure. لا يتطلب عامل Azure fence توزيع أجهزة افتراضية إضافية.
SBD مع خادم هدف iSCSI
لاستخدام جهاز SBD يستخدم خادم الهدف iSCSI للحد الزمني، اتبع الإرشادات الواردة في الأقسام التالية.
إعداد خادم الهدف iSCSI
تحتاج أولاً إلى إنشاء الأجهزة الظاهرية الهدف لـ iSCSI. يمكنك مشاركة خادم الهدف iSCSI مع مجموعات متعددة لـ Pacemaker.
يمكنك نشر SLES 12 SP3 الجديدة أو أجهزة ظاهرية أعلى واتصل بها عبر SSH. لا يلزم أن تكون الأجهزة كبيرة الحجم. أحجام الأجهزة الظاهرية Standard_E2s_v3 أو Standard_D2s_v3 تكون كافية. تأكد من استخدام تخزين Premium لقرص نظام التشغيل.
على الأجهزة الظاهرية الهدف iSCSI، قم بتشغيل الأوامر التالية:
أ. تحديث SLES.
sudo zypper update
إشعار
قد تحتاج إلى إعادة تشغيل نظام التشغيل بعد ترقية نظام التشغيل أو تحديثه.
ب. قم بإزالة الحزم.
لتجنب مشكلة معروفة في targetcli وSLES 12 SP3، قم بإلغاء تثبيت الحزم التالية. يمكنك تجاهل الأخطاء المتعلقة بالحزم التي لا يمكن العثور عليها.
sudo zypper remove lio-utils python-rtslib python-configshell targetcli
جـ. قم بتثبيت حزم الهدف iSCSI.
sudo zypper install targetcli-fb dbus-1-python
د. قم بتمكين خدمة الهدف iSCSI.
sudo systemctl enable targetcli sudo systemctl start targetcli
إنشاء جهاز iSCSI على الخادم الهدف iSCSI
لإنشاء أقراص iSCSI للمجموعات التي سيجري استخدامها من خلال أنظمة SAP، قم بتشغيل الأوامر التالية على جميع الأجهزة الظاهرية الهدف iSCSI. في المثال، يتم إنشاء أجهزة SBD لمجموعات متعددة. يوضح كيف يمكنك استخدام خادم هدف iSCSI واحد لمجموعات متعددة. يتم وضع أجهزة SBD على قرص نظام التشغيل. تأكد من أن لديك مساحة كافية.
- nfs: يحدد مجموعة NFS.
- ascsnw1: يحدد مجموعة ASCS من NW1.
- dbnw1: يحدد مجموعة قاعدة بيانات NW1.
- nfs-0 وnfs-1: أسماء المضيفين لعُقد مجموعة NFS
- nw1-xscs-0 وnw1-xscs-1: أسماء المضيفين لعُقد نظام المجموعة ASCS NW1.
- nw1-db-0 وnw1-db-1: أسماء المضيفين لعُقد كتلة قاعدة البيانات.
في الإرشادات التالية، استبدل اضبط أسماء المضيفين لعقد نظام المجموعة ومعرف الأمان لنظام SAP الخاص بك.
أنشئ المجلد الجذر لجميع أجهزة SBD.
sudo mkdir /sbd
أنشئ جهاز SBD لخادم NFS.
sudo targetcli backstores/fileio create sbdnfs /sbd/sbdnfs 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.nfs.local:nfs sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/luns/ create /backstores/fileio/sbdnfs sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/acls/ create iqn.2006-04.nfs-0.local:nfs-0 sudo targetcli iscsi/iqn.2006-04.nfs.local:nfs/tpg1/acls/ create iqn.2006-04.nfs-1.local:nfs-1
أنشئ جهاز SBD لخادم ASCS لنظام SAP NW1.
sudo targetcli backstores/fileio create sbdascsnw1 /sbd/sbdascsnw1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.ascsnw1.local:ascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/luns/ create /backstores/fileio/sbdascsnw1 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.nw1-xscs-0.local:nw1-xscs-0 sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.nw1-xscs-1.local:nw1-xscs-1
أنشئ جهاز SBD لمجموعة قاعدة البيانات لنظام SAP NW1.
sudo targetcli backstores/fileio create sbddbnw1 /sbd/sbddbnw1 50M write_back=false sudo targetcli iscsi/ create iqn.2006-04.dbnw1.local:dbnw1 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/luns/ create /backstores/fileio/sbddbnw1 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/acls/ create iqn.2006-04.nw1-db-0.local:nw1-db-0 sudo targetcli iscsi/iqn.2006-04.dbnw1.local:dbnw1/tpg1/acls/ create iqn.2006-04.nw1-db-1.local:nw1-db-1
حفظ تغييرات targetcli.
sudo targetcli saveconfig
تحقق للتأكد من أن كل شيء تم إعداده بشكل صحيح.
sudo targetcli ls o- / .......................................................................................................... [...] o- backstores ............................................................................................... [...] | o- block ................................................................................... [Storage Objects: 0] | o- fileio .................................................................................. [Storage Objects: 3] | | o- sbdascsnw1 ................................................ [/sbd/sbdascsnw1 (50.0MiB) write-thru activated] | | | o- alua .................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ........................................................ [ALUA state: Active/optimized] | | o- sbddbnw1 .................................................... [/sbd/sbddbnw1 (50.0MiB) write-thru activated] | | | o- alua .................................................................................... [ALUA Groups: 1] | | | o- default_tg_pt_gp ........................................................ [ALUA state: Active/optimized] | | o- sbdnfs ........................................................ [/sbd/sbdnfs (50.0MiB) write-thru activated] | | o- alua .................................................................................... [ALUA Groups: 1] | | o- default_tg_pt_gp ........................................................ [ALUA state: Active/optimized] | o- pscsi ................................................................................... [Storage Objects: 0] | o- ramdisk ................................................................................. [Storage Objects: 0] o- iscsi ............................................................................................. [Targets: 3] | o- iqn.2006-04.ascsnw1.local:ascsnw1 .................................................................. [TPGs: 1] | | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | | o- acls ........................................................................................... [ACLs: 2] | | | o- iqn.2006-04.nw1-xscs-0.local:nw1-xscs-0 ............................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 ............................................................ [lun0 fileio/sbdascsnw1 (rw)] | | | o- iqn.2006-04.nw1-xscs-1.local:nw1-xscs-1 ............................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ............................................................ [lun0 fileio/sbdascsnw1 (rw)] | | o- luns ........................................................................................... [LUNs: 1] | | | o- lun0 .......................................... [fileio/sbdascsnw1 (/sbd/sbdascsnw1) (default_tg_pt_gp)] | | o- portals ..................................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ...................................................................................... [OK] | o- iqn.2006-04.dbnw1.local:dbnw1 ...................................................................... [TPGs: 1] | | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | | o- acls ........................................................................................... [ACLs: 2] | | | o- iqn.2006-04.nw1-db-0.local:nw1-db-0 ................................................... [Mapped LUNs: 1] | | | | o- mapped_lun0 .............................................................. [lun0 fileio/sbddbnw1 (rw)] | | | o- iqn.2006-04.nw1-db-1.local:nw1-db-1 ................................................... [Mapped LUNs: 1] | | | o- mapped_lun0 .............................................................. [lun0 fileio/sbddbnw1 (rw)] | | o- luns ........................................................................................... [LUNs: 1] | | | o- lun0 .............................................. [fileio/sbddbnw1 (/sbd/sbddbnw1) (default_tg_pt_gp)] | | o- portals ..................................................................................... [Portals: 1] | | o- 0.0.0.0:3260 ...................................................................................... [OK] | o- iqn.2006-04.nfs.local:nfs .......................................................................... [TPGs: 1] | o- tpg1 ................................................................................ [no-gen-acls, no-auth] | o- acls ........................................................................................... [ACLs: 2] | | o- iqn.2006-04.nfs-0.local:nfs-0 ......................................................... [Mapped LUNs: 1] | | | o- mapped_lun0 ................................................................ [lun0 fileio/sbdnfs (rw)] | | o- iqn.2006-04.nfs-1.local:nfs-1 ......................................................... [Mapped LUNs: 1] | | o- mapped_lun0 ................................................................ [lun0 fileio/sbdnfs (rw)] | o- luns ........................................................................................... [LUNs: 1] | | o- lun0 .................................................. [fileio/sbdnfs (/sbd/sbdnfs) (default_tg_pt_gp)] | o- portals ..................................................................................... [Portals: 1] | o- 0.0.0.0:3260 ...................................................................................... [OK] o- loopback .......................................................................................... [Targets: 0] o- vhost ............................................................................................. [Targets: 0] o- xen-pvscsi ........................................................................................ [Targets: 0]
إعداد جهاز SBD الخاص بخادم الهدف iSCSI
قم بالاتصال بجهاز iSCSI الذي قمت بإنشائه في الخطوة الأخيرة من المجموعة. قم بتشغيل الأوامر التالية على عقد الكتلة الجديدة التي تريد إنشاءها.
إشعار
- [A]: ينطبق على جميع العُقد.
- [1]: ينطبق فقط على العُقدة 1.
- [2]: ينطبق فقط على العُقدة 2.
[A] تثبيت حزمة iSCSI.
sudo zypper install open-iscsi
[A] الاتصال بأجهزة iSCSI. أولا، قم بتمكين خدمات iSCSI وSBD.
sudo systemctl enable iscsid sudo systemctl enable iscsi sudo systemctl enable sbd
[1] قم بتغيير اسم البادئ على العُقدة الأولى.
sudo vi /etc/iscsi/initiatorname.iscsi
[1 ] قم بتغيير محتويات الملف لمطابقة قوائم التحكم بالوصول (ACLs) التي استخدمتها عند إنشاء جهاز iSCSI على الخادم الهدف iSCSI (على سبيل المثال، لخادم NFS).
InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
[2] قم بتغيير اسم المنشئ على العُقدة الثانية.
sudo vi /etc/iscsi/initiatorname.iscsi
[2 ] قم بتغيير محتويات الملف لتتطابق مع قوائم ACL التي استخدمتها عند إنشاء جهاز iSCSI على الخادم الهدف iSCSI.
InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
[A] أعد تشغيل خدمة iSCSI لتطبيق التغيير.
sudo systemctl restart iscsid sudo systemctl restart iscsi
[A] الاتصال بأجهزة iSCSI. في المثال التالي، 10.0.0.17 هو عنوان IP لخادم الهدف iSCSI، و 3260 هو المنفذ الافتراضي. iqn.2006-04.nfs.local:nfs هو أحد أسماء الهدف التي تم إدراجها عند تشغيل الأمر الأول
iscsiadm -m discovery
.sudo iscsiadm -m discovery --type=st --portal=10.0.0.17:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.17:3260 sudo iscsiadm -m node -p 10.0.0.17:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic
[A] إذا كنت ترغب في استخدام أجهزة SBD متعددة ، فاتصل أيضًا بخادم الهدف الثاني لـ iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.18:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.18:3260 sudo iscsiadm -m node -p 10.0.0.18:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic
[A] إذا كنت ترغب في استخدام أجهزة SBD متعددة ، فاتصل أيضًا بخادم الهدف الثالث لـ iSCSI.
sudo iscsiadm -m discovery --type=st --portal=10.0.0.19:3260 sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.19:3260 sudo iscsiadm -m node -p 10.0.0.19:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic
[A] تأكد من توفر أجهزة iSCSI ولاحظ اسم الجهاز (/dev/sde، في المثال التالي).
lsscsi # [2:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda # [3:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb # [5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc # [5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd # [6:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdd # [7:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sde # [8:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdf
[A] استرجع معرّفات أجهزة iSCSI.
ls -l /dev/disk/by-id/scsi-* | grep sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-1LIO-ORG_sbdnfs:afb0ba8d-3a3c-413b-8cc2-cca03e63ef42 -> ../../sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -> ../../sdd # lrwxrwxrwx 1 root root 9 Aug 9 13:20 /dev/disk/by-id/scsi-SLIO-ORG_sbdnfs_afb0ba8d-3a3c-413b-8cc2-cca03e63ef42 -> ../../sdd ls -l /dev/disk/by-id/scsi-* | grep sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-1LIO-ORG_cl1:3fe4da37-1a5a-4bb6-9a41-9a4df57770e4 -> ../../sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df -> ../../sde # lrwxrwxrwx 1 root root 9 Feb 7 12:39 /dev/disk/by-id/scsi-SLIO-ORG_cl1_3fe4da37-1a5a-4bb6-9a41-9a4df57770e4 -> ../../sde ls -l /dev/disk/by-id/scsi-* | grep sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-1LIO-ORG_sbdnfs:f88f30e7-c968-4678-bc87-fe7bfcbdb625 -> ../../sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf -> ../../sdf # lrwxrwxrwx 1 root root 9 Aug 9 13:32 /dev/disk/by-id/scsi-SLIO-ORG_sbdnfs_f88f30e7-c968-4678-bc87-fe7bfcbdb625 -> ../../sdf
يسرد الأمر ثلاثة معرّفات جهاز لكل جهاز SBD. نوصي باستخدام المعرف الذي يبدأ بـ scsi-3. في المثال السابق، المعرفات هي:
- /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03
- /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
- /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
[1] قم بإنشاء جهاز SBD.
أ. استخدم معرف الجهاز لأجهزة iSCSI لإنشاء أجهزة SBD الجديدة على عقدة المجموعة الأولى.
sudo sbd -d /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -1 60 -4 120 create
ب. قم أيضًا بإنشاء جهاز SBD الثاني والثالث إذا كنت تريد استخدام أكثر من جهاز.
sudo sbd -d /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df -1 60 -4 120 create sudo sbd -d /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf -1 60 -4 120 create
[A] قم بتكييف تكوين SBD.
أ. افتح ملف تكوين SBD.
sudo vi /etc/sysconfig/sbd
ب. قم بتغيير خاصية جهاز SBD، وقم بتمكين تكامل Pacemaker، وقم بتغيير وضع بدء SBD.
[...] SBD_DEVICE="/dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03;/dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df;/dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf" [...] SBD_PACEMAKER="yes" [...] SBD_STARTMODE="always" [...]
إشعار
إذا تم تعيين قيمة الخاصية SBD_DELAY_START إلى "لا"، فقم بتغيير القيمة إلى "نعم". يجب عليك أيضا التحقق من ملف خدمة SBD للتأكد من أن قيمة TimeoutStartSec أكبر من قيمة SBD_DELAY_START. لمزيد من المعلومات، راجع تكوين ملف SBD
[A] أنشئ ملف التكوين
softdog
.echo softdog | sudo tee /etc/modules-load.d/softdog.conf
[A] قم بتحميل الوحدة.
sudo modprobe -v softdog
SBD مع قرص Azure المشترك
ينطبق هذا القسم فقط إذا كنت تريد استخدام جهاز SBD مع قرص Azure المشترك.
إنشاء قرص Azure المشترك وإرفاقه باستخدام PowerShell
اضبط قيم مجموعة الموارد ومنطقة Azure والأجهزة الظاهرية وأرقام الوحدات المنطقية (LUNs) وما إلى ذلك.
$ResourceGroup = "MyResourceGroup" $Location = "MyAzureRegion"
حدد حجم القرص بناءً على حجم القرص المتاح لمحركات SSD Premium. في هذا المثال، يجري ذكر حجم قرص P1 من 4G.
$DiskSizeInGB = 4 $DiskName = "SBD-disk1"
باستخدام المعلمة -MaxSharesCount، حدد الحد الأقصى لعدد عقد الكتلة لإرفاق القرص المشترك لجهاز SBD.
$ShareNodes = 2
بالنسبة لجهاز SBD الذي يستخدم LRS لقرص Azure المشترك المتميز، استخدم التخزين التالي SkuName:
$SkuName = "Premium_LRS"
بالنسبة لجهاز SBD الذي يستخدم ZRS لقرص Azure المشترك المتميز، استخدم التخزين التالي SkuName:
$SkuName = "Premium_ZRS"
قم بإعداد قرص Azure المشترك.
$diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes $dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
قم بتوصيل القرص بالأجهزة الافتراضية للكتلة.
$VM1 = "prod-cl1-0" $VM2 = "prod-cl1-1"
أ. أضف قرص Azure المشترك إلى عقدة الكتلة 1.
$vm = Get-AzVM -ResourceGroupName $ResourceGroup -Name $VM1 $vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0 Update-AzVm -VM $vm -ResourceGroupName $ResourceGroup -Verbose
ب. أضف قرص Azure المشترك إلى عقدة الكتلة 2.
$vm = Get-AzVM -ResourceGroupName $ResourceGroup -Name $VM2 $vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0 Update-AzVm -VM $vm -ResourceGroupName $ResourceGroup -Verbose
إذا كنت تريد نشر الموارد باستخدام Azure CLI أو مدخل Azure، يمكنك أيضًا الرجوع إلى نشر قرص ZRS.
إعداد جهاز SBD للقرص المشترك في Azure
[A] تمكين خدمات SBD.
sudo systemctl enable sbd
[A] تأكد من توفر القرص المرفق.
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 512M 0 part /boot/efi ├─sda3 8:3 0 1G 0 part /boot ├─sda4 8:4 0 28.5G 0 part / sdb 8:16 0 256G 0 disk ├─sdb1 8:17 0 256G 0 part /mnt sdc 8:32 0 4G 0 disk sr0 11:0 1 1024M 0 rom # lsscsi [1:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0 [2:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [3:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb [5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[A] استرداد معرفات الأقراص المرفقة.
# ls -l /dev/disk/by-id/scsi-* | grep sdc lrwxrwxrwx 1 root root 9 Nov 8 16:55 /dev/disk/by-id/scsi-14d534654202020204208a67da80744439b513b2a9728af19 -> ../../sdc lrwxrwxrwx 1 root root 9 Nov 8 16:55 /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -> ../../sdc
تسرد الأوامر معرفات الأجهزة لجهاز SBD. نوصي باستخدام المعرف الذي يبدأ بـ scsi-3. في المثال السابق، المعرف هو / dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19.
[1] قم بإنشاء جهاز SBD.
استخدم معرف الجهاز من الخطوة 2 لإنشاء أجهزة SBD الجديدة على عُقدة المجموعة الأولى.
# sudo sbd -d /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -1 60 -4 120 create
[A] قم بتكييف تكوين SBD.
أ. افتح ملف تكوين SBD.
sudo vi /etc/sysconfig/sbd
ب. قم بتغيير خاصية جهاز SBD، وقم بتمكين تكامل Pacemaker، وقم بتغيير وضع بدء جهاز SBD.
[...] SBD_DEVICE="/dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19" [...] SBD_PACEMAKER="yes" [...] SBD_STARTMODE="always" [...]
إشعار
إذا تم تعيين قيمة الخاصية SBD_DELAY_START إلى "لا"، فقم بتغيير القيمة إلى "نعم". يجب عليك أيضا التحقق من ملف خدمة SBD للتأكد من أن قيمة TimeoutStartSec أكبر من قيمة SBD_DELAY_START. لمزيد من المعلومات، راجع تكوين ملف SBD
أنشئ ملف التكوين
softdog
.echo softdog | sudo tee /etc/modules-load.d/softdog.conf
قم بتحميل الوحدة.
sudo modprobe -v softdog
استخدام عامل الحد الزمني لـ Azure
ينطبق هذا القسم فقط إذا كنت تريد استخدام جهاز مع عامل إنشاء الحد لـ Azure.
إنشاء جهاز عامل إنشاء الحد لـ Azure
ينطبق هذا القسم فقط إذا كنت تستخدم جهاز الحد الذي يعتمد على عامل الحد لـ Azure. يستخدم جهاز الحد إما هوية مُدارة أو كيان الخدمة للترخيص ضد Microsoft Azure.
لإنشاء هوية مدارة (MSI)، قم بإنشاء هوية مدارة يعينها النظام لكل جهاز ظاهري في نظام المجموعة. إذا كانت الهوية المدارة المعينة من قبل النظام موجودة بالفعل، فسيتم استخدامها. لا ينبغي استخدام الهويات المدارة المعينة من قبل المستخدم مع Pacemaker في الوقت الحالي. يتم دعم عامل سياج Azure، استنادا إلى الهوية المدارة ل SLES 12 SP5 وSLES 15 SP1 وما فوق.
[1] إنشاء دور مخصص لعامل التحديد
بشكل افتراضي، لا تمتلك الهوية المدارة ولا كيان الخدمة أذونات للوصول إلى موارد Azure. تحتاج إلى منح الهوية المُدارة أو أذونات الخدمة الرئيسية لبدء وإيقاف (إلغاء تخصيص) جميع الأجهزة الظاهرية في المجموعة. إذا لم تقم بالفعل بإنشاء الدور المخصص، فيمكنك القيام بذلك باستخدام PowerShell أو Azure CLI.
استخدم المحتوى التالي لملف الإدخال. تحتاج إلى تكييف المحتوى مع اشتراكاتك. أي، استبدل xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx وyyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy باستخدام معرفات الاشتراك الخاصة بك. إذا كان لديك اشتراك واحد فقط، فقم بإزالة الإدخال الثاني ضمن AssignableScopes.
{
"Name": "Linux fence agent Role",
"description": "Allows to power-off and start virtual machines",
"assignableScopes": [
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"/subscriptions/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
],
"actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
[A]تعيين الدور المخصص
استخدم الهوية المدارة أو كيان الخدمة.
قم بتعيين الدور المخصص "Linux Fence Agent Role" الذي تم إنشاؤه في الفصل الأخير لكل هوية مُدارة للمجموعة VMs. تحتاج كل هوية مُدارة يعينها نظام VM إلى الدور المعين لكل مورد لمجموعة VM. للمزيد من المعلومات، راجع تعيين الوصول إلى هوية مدارة إلى مورد باستخدام مدخل Microsoft Azure. تحقق من أن تعيين دور الهوية المدارة لكل جهاز ظاهري يحتوي على جميع الأجهزة الظاهرية لنظام المجموعة.
هام
كن على دراية بالتعيين وإزالة التخويل باستخدام الهويات المدارة يمكن تأخيرها حتى تصبح فعالة.
تثبيت نظام المجموعة
إشعار
- [A]: ينطبق على جميع العُقد.
- [1]: ينطبق فقط على العُقدة 1.
- [2]: ينطبق فقط على العُقدة 2.
[A] تحديث SLES.
sudo zypper update
إشعار
بالنسبة إلى SLES 15 SP4، تحقق من إصدارات
crmsh
الحزم وpacemaker
للتأكد من أنها تفي بالحد الأدنى لمتطلبات الإصدار:crmsh-4.4.0+20221028.3e41444-150400.3.9.1
أو أحدثpacemaker-2.1.2+20211124.ada5c3b36-150400.4.6.1
أو أحدث
هام
- SLES 12 SP5: إذا تم تثبيت python-azure-core-1.23.1-2.12.8، فقد يفشل عامل سياج Azure في البدء في مجموعة Pacemaker، ويعرض رسالة الخطأ "لم يتم العثور على Azure Resource Manager Python SDK أو لا يمكن الوصول إليه" في /var/log/messages. اتبع الإرشادات الواردة في SUSE KBA 21532 لمزيد من التفاصيل.
- SLES 15 SP4+: بعد تحديث نظام التشغيل، قد تستخدم مكتبات Azure ل Python مترجم Python 3.11، مما يتسبب في فشل عامل سياج Azure في البدء في مجموعة Pacemaker. ستظهر رسالة الخطأ "Azure Resource Manager Python SDK not found or not accessible" في /var/log/messages. اتبع الإرشادات الواردة في SUSE KBA 21504 لمزيد من التفاصيل.
[A] تثبيت المكون الذي تحتاجه لموارد نظام المجموعة.
sudo zypper in socat
[A] تثبيت مكون azure-lb، الذي تحتاجه لموارد نظام المجموعة.
sudo zypper in resource-agents
إشعار
تحقق من إصدار حزمة عوامل الموارد ، وتأكد من استيفاء الحد الأدنى من متطلبات الإصدار:
- SLES 12 SP4/SP5: يجب أن يكون الإصدار عوامل الموارد-4.3.018.a7fb5035-3.30.1 أو الإصدار الأحدث.
- SLES 15/15 SP1: يجب أن يكون الإصدار عوامل الموارد-4.3.0184.6ee15eb2-4.13.1 أو الإصدار الأحدث.
[A] تكوين نظام التشغيل.
أ. يقوم Pacemaker أحيانًا بإنشاء العديد من العمليات، والتي يمكن أن تستنفد العدد المسموح به. عندما يحدث هذا، قد تفشل رسالة كشف أخطاء الاتصال بين عُقد نظام المجموعة وتؤدي إلى فشل مواردك. نوصي بزيادة الحد الأقصى لعدد العمليات المسموح بها عن طريق تعيين المعلمة التالية:
# Edit the configuration file sudo vi /etc/systemd/system.conf # Change the DefaultTasksMax #DefaultTasksMax=512 DefaultTasksMax=4096 # Activate this setting sudo systemctl daemon-reload # Test to ensure that the change was successful sudo systemctl --no-pager show | grep DefaultTasksMax
ب. تقليل حجم ذاكرة التخزين المؤقت القذرة. لمزيد من المعلومات، راجع أداء الكتابة المنخفض على خوادم SLES 11/12 المزودة بذاكرة وصول عشوائي (RAM) كبيرة.
sudo vi /etc/sysctl.conf # Change/set the following settings vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
جـ. تأكد من تعيين vm.swappiness إلى 10 لتقليل استخدام التبديل وتفضيل الذاكرة.
sudo vi /etc/sysctl.conf # Change/set the following setting vm.swappiness = 10
[A] تحقق من إصدار حزمة cloud-netconfig-azure .
تحقق من الإصدار المثبت من حزمة cloud-netconfig-azure عن طريق تشغيل zypper info cloud-netconfig-azure. إذا كان الإصدار أقدم من 1.3، نوصيك بتحديث حزمة cloud-netconfig-azure إلى أحدث إصدار متوفر.
تلميح
إذا كان الإصدار في بيئتك هو 1.3 أو إصدار أحدث، فلم يعد من الضروري منع إدارة واجهات الشبكة من خلال المكون الإضافي للشبكة السحابية.
فقط إذا كان إصدار cloud-netconfig-azure أقل من 1.3، فقم بتغيير ملف التكوين لواجهة الشبكة كما هو موضح في التعليمات البرمجية التالية لمنع المكون الإضافي للشبكة السحابية من إزالة عنوان IP الظاهري (يجب أن يتحكم Pacemaker في التعيين). لمزيد من المعلومات، راجع SUSE KB 7023633.
# Edit the configuration file sudo vi /etc/sysconfig/network/ifcfg-eth0 # Change CLOUD_NETCONFIG_MANAGE # CLOUD_NETCONFIG_MANAGE="yes" CLOUD_NETCONFIG_MANAGE="no"
[1] تمكين وصول SSH.
sudo ssh-keygen # Enter file in which to save the key (/root/.ssh/id_rsa), and then select Enter # Enter passphrase (empty for no passphrase), and then select Enter # Enter same passphrase again, and then select Enter # copy the public key sudo cat /root/.ssh/id_rsa.pub
[2] تمكين وصول SSH.
sudo ssh-keygen # Enter file in which to save the key (/root/.ssh/id_rsa), and then select Enter # Enter passphrase (empty for no passphrase), and then select Enter # Enter same passphrase again, and then select Enter # Insert the public key you copied in the last step into the authorized keys file on the second server sudo vi /root/.ssh/authorized_keys # copy the public key sudo cat /root/.ssh/id_rsa.pub
[1] تمكين وصول SSH.
# insert the public key you copied in the last step into the authorized keys file on the first server sudo vi /root/.ssh/authorized_keys
[A] قم بتثبيت حزمة عوامل الحد إذا كنت تستخدم جهاز الحد، استنادًا إلى عامل الحد لـ Azure.
sudo zypper install fence-agents
هام
يجب أن يكون الإصدار المثبت من حزمة عوامل الجدول الزمني 4.4.0 أو إصدار أحدث للاستفادة من أوقات تجاوز الفشل الأسرع مع عامل الجدول الزمني لـ Azure، عندما تكون عُقدة نظام المجموعة محددة بفترة زمنية. إذا كنت تستخدم إصدارًا سابقًا، نوصي بتحديث الحزمة.
هام
إذا كنت تستخدم الهوية المدارة، يجب أن يكون الإصدار المثبت من حزمة عوامل السياج -
- SLES 12 SP5: عوامل السياج 4.9.0+git.1624456340.8d746be9-3.35.2 أو أحدث
- SLES 15 SP1 والإصدارات الأحدث: عملاء السياج 4.5.2+git.1592573838.1eee0863 أو أحدث.
لن تعمل الإصدارات السابقة بشكل صحيح مع تكوين هوية مُدارة.
[A] تثبيت حزمة fence-agents-azure-arm.
بالنسبة إلى SLES 12 SP5، إذا كنت تستخدم
fence-agents
الإصدار أو أحدث4.9.0+git.1624456340.8d746be9-3.41.3
، وبالنسبة ل SLES 15 SP4 والأحدث، تحتاج إلى تثبيت الحزمةfence-agents-azure-arm
. ستتضمن هذه الحزمة جميع التبعيات المطلوبة.# On SLES 12 SP5 with fence-agents version 4.9.0+git.1624456340.8d746be9-3.41.3 or higher. You might need to activate the public cloud extension first SUSEConnect -p sle-module-public-cloud/12/x86_64 sudo zypper install fence-agents-azure-arm # On SLES 15 SP4 and later. You might need to activate the public cloud extension first. In this example, the SUSEConnect SUSEConnect -p sle-module-public-cloud/15.4/x86_64 sudo zypper install fence-agents-azure-arm
[A] قم بتثبيت Azure Python SDK ووحدة Azure Identity Python النمطية.
بالنسبة إلى SLES 12 SP5، إذا كان إصدارك
fence-agents
أقل ثم4.9.0+git.1624456340.8d746be9-3.41.3
، وبالنسبة ل SLES 15 SP3 وما دونه، تحتاج إلى تثبيت حزم إضافية أدناه.# You might need to activate the public cloud extension first SUSEConnect -p sle-module-public-cloud/12/x86_64 sudo zypper install python-azure-mgmt-compute sudo zypper install python-azure-identity # You might need to activate the public cloud extension first. In this example, the SUSEConnect command is for SLES 15 SP1 SUSEConnect -p sle-module-public-cloud/15.1/x86_64 sudo zypper install python3-azure-mgmt-compute sudo zypper install python3-azure-identity
هام
بناءً على الإصدار ونوع الصورة، قد تحتاج إلى تنشيط ملحق السحابة العامة لإصدار نظام التشغيل لديك قبل أن تتمكن من تثبيت Azure Python SDK. يمكنك التحقق من الامتداد عن طريق تشغيل
SUSEConnect ---list-extensions
. لتحقيق أوقات تجاوز الفشل بشكل أسرع باستخدام عامل الجدول الزمني لـ Azure:- على SLES 12 SP5، قم بتثبيت الإصدار 4.6.2 أو أحدث من حزمة python-azure-mgmt-compute .
- إذا كان إصدار حزمة python-azure-mgmt-compute or python3-azure-mgmt-compute هو 17.0.0-6.7.1، فاتبع الإرشادات الموجودة في SUSE KBA لتحديث إصدار عامل الحد الزمني وتثبيت مكتبة عميل هوية Azure لـ وحدة Python إذا كانت مفقودة.
[A] قم بإعداد دقة اسم المضيف.
يمكنك إما استخدام خادم DNS أو تعديل الملف /etc/hosts على جميع العُقد. يوضح هذا المثال كيفية استخدام الملف/etc/hosts.
استبدل عنوان IP واسم المضيف في الأوامر التالية.
هام
إذا كنت تستخدم أسماء المضيف في تكوين المجموعة، فمن الضروري أن يكون لديك دقة موثوق بها لاسم المضيف. سيفشل اتصال الكتلة إذا كانت الأسماء غير متوفرة، ويمكن أن يؤدي ذلك إلى تأخيرات تجاوز فشل الكتلة.
تتمثل فائدة استخدام /etc/hosts هي أن مجموعتك تصبح مستقلة عن DNS، والتي يمكن أن تكون نقطة فشل واحدة أيضًا.
sudo vi /etc/hosts
أدخل الخطوط التالية في /etc/hosts. قم بتغيير عنوان IP واسم المضيف لمطابقة بيئتك.
# IP address of the first cluster node 10.0.0.6 prod-cl1-0 # IP address of the second cluster node 10.0.0.7 prod-cl1-1
[1] قم بتثبيت نظام المجموعة.
إذا كنت تستخدم أجهزة SBD للحد الزمني (إما لخادم iSCSI الهدف أو قرص Azure المشترك):
sudo crm cluster init # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # /root/.ssh/id_rsa already exists - overwrite (y/n)? n # Address for ring0 [10.0.0.6] Select Enter # Port for ring0 [5405] Select Enter # SBD is already configured to use /dev/disk/by-id/scsi-36001405639245768818458b930abdf69;/dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03;/dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf - overwrite (y/n)? n # Do you wish to configure an administration IP (y/n)? n
إذا كنت لا تستخدم أجهزة SBD للحد الزمني:
sudo crm cluster init # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # /root/.ssh/id_rsa already exists - overwrite (y/n)? n # Address for ring0 [10.0.0.6] Select Enter # Port for ring0 [5405] Select Enter # Do you wish to use SBD (y/n)? n # WARNING: Not configuring SBD - STONITH will be disabled. # Do you wish to configure an administration IP (y/n)? n
[2] أضف العُقدة إلى المجموعة.
sudo crm cluster join # ! NTP is not configured to start at system boot. # Do you want to continue anyway (y/n)? y # IP address or hostname of existing node (for example, 192.168.1.1) []10.0.0.6 # /root/.ssh/id_rsa already exists - overwrite (y/n)? n
[A] قم بتغيير كلمة المرور hacluster إلى نفس كلمة المرور.
sudo passwd hacluster
[A] اضبط إعدادات corosync.
sudo vi /etc/corosync/corosync.conf
أ. تحقق من المقطع التالي في الملف واضبط، إذا كانت القيم غير موجودة أو مختلفة. تأكد من تغيير الرمز المميز إلى 30000 للسماح بصيانة الذاكرة المحفوظة. لمزيد من المعلومات، راجع مقالة "صيانة الأجهزة الظاهرية في Azure" لنظام التشغيل Linux أو Windows.
[...] token: 30000 token_retransmits_before_loss_const: 10 join: 60 consensus: 36000 max_messages: 20 interface { [...] } transport: udpu } nodelist { node { ring0_addr:10.0.0.6 } node { ring0_addr:10.0.0.7 } } logging { [...] } quorum { # Enable and configure quorum subsystem (default: off) # See also corosync.conf.5 and votequorum.5 provider: corosync_votequorum expected_votes: 2 two_node: 1 }
ب. أعد تشغيل خدمة corosync.
sudo service corosync restart
إنشاء جهاز الحد على مجموعة منظم القلب
تلميح
- لتجنب سباقات السياج داخل نظام مجموعة منظم ضربات القلب المكونة من عقدتين، يمكنك تكوين خاصية نظام المجموعة الإضافية "تسييج الأولوية-التأخير". تقدم هذه الخاصية تأخيرا إضافيا في تسييج عقدة ذات أولوية إجمالية أعلى للموارد عند حدوث سيناريو تقسيم الدماغ. للحصول على تفاصيل إضافية، راجع دليل إدارة ملحق SUSE Linux Enterprise Server عالي التوفر.
- يمكن العثور على التعليمات المتعلقة بتعيين خاصية نظام المجموعة "تسييج الأولوية" في مستند التوفر العالي لتوسيع نطاق SAP ASCS/ERS (ينطبق فقط على ENSA2) وSAP HANA.
[1] إذا كنت تستخدم جهاز SBD (خادم هدف iSCSI أو قرص Azure المشترك) كجهاز تسييج، فقم بتشغيل الأوامر التالية. قم بتمكين استخدام جهاز الحد، واضبط تأخير الحد.
sudo crm configure property stonith-timeout=144 sudo crm configure property stonith-enabled=true # List the resources to find the name of the SBD device sudo crm resource list sudo crm resource stop stonith-sbd sudo crm configure delete stonith-sbd sudo crm configure primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max="15" \ op monitor interval="600" timeout="15"
[1] إذا كنت تستخدم عامل الحد لـ Azure كحد، فقم بتشغيل الأوامر التالية. بعد تعيين الأدوار لكل من عقدتي نظام المجموعة، يمكنك تكوين أجهزة الحد في نظام المجموعة.
sudo crm configure property stonith-enabled=true sudo crm configure property concurrent-fencing=true
إشعار
الخيار "pcmk_host_map" مطلوب في الأمر فقط إذا كانت أسماء المضيفين وأسماء Azure VM غير متطابقة. حدد التعيين بتنسيق hostname:vm-name.
# Adjust the command with your subscription ID and resource group of the VM
sudo crm configure primitive rsc_st_azure stonith:fence_azure_arm \
params msi=true subscriptionId="subscription ID" resourceGroup="resource group" \
pcmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_delay_max=15 pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
op monitor interval=3600 timeout=120
sudo crm configure property stonith-timeout=900
إذا كنت تستخدم جهاز تسييج، استنادا إلى تكوين كيان الخدمة، فاقرأ التغيير من SPN إلى MSI لمجموعات Pacemaker باستخدام تسييج Azure وتعلم كيفية التحويل إلى تكوين الهوية المدارة.
هام
تم إلغاء تسلسل عمليات المراقبة والحد الزمني. نتيجة لذلك، إذا كانت هناك عملية مراقبة طويلة الأمد وحدث حد زمني متزامن، فلا يوجد تأخير في تجاوز فشل المجموعة لأن عملية المراقبة قيد التشغيل بالفعل.
تلميح
يتطلب عامل الحد الزمني لـ Azure اتصالاً صادرًا بنقاط النهاية العامة، كما هو موثق، بالإضافة إلى الحلول الممكنة، في اتصال نقطة النهاية العامة للأجهزة الافتراضية باستخدام ILB القياسي.
تكوين Pacemaker للأحداث المجدولة في Azure
يقدم Azure الأحداث المجدولة. يتم توفير الأحداث المجدولة عبر خدمة بيانات التعريف وتسمح بوقت التطبيق للتحضير لمثل هذه الأحداث. عامل الموارد azure-events-az يراقب أحداث Azure المجدولة. إذا تم الكشف عن الأحداث وحدد عامل المورد توفر عقدة نظام مجموعة أخرى، فإنه يعين سمة صحة نظام المجموعة. عند تعيين سمة صحة نظام المجموعة لعقدة، يتم ترحيل مشغلات قيد الموقع وجميع الموارد، التي لا يبدأ اسمها ب "health-" بعيدا عن العقدة ذات الحدث المجدول. بمجرد أن تكون عقدة نظام المجموعة المتأثرة خالية من تشغيل موارد نظام المجموعة، يتم الاعتراف بالحدث المجدول ويمكنه تنفيذ الإجراء الخاص به، مثل إعادة التشغيل.
هام
في السابق، وصف هذا المستند استخدام عامل المورد azure-events. يدعم عامل الموارد الجديد azure-events-az بشكل كامل بيئات Azure المنشورة في مناطق توفر مختلفة. يوصى باستخدام عامل azure-events-az الأحدث لجميع أنظمة SAP عالية التوفر مع Pacemaker.
[A] تأكد من أن الحزمة الخاصة بعامل أحداث azure مثبتة بالفعل ومحدثة.
sudo zypper info resource-agents
الحد الأدنى لمتطلبات الإصدار:
- SLES 12 SP5:
resource-agents-4.3.018.a7fb5035-3.98.1
- SLES 15 SP1:
resource-agents-4.3.0184.6ee15eb2-150100.4.72.1
- SLES 15 SP2:
resource-agents-4.4.0+git57.70549516-150200.3.56.1
- SLES 15 SP3:
resource-agents-4.8.0+git30.d0077df0-150300.8.31.1
- SLES 15 SP4 وأحدث:
resource-agents-4.10.0+git40.0f4de473-150400.3.19.1
- SLES 12 SP5:
[1] قم بتكوين الموارد في Pacemaker.
#Place the cluster in maintenance mode sudo crm configure property maintenance-mode=true
[1] تعيين استراتيجية عقدة صحة نظام ضربات القلب والقيد
sudo crm configure property node-health-strategy=custom sudo crm configure location loc_azure_health \ /'!health-.*'/ rule '#health-azure': defined '#uname'
هام
لا تحدد أي موارد أخرى في نظام المجموعة بدءا من "health-"، بالإضافة إلى الموارد الموضحة في الخطوات التالية من الوثائق.
[1] تعيين القيمة الأولية لسمات نظام المجموعة. تشغيل لكل عقدة نظام مجموعة. لبيئات توسيع النطاق بما في ذلك الجهاز الظاهري لصانع الأغلبية.
sudo crm_attribute --node prod-cl1-0 --name '#health-azure' --update 0 sudo crm_attribute --node prod-cl1-1 --name '#health-azure' --update 0
[1] قم بتكوين الموارد في Pacemaker. هام: يجب أن تبدأ الموارد ب "health-azure".
sudo crm configure primitive health-azure-events ocf:heartbeat:azure-events-az \ meta allow-unhealthy-nodes=true failure-timeout=120s \ op start start-delay=60s \ op monitor interval=10s sudo crm configure clone health-azure-events-cln health-azure-events
إشعار
عند تكوين مورد "health-azure-events"، يمكن تجاهل رسالة التحذير التالية.
تحذير: health-azure-events: سمة غير معروفة "allow-unhealthy-nodes".
إخراج نظام مجموعة Pacemaker من وضع الصيانة
sudo crm configure property maintenance-mode=false
قم بإلغاء تحديد أي أخطاء أثناء التمكين وتحقق من أن موارد health-azure-events قد بدأت بنجاح على جميع عقد نظام المجموعة.
sudo crm resource cleanup
قد يستغرق تنفيذ الاستعلام لأول مرة للأحداث المجدولة ما يصل إلى دقيقتين. يمكن أن يستخدم اختبار Pacemaker مع الأحداث المجدولة إجراءات إعادة التشغيل أو إعادة التوزيع للأجهزة الظاهرية لنظام المجموعة. لمزيد من المعلومات، راجع وثائق الأحداث المجدولة .
إشعار
بعد تكوين موارد Pacemaker لعامل أحداث azure، إذا وضعت المجموعة داخل وضع الصيانة أو خارجه، فقد تتلقى رسائل تحذير مثل:
تحذير: cib-bootstrap-options: سمة غير معروفة "hostName_hostname"
تحذير: cib-bootstrap-options: سمة غير معروفة 'azure-events_globalPullState'
تحذير: cib-bootstrap-options: سمة غير معروفة "hostName_ اسم المضيف"
يمكن تجاهل رسائل التحذير هذه.
الخطوات التالية
- تخطيط وتنفيذ Azure Virtual Machines لـSAP
- توزيع أجهزة Azure الظاهرية لـ SAP
- نشر نظام Azure إدارة قواعد البيانات للأجهزة الظاهرية لـ Azure لـ SAP
- توفر عالي لـ NFS على الأجهزة الظاهرية لـ Azure على SUSE Linux Enterprise Server
- توفر قابلية وصول عالية لـSAP NetWeaver على نظام رصد السفن أزور على SUSE لينكس خادم المؤسسة لتطبيقات SAP
- لمعرفة كيفية إنشاء قابلية وصول عالية وتخطيط لإصلاح SAP Hana بعد كارثة على أجهزة Azure الظاهرية، راجع قابلية الوصول العالية SAP Hana على أجهزة Azure الظاهرية