إعداد 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.

    رسم تخطيطي لجهاز تنظيم ضربات القلب في نظرة عامة على SLES.

    هام

    عندما تقوم بتخطيط ونشر عقد Linux Pacemaker وأجهزة SBD، لا تسمح بالتوجيه بين أجهزتك الظاهرية والأجهزة الظاهرية التي تستضيف أجهزة SBD بالمرور عبر أي أجهزة أخرى، مثل الأجهزة الظاهري للشبكة (NVA).

    يمكن أن يكون لأحداث الصيانة وغيرها من المشكلات المتعلقة بـ NVA تأثير سلبي على استقرار وموثوقية التكوين العام للكتلة. لمزيد من المعلومات، راجع قواعد التوجيه المعرفة من جانب المستخدم.

  • SBD مع قرص Azure المشترك:

    لتكوين جهاز SBD، تحتاج إلى إرفاق قرص Azure مشترك مفرد على الأقل بجميع الأجهزة الظاهرية التي تعد جزءًا من مجموعة Pacemaker. تتمثل ميزة جهاز SBD الذي يستخدم قرص Azure المشترك في أنك لا تحتاج إلى نشر أجهزة ظاهرية إضافية.

    رسم تخطيطي لجهاز SBD للقرص المشترك Azure لمجموعة أجهزة تنظيم ضربات القلب SLES.

    فيما يلي بعض الاعتبارات المهمة حول أجهزة 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.

  1. يمكنك نشر SLES 12 SP3 الجديدة أو أجهزة ظاهرية أعلى واتصل بها عبر SSH. لا يلزم أن تكون الأجهزة كبيرة الحجم. أحجام الأجهزة الظاهرية Standard_E2s_v3 أو Standard_D2s_v3 تكون كافية. تأكد من استخدام تخزين Premium لقرص نظام التشغيل.

  2. على الأجهزة الظاهرية الهدف 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 الخاص بك.

  1. أنشئ المجلد الجذر لجميع أجهزة SBD.

    sudo mkdir /sbd
    
  2. أنشئ جهاز 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
    
  3. أنشئ جهاز 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
    
  4. أنشئ جهاز 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
    
  5. حفظ تغييرات targetcli.

    sudo targetcli saveconfig
    
  6. تحقق للتأكد من أن كل شيء تم إعداده بشكل صحيح.

    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.
  1. [A] تثبيت حزمة iSCSI.

    sudo zypper install open-iscsi
    
  2. [A] الاتصال بأجهزة iSCSI. أولا، قم بتمكين خدمات iSCSI وSBD.

    sudo systemctl enable iscsid
    sudo systemctl enable iscsi
    sudo systemctl enable sbd
    
  3. [1] قم بتغيير اسم البادئ على العُقدة الأولى.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
  4. [1 ] قم بتغيير محتويات الملف لمطابقة قوائم التحكم بالوصول (ACLs) التي استخدمتها عند إنشاء جهاز iSCSI على الخادم الهدف iSCSI (على سبيل المثال، لخادم NFS).

    InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
    
  5. [2] قم بتغيير اسم المنشئ على العُقدة الثانية.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
  6. [2 ] قم بتغيير محتويات الملف لتتطابق مع قوائم ACL التي استخدمتها عند إنشاء جهاز iSCSI على الخادم الهدف iSCSI.

    InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
    
  7. [A] أعد تشغيل خدمة iSCSI لتطبيق التغيير.

    sudo systemctl restart iscsid
    sudo systemctl restart iscsi
    
  8. [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
    
  9. [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
    
  10. [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
    
  11. [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
    
  12. [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
  13. [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
    
  14. [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

  15. [A] أنشئ ملف التكوين softdog .

    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    
  16. [A] قم بتحميل الوحدة.

    sudo modprobe -v softdog
    

SBD مع قرص Azure المشترك

ينطبق هذا القسم فقط إذا كنت تريد استخدام جهاز SBD مع قرص Azure المشترك.

إنشاء قرص Azure المشترك وإرفاقه باستخدام PowerShell

  1. اضبط قيم مجموعة الموارد ومنطقة Azure والأجهزة الظاهرية وأرقام الوحدات المنطقية (LUNs) وما إلى ذلك.

    $ResourceGroup = "MyResourceGroup"
    $Location = "MyAzureRegion"
    
  2. حدد حجم القرص بناءً على حجم القرص المتاح لمحركات SSD Premium. في هذا المثال، يجري ذكر حجم قرص P1 من 4G.

    $DiskSizeInGB = 4
    $DiskName = "SBD-disk1"
    
  3. باستخدام المعلمة -MaxSharesCount، حدد الحد الأقصى لعدد عقد الكتلة لإرفاق القرص المشترك لجهاز SBD.

    $ShareNodes = 2
    
  4. بالنسبة لجهاز SBD الذي يستخدم LRS لقرص Azure المشترك المتميز، استخدم التخزين التالي SkuName:

    $SkuName = "Premium_LRS"
    
  5. بالنسبة لجهاز SBD الذي يستخدم ZRS لقرص Azure المشترك المتميز، استخدم التخزين التالي SkuName:

    $SkuName = "Premium_ZRS"
    
  6. قم بإعداد قرص Azure المشترك.

    $diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
    $dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
    
  7. قم بتوصيل القرص بالأجهزة الافتراضية للكتلة.

    $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

  1. [A] تمكين خدمات SBD.

    sudo systemctl enable sbd
    
  2. [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
    
  3. [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.

  4. [1] قم بإنشاء جهاز SBD.

    استخدم معرف الجهاز من الخطوة 2 لإنشاء أجهزة SBD الجديدة على عُقدة المجموعة الأولى.

    # sudo sbd -d /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -1 60 -4 120 create
    
  5. [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

  6. أنشئ ملف التكوين softdog.

    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    
  7. قم بتحميل الوحدة.

    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.
  1. [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 لمزيد من التفاصيل.
  2. [A] تثبيت المكون الذي تحتاجه لموارد نظام المجموعة.

    sudo zypper in socat
    
  3. [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 أو الإصدار الأحدث.
  4. [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
    
  5. [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"
    
  6. [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
    
  7. [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
    
  8. [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
    
  9. [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 أو أحدث.

    لن تعمل الإصدارات السابقة بشكل صحيح مع تكوين هوية مُدارة.

  10. [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
    
  11. [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 إذا كانت مفقودة.
  12. [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
    
  13. [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
      
  14. [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
    
  15. [A] قم بتغيير كلمة المرور hacluster إلى نفس كلمة المرور.

    sudo passwd hacluster
    
  16. [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. [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"
    
  2. [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.

  1. [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
  2. [1] قم بتكوين الموارد في Pacemaker.

    #Place the cluster in maintenance mode
    sudo crm configure property maintenance-mode=true
    
  3. [1] تعيين استراتيجية عقدة صحة نظام ضربات القلب والقيد

    sudo crm configure property node-health-strategy=custom
    sudo crm configure location loc_azure_health \
    /'!health-.*'/ rule '#health-azure': defined '#uname'
    

    هام

    لا تحدد أي موارد أخرى في نظام المجموعة بدءا من "health-"، بالإضافة إلى الموارد الموضحة في الخطوات التالية من الوثائق.

  4. [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
    
  5. [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".

  6. إخراج نظام مجموعة Pacemaker من وضع الصيانة

    sudo crm configure property maintenance-mode=false
    
  7. قم بإلغاء تحديد أي أخطاء أثناء التمكين وتحقق من أن موارد 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_ اسم المضيف"
    يمكن تجاهل رسائل التحذير هذه.

الخطوات التالية