إعداد Pacemaker على Red Hat Enterprise Linux في Azure

توضح هذه المقالة كيفية تكوين مجموعة Pacemaker الأساسية على Red Hat Enterprise Server (RHEL). تغطي التعليمات RHEL 7 و RHEL 8 و RHEL 9.

المتطلبات الأساسية

اقرأ ملاحظات ومقالات SAP التالية أولا:

نظرة عامة

هام

لا تغطي نهج الدعم القياسية أنظمة مجموعات Pacemaker التي تمتد عبر شبكات ظاهرية متعددة (VNets)/شبكات فرعية.

هناك خياران متوفران على Azure لتكوين المبارزة في مجموعة أجهزة تنظيم ضربات القلب ل RHEL: عامل سياج Azure، الذي يعيد تشغيل عقدة فاشلة عبر واجهات برمجة تطبيقات Azure، أو يمكنك استخدام جهاز SBD.

هام

في Azure، يستخدم نظام مجموعة قابلية الوصول العالية RHEL مع سياج يستند إلى التخزين (fence_sbd) مراقبة محاكية للبرامج. من المهم مراجعة القيود المعروفة ل Watchdog المحاكية للبرامج ونهج الدعم لمجموعات قابلية الوصول العالية ل RHEL - sbd fence_sbd عند تحديد SBD كآلية تسييج.

استخدام جهاز SBD

إشعار

يتم دعم آلية التسييج مع SBD على RHEL 8.8 وأعلى، و RHEL 9.0 وأعلى.

يمكنك تكوين جهاز SBD باستخدام أي من الخيارين:

  • SBD مع خادم هدف iSCSI

    يتطلب جهاز SBD جهازا ظاهريا إضافيا واحدا على الأقل (VM) يعمل كخادم هدف واجهة نظام الحوسبة الصغيرة عبر الإنترنت (iSCSI) ويوفر جهاز SBD. ومع ذلك، يمكن مشاركة خوادم iSCSI المستهدفة هذه مع مجموعات أجهزة تنظيم ضربات القلب الأخرى. تتمثل ميزة استخدام جهاز SBD في أنه إذا كنت تستخدم بالفعل أجهزة SBD محليا، فإنها لا تتطلب أي تغييرات على كيفية تشغيل نظام مجموعة أجهزة تنظيم ضربات القلب.

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

    رسم تخطيطي لجهاز تنظيم ضربات القلب مع خادم هدف iSCSI كجهاز SBD في RHEL

    هام

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

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

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

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

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

    فيما يلي بعض الاعتبارات المهمة حول أجهزة SBD عند التكوين باستخدام Azure Shared Disk:

    • يتم دعم قرص Azure المشترك مع Premium SSD كجهاز SBD.
    • يتم دعم أجهزة SBD التي تستخدم قرص Azure المشترك على RHEL 8.8 والإحدث.
    • يتم دعم أجهزة SBD التي تستخدم قرص مشاركة Azure المتميز على التخزين الزائد محليا (LRS) والتخزين المتكرر في المنطقة (ZRS).
    • اعتمادا على نوع التوزيع الخاص بك، اختر التخزين المتكرر المناسب لقرص Azure المشترك كجهاز SBD الخاص بك.
    • يتم دعم جهاز SBD الذي يستخدم LRS لقرص مشترك متميز من Azure (skuName - Premium_LRS) فقط مع النشر الإقليمي مثل مجموعة التوفر.
    • يوصى باستخدام جهاز SBD باستخدام ZRS للقرص المشترك المميز ل Azure (skuName - Premium_ZRS) مع التوزيع النطاقي مثل منطقة التوفر أو مجموعة المقياس مع FD=1.
    • يتوفر ZRS للقرص المدار حاليا في المناطق المدرجة في مستند التوفر الإقليمي.
    • لا يلزم أن يكون القرص المشترك Azure الذي تستخدمه لأجهزة SBD كبيرا. تحدد قيمة maxShares عدد عقد نظام المجموعة التي يمكنها استخدام القرص المشترك. على سبيل المثال، يمكنك استخدام أحجام الأقراص P1 أو P2 لجهاز SBD على مجموعة ثنائية العقد مثل SAP ASCS / ERS أو SAP HANA.
    • بالنسبة لتوسيع نطاق HANA مع النسخ المتماثل لنظام HANA (HSR) وأداة تنظيم ضربات القلب، يمكنك استخدام قرص مشترك Azure لأجهزة SBD في مجموعات مع ما يصل إلى خمس عقد لكل موقع نسخ متماثل بسبب الحد الحالي من maxShares.
    • لا نوصي بإرفاق جهاز SBD للقرص المشترك Azure عبر مجموعات أجهزة تنظيم ضربات القلب.
    • إذا كنت تستخدم العديد من أجهزة SBD لقرص Azure المشترك، فتحقق من الحد الأقصى لعدد أقراص البيانات التي يمكن إرفاقها بجهاز ظاهري.
    • ولمزيد من المعلومات حول القيود المفروضة على أقراص Azure المشتركة، راجع بعناية قسم "Limitations" في وثائق القرص المشترك لـ Azure.

استخدام عامل الحد الزمني لـ Azure

يمكنك إعداد إنشاء الحد باستخدام عامل إنشاء الحد لـ Azure. يتطلب عامل Azure fence هويات مدارة لأجهزة نظام المجموعة الظاهرية أو كيان الخدمة أو هوية النظام المدارة (MSI) التي تدير إعادة تشغيل العقد الفاشلة عبر واجهات برمجة تطبيقات Azure. لا يتطلب عامل Azure fence توزيع أجهزة افتراضية إضافية.

SBD مع خادم هدف iSCSI

لاستخدام جهاز SBD يستخدم خادم الهدف iSCSI للحد الزمني، اتبع الإرشادات الواردة في الأقسام التالية.

إعداد خادم الهدف iSCSI

تحتاج أولاً إلى إنشاء الأجهزة الظاهرية الهدف لـ iSCSI. يمكنك مشاركة خوادم هدف iSCSI مع مجموعات أجهزة تنظيم ضربات القلب المتعددة.

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

  2. ليس من الضروري استخدام RHEL ل SAP مع HA و Update Services، أو صورة RHEL ل SAP Apps OS للخادم الهدف iSCSI. يمكن استخدام صورة نظام تشغيل RHEL القياسية بدلا من ذلك. ومع ذلك، يجب أن تدرك أن دورة حياة الدعم تختلف بين إصدارات منتجات نظام التشغيل المختلفة.

  3. تشغيل الأوامر التالية على جميع الأجهزة الظاهرية المستهدفة iSCSI.

    1. تحديث RHEL.

      sudo yum -y update
      

      إشعار

      قد تحتاج إلى إعادة تشغيل العقدة بعد ترقية نظام التشغيل أو تحديثه.

    2. تثبيت حزمة هدف iSCSI.

      sudo yum install targetcli
      
    3. بدء تشغيل الهدف وتكوينه للبدء في وقت التمهيد.

      sudo systemctl start target
      sudo systemctl enable target
      
    4. فتح المنفذ 3260 في جدار الحماية

      sudo firewall-cmd --add-port=3260/tcp --permanent
      sudo firewall-cmd --add-port=3260/tcp
      

إنشاء جهاز iSCSI على الخادم الهدف iSCSI

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

  • ascsnw1: يمثل مجموعة ASCS/ERS من NW1.
  • dbhn1: يمثل مجموعة قاعدة البيانات من HN1.
  • sap-cl1 وsap-cl2: أسماء المضيفين لعقد مجموعة NW1 ASCS/ERS.
  • hn1-db-0 وhn1-db-1: أسماء مضيفي عقد نظام مجموعة قاعدة البيانات.

في الإرشادات التالية، قم بتعديل الأمر باستخدام أسماء المضيفين و SIDs المحددة حسب الحاجة.

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

    sudo mkdir /sbd
    
  2. إنشاء جهاز SBD لخوادم ASCS/ERS للنظام 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.sap-cl1.local:sap-cl1
    sudo targetcli iscsi/iqn.2006-04.ascsnw1.local:ascsnw1/tpg1/acls/ create iqn.2006-04.sap-cl2.local:sap-cl2
    
  3. إنشاء جهاز SBD لنظام مجموعة قاعدة البيانات للنظام HN1.

    sudo targetcli backstores/fileio create sbddbhn1 /sbd/sbddbhn1 50M write_back=false
    sudo targetcli iscsi/ create iqn.2006-04.dbhn1.local:dbhn1
    sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/luns/ create /backstores/fileio/sbddbhn1
    sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/acls/ create iqn.2006-04.hn1-db-0.local:hn1-db-0
    sudo targetcli iscsi/iqn.2006-04.dbhn1.local:dbhn1/tpg1/acls/ create iqn.2006-04.hn1-db-1.local:hn1-db-1
    
  4. احفظ تكوين targetcli.

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

    sudo targetcli ls
    
    o- / ......................................................................................................................... [...]
      o- backstores .............................................................................................................. [...]
      | o- block .................................................................................................. [Storage Objects: 0]
      | o- fileio ................................................................................................. [Storage Objects: 2]
      | | o- sbdascsnw1 ............................................................... [/sbd/sbdascsnw1 (50.0MiB) write-thru activated]
      | | | o- alua ................................................................................................... [ALUA Groups: 1]
      | | |   o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
      | | o- sbddbhn1 ................................................................... [/sbd/sbddbhn1 (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: 2]
      | o- iqn.2006-04.dbhn1.local:dbhn1 ..................................................................................... [TPGs: 1]
      | | o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
      | |   o- acls .......................................................................................................... [ACLs: 2]
      | |   | o- iqn.2006-04.hn1-db-0.local:hn1-db-0 .................................................................. [Mapped LUNs: 1]
      | |   | | o- mapped_lun0 ............................................................................... [lun0 fileio/sbdhdb (rw)]
      | |   | o- iqn.2006-04.hn1-db-1.local:hn1-db-1 .................................................................. [Mapped LUNs: 1]
      | |   |   o- mapped_lun0 ............................................................................... [lun0 fileio/sbdhdb (rw)]
      | |   o- luns .......................................................................................................... [LUNs: 1]
      | |   | o- lun0 ............................................................. [fileio/sbddbhn1 (/sbd/sbddbhn1) (default_tg_pt_gp)]
      | |   o- portals .................................................................................................... [Portals: 1]
      | |     o- 0.0.0.0:3260 ..................................................................................................... [OK]
      | o- iqn.2006-04.ascsnw1.local:ascsnw1 ................................................................................. [TPGs: 1]
      |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
      |     o- acls .......................................................................................................... [ACLs: 2]
      |     | o- iqn.2006-04.sap-cl1.local:sap-cl1 .................................................................... [Mapped LUNs: 1]
      |     | | o- mapped_lun0 ........................................................................... [lun0 fileio/sbdascsers (rw)]
      |     | o- iqn.2006-04.sap-cl2.local:sap-cl2 .................................................................... [Mapped LUNs: 1]
      |     |   o- mapped_lun0 ........................................................................... [lun0 fileio/sbdascsers (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- loopback ......................................................................................................... [Targets: 0]
    

إعداد جهاز SBD الخاص بخادم الهدف iSCSI

[A]: ينطبق على جميع العقدة. [1]: ينطبق فقط على العُقدة 1. [2]: ينطبق فقط على العُقدة 2.

على عقد نظام المجموعة، قم بتوصيل واكتشاف جهاز iSCSI الذي تم إنشاؤه في القسم السابق. قم بتشغيل الأوامر التالية على عقد الكتلة الجديدة التي تريد إنشاءها.

  1. [A] تثبيت أو تحديث utils بادئ iSCSI على جميع عقد نظام المجموعة.

    sudo yum install -y iscsi-initiator-utils
    
  2. [A] تثبيت حزم نظام المجموعة وSBD على جميع عقد نظام المجموعة.

    sudo yum install -y pcs pacemaker sbd fence-agents-sbd
    
  3. [A] تمكين خدمة iSCSI.

    sudo systemctl enable iscsid iscsi
    
  4. [1] تغيير اسم البادئ على العقدة الأولى من نظام المجموعة.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
    # Change the content of the file to match the access control ists (ACLs) you used when you created the iSCSI device on the iSCSI target server (for example, for the ASCS/ERS servers)
    InitiatorName=iqn.2006-04.sap-cl1.local:sap-cl1
    
  5. [2] تغيير اسم البادئ على العقدة الثانية من نظام المجموعة.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
    # Change the content of the file to match the access control ists (ACLs) you used when you created the iSCSI device on the iSCSI target server (for example, for the ASCS/ERS servers)
    InitiatorName=iqn.2006-04.sap-cl2.local:sap-cl2
    
  6. [A] أعد تشغيل خدمة iSCSI لتطبيق التغييرات.

    sudo systemctl restart iscsid 
    sudo systemctl restart iscsi
    
  7. [A] الاتصال بأجهزة iSCSI. في المثال التالي، 10.0.0.17 هو عنوان IP لخادم الهدف iSCSI، و 3260 هو المنفذ الافتراضي. يتم سرد الاسم iqn.2006-04.ascsnw1.local:ascsnw1 الهدف عند تشغيل الأمر iscsiadm -m discoveryالأول .

    sudo iscsiadm -m discovery --type=st --portal=10.0.0.17:3260
    sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.17:3260
    sudo iscsiadm -m node -p 10.0.0.17:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
    
  8. [A] إذا كنت تستخدم أجهزة SBD متعددة، فاتصل أيضا بالخادم الهدف الثاني iSCSI.

    sudo iscsiadm -m discovery --type=st --portal=10.0.0.18:3260
    sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.18:3260
    sudo iscsiadm -m node -p 10.0.0.18:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
    
  9. [A] إذا كنت تستخدم أجهزة SBD متعددة، فاتصل أيضا بالخادم الهدف الثالث iSCSI.

    sudo iscsiadm -m discovery --type=st --portal=10.0.0.19:3260
    sudo iscsiadm -m node -T iqn.2006-04.ascsnw1.local:ascsnw1 --login --portal=10.0.0.19:3260
    sudo iscsiadm -m node -p 10.0.0.19:3260 -T iqn.2006-04.ascsnw1.local:ascsnw1 --op=update --name=node.startup --value=automatic
    
  10. [A] تأكد من توفر أجهزة iSCSI ولاحظ اسم الجهاز. في المثال التالي، يتم اكتشاف ثلاثة أجهزة iSCSI عن طريق توصيل العقدة بثلاثة خوادم هدف iSCSI.

    lsscsi
    
    [0:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sde
    [1:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sda
    [1:0:0:1]    disk    Msft     Virtual Disk     1.0   /dev/sdb
    [1:0:0:2]    disk    Msft     Virtual Disk     1.0   /dev/sdc
    [1:0:0:3]    disk    Msft     Virtual Disk     1.0   /dev/sdd
    [2:0:0:0]    disk    LIO-ORG  sbdascsnw1       4.0   /dev/sdf
    [3:0:0:0]    disk    LIO-ORG  sbdascsnw1       4.0   /dev/sdh
    [4:0:0:0]    disk    LIO-ORG  sbdascsnw1       4.0   /dev/sdg
    
  11. [A] استرجع معرّفات أجهزة iSCSI.

    ls -l /dev/disk/by-id/scsi-* | grep -i sdf
    
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:85d254ed-78e2-4ec4-8b0d-ecac2843e086 -> ../../sdf
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2 -> ../../sdf
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_85d254ed-78e2-4ec4-8b0d-ecac2843e086 -> ../../sdf
    
    ls -l /dev/disk/by-id/scsi-* | grep -i sdh
    
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:87122bfc-8a0b-4006-b538-d0a6d6821f04 -> ../../sdh
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d -> ../../sdh
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_87122bfc-8a0b-4006-b538-d0a6d6821f04 -> ../../sdh
    
    ls -l /dev/disk/by-id/scsi-* | grep -i sdg
    
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-1LIO-ORG_sbdhdb:d2ddc548-060c-49e7-bb79-2bb653f0f34a -> ../../sdg
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 -> ../../sdg
    # lrwxrwxrwx 1 root root  9 Jul 15 20:21 /dev/disk/by-id/scsi-SLIO-ORG_sbdhdb_d2ddc548-060c-49e7-bb79-2bb653f0f34a -> ../../sdg
    
    

    يسرد الأمر ثلاثة معرّفات جهاز لكل جهاز SBD. نوصي باستخدام المعرف الذي يبدأ بـ scsi-3. في المثال السابق، المعرفات هي:

    • /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2
    • /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d
    • /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65
  12. [1] قم بإنشاء جهاز SBD.

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

      sudo sbd -d /dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2 -1 60 -4 120 create
      
    2. قم أيضًا بإنشاء جهاز SBD الثاني والثالث إذا كنت تريد استخدام أكثر من جهاز.

      sudo sbd -d /dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d -1 60 -4 120 create
      sudo sbd -d /dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 -1 60 -4 120 create
      
  13. [A] تكييف تكوين SBD

    1. افتح ملف تكوين SBD.

      sudo vi /etc/sysconfig/sbd
      
    2. قم بتغيير خاصية جهاز SBD، وتمكين تكامل جهاز تنظيم ضربات القلب، وتغيير وضع بدء SBD.

      [...]
      SBD_DEVICE="/dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2;/dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d;/dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65"
      [...]
      SBD_PACEMAKER=yes
      [...]
      SBD_STARTMODE=always
      [...]
      SBD_DELAY_START=yes
      [...]
      
  14. [A] قم بتشغيل الأمر التالي لتحميل الوحدة النمطية softdog .

    modprobe softdog
    
  15. [A] قم بتشغيل الأمر التالي للتأكد من softdog تحميله تلقائيا بعد إعادة تشغيل العقدة.

    echo softdog > /etc/modules-load.d/watchdog.conf
    systemctl restart systemd-modules-load
    
  16. [A] يتم تعيين قيمة مهلة خدمة SBD إلى 90 ثانية بشكل افتراضي. ومع ذلك، إذا SBD_DELAY_START تم تعيين القيمة إلى yes، فإن خدمة SBD ستؤخر بدء تشغيلها حتى بعد انتهاء المهلة msgwait . لذلك، يجب أن تتجاوز قيمة مهلة خدمة SBD المهلة msgwait عند SBD_DELAY_START تمكينها.

    sudo mkdir /etc/systemd/system/sbd.service.d
    echo -e "[Service]\nTimeoutSec=144" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf
    sudo systemctl daemon-reload
    
    systemctl show sbd | grep -i timeout
    # TimeoutStartUSec=2min 24s
    # TimeoutStopUSec=2min 24s
    

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

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

تكوين قرص Azure المشترك باستخدام PowerShell

لإنشاء قرص مشترك Azure وإرفاقه باستخدام PowerShell، نفذ التعليمات التالية. إذا كنت تريد نشر الموارد باستخدام Azure CLI أو مدخل Azure، يمكنك أيضًا الرجوع إلى نشر قرص ZRS.

$ResourceGroup = "MyResourceGroup"
$Location = "MyAzureRegion"
$DiskSizeInGB = 4
$DiskName = "SBD-disk1"
$ShareNodes = 2
$LRSSkuName = "Premium_LRS"
$ZRSSkuName = "Premium_ZRS"  
$vmNames = @("prod-cl1-0", "prod-cl1-1")  # VMs to attach the disk

# ZRS Azure shared disk: Configure an Azure shared disk with ZRS for a premium shared disk
$zrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $ZRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$zrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $zrsDiskConfig

# Attach ZRS disk to cluster VMs
foreach ($vmName in $vmNames) {
  $vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
  Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $zrsDataDisk.Id -Lun 0
  Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}

# LRS Azure shared disk: Configure an Azure shared disk with LRS for a premium shared disk
$lrsDiskConfig = New-AzDiskConfig -Location $Location -SkuName $LRSSkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
$lrsDataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $lrsDiskConfig

# Attach LRS disk to cluster VMs
foreach ($vmName in $vmNames) {
  $vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
  Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Attach -ManagedDiskId $lrsDataDisk.Id -Lun 0
  Update-AzVM -VM $vm -ResourceGroupName $resourceGroup -Verbose
}

إعداد جهاز SBD للقرص المشترك في Azure

  1. [A] تثبيت حزم نظام المجموعة وSBD على جميع عقد نظام المجموعة.

    sudo yum install -y pcs pacemaker sbd fence-agents-sbd
    
  2. [A] تأكد من توفر القرص المرفق.

    lsblk
    
    # NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    # sda                 8:0    0    4G  0 disk
    # sdb                 8:16   0   64G  0 disk
    # ├─sdb1              8:17   0  500M  0 part /boot
    # ├─sdb2              8:18   0   63G  0 part
    # │ ├─rootvg-tmplv  253:0    0    2G  0 lvm  /tmp
    # │ ├─rootvg-usrlv  253:1    0   10G  0 lvm  /usr
    # │ ├─rootvg-homelv 253:2    0    1G  0 lvm  /home
    # │ ├─rootvg-varlv  253:3    0    8G  0 lvm  /var
    # │ └─rootvg-rootlv 253:4    0    2G  0 lvm  /
    # ├─sdb14             8:30   0    4M  0 part
    # └─sdb15             8:31   0  495M  0 part /boot/efi
    # sr0                11:0    1 1024M  0 rom
    
    lsscsi
    
    # [0:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sdb
    # [0:0:0:2]    cd/dvd  Msft     Virtual DVD-ROM  1.0   /dev/sr0
    # [1:0:0:0]    disk    Msft     Virtual Disk     1.0   /dev/sda
    # [1:0:0:1]    disk    Msft     Virtual Disk     1.0   /dev/sdc
    
  3. [A] استرداد معرف الجهاز للقرص المشترك المرفق.

    ls -l /dev/disk/by-id/scsi-* | grep -i sda
    
    # lrwxrwxrwx 1 root root  9 Jul 15 22:24 /dev/disk/by-id/scsi-14d534654202020200792c2f5cc7ef14b8a7355cb3cef0107 -> ../../sda
    # lrwxrwxrwx 1 root root  9 Jul 15 22:24 /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107 -> ../../sda
    

    معرف جهاز قائمة الأوامر للقرص المشترك المرفق. نوصي باستخدام المعرف الذي يبدأ بـ scsi-3. في هذا المثال، المعرف هو /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107.

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

    # Use the device ID from step 3 to create the new SBD device on the first cluster node
    sudo sbd -d /dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107 -1 60 -4 120 create
    
  5. [A] تكييف تكوين SBD

    1. افتح ملف تكوين SBD.

      sudo vi /etc/sysconfig/sbd
      
    2. تغيير خاصية جهاز SBD وتمكين تكامل جهاز تنظيم ضربات القلب وتغيير وضع بدء SBD

      [...]
      SBD_DEVICE="/dev/disk/by-id/scsi-3600224800792c2f5cc7e55cb3cef0107"
      [...]
      SBD_PACEMAKER=yes
      [...]
      SBD_STARTMODE=always
      [...]
      SBD_DELAY_START=yes
      [...]
      
  6. [A] قم بتشغيل الأمر التالي لتحميل الوحدة النمطية softdog .

    modprobe softdog
    
  7. [A] قم بتشغيل الأمر التالي للتأكد من softdog تحميله تلقائيا بعد إعادة تشغيل العقدة.

    echo softdog > /etc/modules-load.d/watchdog.conf
    systemctl restart systemd-modules-load
    
  8. [A] يتم تعيين قيمة مهلة خدمة SBD إلى 90 ثانية بشكل افتراضي. ومع ذلك، إذا SBD_DELAY_START تم تعيين القيمة إلى yes، فإن خدمة SBD ستؤخر بدء تشغيلها حتى بعد انتهاء المهلة msgwait . لذلك، يجب أن تتجاوز قيمة مهلة خدمة SBD المهلة msgwait عند SBD_DELAY_START تمكينها.

    sudo mkdir /etc/systemd/system/sbd.service.d
    echo -e "[Service]\nTimeoutSec=144" | sudo tee /etc/systemd/system/sbd.service.d/sbd_delay_start.conf
    sudo systemctl daemon-reload
    
    systemctl show sbd | grep -i timeout
    # TimeoutStartUSec=2min 24s
    # TimeoutStopUSec=2min 24s
    

تكوين عامل سياج Azure

يستخدم جهاز التسييج إما هوية مدارة لمورد Azure أو كيان خدمة للتخويل مقابل Azure. اعتمادا على طريقة إدارة الهوية، اتبع الإجراءات المناسبة -

  1. تكوين إدارة الهوية

    استخدم الهوية المدارة أو كيان الخدمة.

    لإنشاء هوية مدارة (MSI)، قم بإنشاء هوية مدارة يعينها النظام لكل جهاز ظاهري في نظام المجموعة. إذا كانت الهوية المدارة المعينة من قبل النظام موجودة بالفعل، استخدامها. لا تستخدم الهويات المدارة المعينة من قبل المستخدم مع Pacemaker في هذا الوقت. يتم دعم جهاز السياج، استنادا إلى الهوية المدارة، على RHEL 7.9 و RHEL 8.x/RHEL 9.x.

  2. إنشاء دور مخصص لعامل التسييج

    لا تملك كل من الهوية المدارة ومدير الخدمة أذونات للوصول إلى موارد 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": []
    }
    
  3. تعيين الدور المخصص

    استخدم الهوية المدارة أو كيان الخدمة.

    تعيين الدور Linux Fence Agent Role المخصص الذي تم إنشاؤه في القسم الأخير لكل هوية مدارة من الأجهزة الظاهرية لنظام المجموعة. تحتاج كل هوية مُدارة يعينها نظام VM إلى الدور المعين لكل مورد لمجموعة VM. للمزيد من المعلومات، راجع تعيين الوصول إلى هوية مدارة إلى مورد باستخدام مدخل Azure. تحقق من أن تعيين دور الهوية المدارة لكل جهاز ظاهري يحتوي على جميع الأجهزة الظاهرية لنظام المجموعة.

    هام

    يجب أن تدرك أن تعيين وإزالة التخويل مع الهويات المدارة يمكن تأخيرها حتى تصبح فعالة .

تثبيت المجموعة

يتم وضع علامة على الاختلافات في الأوامر أو التكوين بين RHEL 7 و RHEL 8/RHEL 9 في المستند.

  1. [A] تثبيت الوظيفة الإضافية RHEL HA.

    sudo yum install -y pcs pacemaker nmap-ncat
    
  2. [A] على RHEL 9.x، قم بتثبيت عوامل الموارد لنشر السحابة.

    sudo yum install -y resource-agents-cloud
    
  3. [A] قم بتثبيت حزمة عوامل السياج إذا كنت تستخدم جهاز تسييج استنادا إلى عامل سياج Azure.

    sudo yum install -y fence-agents-azure-arm 
    

    هام

    نوصي بالإصدارات التالية من عامل Azure fence (أو أحدث) للعملاء الذين يرغبون في استخدام الهويات المدارة لموارد Azure بدلا من الأسماء الأساسية للخدمة لعامل السياج:

    • RHEL 8.4: fence-agents-4.2.1-54.el8.
    • RHEL 8.2: fence-agents-4.2.1-41.el8_2.4
    • RHEL 8.1: fence-agents-4.2.1-30.el8_1.4
    • RHEL 7.9: fence-agents-4.2.1-41.el7_9.4.

    هام

    في RHEL 9، نوصي بإصدارات الحزمة التالية (أو أحدث) لتجنب المشكلات مع عامل سياج Azure:

    • عوامل السياج-4.10.0-20.el9_0.7
    • fence-agents-common-4.10.0-20.el9_0.6
    • ha-cloud-support-4.10.0-20.el9_0.6.x86_64.rpm

    تحقق من إصدار Azure fence agent. إذا لزم الأمر، فقم بتحديثه إلى الحد الأدنى المطلوب من الإصدار أو أحدث.

    # Check the version of the Azure Fence Agent
    sudo yum info fence-agents-azure-arm
    

    هام

    إذا كنت بحاجة إلى تحديث عامل Azure fence، وإذا كنت تستخدم دورا مخصصا، فتأكد من تحديث الدور المخصص لتضمين powerOff للإجراء. لمزيد من المعلومات، راجع إنشاء دور مخصص لعامل السياج.

  4. [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
    
  5. [A] تغيير hacluster كلمة المرور إلى نفس كلمة المرور.

    sudo passwd hacluster
    
  6. [A] إضافة قواعد جدار الحماية ل Pacemaker.

    أضف قواعد جدار الحماية التالية إلى جميع اتصالات المجموعة بين عقد المجموعة.

    sudo firewall-cmd --add-service=high-availability --permanent
    sudo firewall-cmd --add-service=high-availability
    
  7. [A] تمكين خدمات نظام المجموعة الأساسية.

    قم بتشغيل الأوامر التالية لتمكين خدمة Pacemaker وبدء تشغيلها.

    sudo systemctl start pcsd.service
    sudo systemctl enable pcsd.service
    
  8. [1] إنشاء نظام مجموعة Pacemaker.

    قم بتشغيل الأوامر التالية لمصادقة العقد وإنشاء المجموعة. قم بتعيين الرمز المميز إلى 30000 للسماح بالحفاظ على الذاكرة الصيانة. لمزيد من المعلومات، راجع this article for Linux.

    إذا كنت تقوم بإنشاء نظام مجموعة على RHEL 7.x، فاستخدم الأوامر التالية:

    sudo pcs cluster auth prod-cl1-0 prod-cl1-1 -u hacluster
    sudo pcs cluster setup --name nw1-azr prod-cl1-0 prod-cl1-1 --token 30000
    sudo pcs cluster start --all
    

    إذا كنت تقوم بإنشاء نظام مجموعة على RHEL 8.x/RHEL 9.x، فاستخدم الأوامر التالية:

    sudo pcs host auth prod-cl1-0 prod-cl1-1 -u hacluster
    sudo pcs cluster setup nw1-azr prod-cl1-0 prod-cl1-1 totem token=30000
    sudo pcs cluster start --all
    

    تحقق من حالة نظام المجموعة عن طريق تشغيل الأمر التالي:

    # Run the following command until the status of both nodes is online
    sudo pcs status
    
    # Cluster name: nw1-azr
    # WARNING: no stonith devices and stonith-enabled is not false
    # Stack: corosync
    # Current DC: prod-cl1-1 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum
    # Last updated: Fri Aug 17 09:18:24 2018
    # Last change: Fri Aug 17 09:17:46 2018 by hacluster via crmd on prod-cl1-1
    #
    # 2 nodes configured
    # 0 resources configured
    #
    # Online: [ prod-cl1-0 prod-cl1-1 ]
    #
    # No resources
    #
    # Daemon Status:
    #   corosync: active/disabled
    #   pacemaker: active/disabled
    #   pcsd: active/enabled
    
  9. [A] تعيين الأصوات المتوقعة.

    # Check the quorum votes 
    pcs quorum status
    
    # If the quorum votes are not set to 2, execute the next command
    sudo pcs quorum expected-votes 2
    

    تلميح

    إذا كنت تقوم بإنشاء مجموعة متعددة العقد، أي مجموعة بها أكثر من عقدتين، فلا تقم بتعيين الأصوات إلى 2.

  10. [1] السماح بإجراءات السياج المتزامنة.

    sudo pcs property set concurrent-fencing=true
    

إنشاء جهاز الحد على مجموعة منظم القلب

تلميح

  • لتجنب سباقات السياج داخل نظام مجموعة منظم ضربات القلب ثنائية العقدة، يمكنك تكوين priority-fencing-delay خاصية نظام المجموعة. تقدم هذه الخاصية تأخيرا إضافيا في تسييج عقدة ذات أولوية إجمالية أعلى للموارد عند حدوث سيناريو تقسيم الدماغ. لمزيد من المعلومات، راجع هل يمكن ل Pacemaker سياج عقدة نظام المجموعة بأقل الموارد قيد التشغيل؟.
  • تنطبق الخاصية priority-fencing-delay على إصدار Pacemaker 2.0.4-6.el8 أو أعلى وعلى نظام مجموعة مكون من عقدتين. إذا قمت بتكوين priority-fencing-delay خاصية نظام المجموعة، فلن تحتاج إلى تعيين الخاصية pcmk_delay_max . ولكن إذا كان إصدار Pacemaker أقل من 2.0.4-6.el8، فأنت بحاجة إلى تعيين الخاصية pcmk_delay_max .
  • للحصول على إرشادات حول كيفية تعيين priority-fencing-delay خاصية نظام المجموعة، راجع مستندات SAP ASCS/ERS المعنية وSAP HANA لزيادة قابلية الوصول العالية.

استنادا إلى آلية التسييج المحددة، اتبع قسما واحدا فقط للحصول على الإرشادات ذات الصلة: SBD كجهاز تسييج أو عامل سياج Azure كجهاز تسييج.

SBD كجهاز تسييج

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

    sudo systemctl enable sbd
    
  2. [1] بالنسبة لجهاز SBD الذي تم تكوينه باستخدام خوادم هدف iSCSI أو قرص Azure المشترك، قم بتشغيل الأوامر التالية.

    sudo pcs property set stonith-timeout=144
    sudo pcs property set stonith-enabled=true
    
    # Replace the device IDs with your device ID. 
    pcs stonith create sbd fence_sbd \
    devices=/dev/disk/by-id/scsi-3600140585d254ed78e24ec48b0decac2,/dev/disk/by-id/scsi-3600140587122bfc8a0b4006b538d0a6d,/dev/disk/by-id/scsi-36001405d2ddc548060c49e7bb792bb65 \
    op monitor interval=600 timeout=15
    
  3. [1] إعادة تشغيل نظام المجموعة

    sudo pcs cluster stop --all
    
    # It would take time to start the cluster as "SBD_DELAY_START" is set to "yes"
    sudo pcs cluster start --all
    

    إشعار

    إذا واجهت الخطأ التالي أثناء بدء تشغيل نظام مجموعة أجهزة تنظيم ضربات القلب، يمكنك تجاهل الرسالة. بدلا من ذلك، يمكنك بدء تشغيل نظام المجموعة باستخدام الأمر pcs cluster start --all --request-timeout 140.

    خطأ: غير قادر على بدء تشغيل جميع العقد node1/node2: غير قادر على الاتصال بالعقدة1/node2، تحقق مما إذا كان pcsd قيد التشغيل هناك أو حاول تعيين مهلة أعلى مع --request-timeout خيار (انتهت مهلة العملية بعد 60000 مللي ثانية مع تلقي 0 بايت)

عامل سياج Azure كجهاز تسييج

  1. [1] بعد تعيين أدوار لكل من عقد نظام المجموعة، يمكنك تكوين أجهزة التسييج في نظام المجموعة.

    sudo pcs property set stonith-timeout=900
    sudo pcs property set stonith-enabled=true
    
  2. [1] تشغيل الأمر المناسب اعتمادا على ما إذا كنت تستخدم هوية مدارة أو كيان خدمة لعامل سياج Azure.

    إشعار

    عند استخدام سحابة Azure government، يجب تحديد cloud= خيار عند تكوين عامل السياج. على سبيل المثال، cloud=usgov بالنسبة إلى سحابة حكومة Azure الأمريكية. للحصول على تفاصيل حول دعم RedHat على سحابة Azure government، راجع نهج الدعم لمجموعات قابلية الوصول العالية RHEL - أجهزة Microsoft Azure الظاهرية كأعضاء نظام المجموعة.

    تلميح

    الخيار pcmk_host_map مطلوب فقط في الأمر إذا لم تكن أسماء مضيفي RHEL وأسماء Azure VM متطابقة. حدد التعيين بتنسيق hostname:vm-name. لمزيد من المعلومات، راجع ما التنسيق الذي يجب استخدامه لتحديد تعيينات العقد لأجهزة التسييج في pcmk_host_map؟.

    بالنسبة ل RHEL 7.x، استخدم الأمر التالي لتكوين جهاز السياج:

    sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \ 
    subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
    power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
    op monitor interval=3600
    

    بالنسبة إلى RHEL 8.x/9.x، استخدم الأمر التالي لتكوين جهاز السياج:

    # Run following command if you are setting up fence agent on (two-node cluster and pacemaker version greater than 2.0.4-6.el8) OR (HANA scale out)
    sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \
    subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
    power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 \
    op monitor interval=3600
    
    # Run following command if you are setting up fence agent on (two-node cluster and pacemaker version less than 2.0.4-6.el8)
    sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \
    subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
    power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
    op monitor interval=3600
    

إذا كنت تستخدم جهاز تسييج يستند إلى تكوين كيان الخدمة، فاقرأ التغيير من SPN إلى MSI لمجموعات Pacemaker باستخدام تسييج Azure وتعلم كيفية التحويل إلى تكوين الهوية المدارة.

تم إلغاء تسلسل عمليات المراقبة والحد الزمني. ونتيجة لذلك، إذا كانت هناك عملية مراقبة قيد التشغيل وحدث تسييج متزامن، فلن يكون هناك تأخير في تجاوز فشل نظام المجموعة لأن عملية المراقبة قيد التشغيل بالفعل.

تلميح

يتطلب عامل سياج Azure اتصالا صادرا بنقاط النهاية العامة. لمزيد من المعلومات جنبا إلى جنب مع الحلول الممكنة، راجع اتصال نقطة النهاية العامة للأجهزة الظاهرية باستخدام ILB القياسي.

تكوين Pacemaker للأحداث المجدولة في Azure

يقدم Azure الأحداث المجدولة. يتم إرسال الأحداث المجدولة عبر خدمة بيانات التعريف وتسمح بوقت التطبيق للتحضير لمثل هذه الأحداث.

يراقب عامل azure-events-az موارد Pacemaker أحداث Azure المجدولة. إذا تم الكشف عن الأحداث وحدد عامل المورد توفر عقدة نظام مجموعة أخرى، فإنه يعين سمة صحة نظام المجموعة.

عند تعيين سمة صحة نظام المجموعة لعقدة، يتم تشغيل قيد الموقع ويتم ترحيل جميع الموارد التي لا تبدأ بالأسماء health- بعيدا عن العقدة مع الحدث المجدول. بعد أن تكون عقدة نظام المجموعة المتأثرة خالية من تشغيل موارد نظام المجموعة، يتم الاعتراف بالحدث المجدول ويمكنه تنفيذ الإجراء الخاص به، مثل إعادة التشغيل.

  1. [A] تأكد من أن حزمة العامل مثبتة azure-events-az بالفعل ومحدثة.

    RHEL 8.x: sudo dnf info resource-agents
    RHEL 9.x: sudo dnf info resource-agents-cloud
    

    الحد الأدنى لمتطلبات الإصدار:

    • RHEL 8.4: resource-agents-4.1.1-90.13
    • RHEL 8.6: resource-agents-4.9.0-16.9
    • RHEL 8.8: resource-agents-4.9.0-40.1
    • RHEL 9.0: resource-agents-cloud-4.10.0-9.6
    • RHEL 9.2 والأحدث: resource-agents-cloud-4.10.0-34.1
  2. [1] قم بتكوين الموارد في Pacemaker.

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

    sudo pcs property set node-health-strategy=custom
    
    sudo pcs constraint location 'regexp%!health-.*' \
    rule score-attribute='#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 pcs resource create health-azure-events \
    ocf:heartbeat:azure-events-az \
    op monitor interval=10s timeout=240s \
    op start timeout=10s start-delay=90s
    
    sudo pcs resource clone health-azure-events allow-unhealthy-nodes=true failure-timeout=120s
    
  6. أخرج نظام مجموعة Pacemaker من وضع الصيانة.

    sudo pcs property set maintenance-mode=false
    
  7. قم بإلغاء تحديد أي أخطاء أثناء التمكين وتحقق من أن health-azure-events الموارد قد بدأت بنجاح على جميع عقد نظام المجموعة.

    sudo pcs resource cleanup
    

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

تكوين التحديد الاختياري

تلميح

ينطبق هذا القسم فقط إذا كنت تريد تكوين جهاز fence_kdumpالتسييج الخاص .

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

هام

يجب أن تدرك أنه عند fence_kdump تكوينه كجهاز تسييج من المستوى الأول، فإنه يقدم تأخيرات في عمليات التسييج، وعلى التوالي، التأخيرات في تجاوز فشل موارد التطبيق.

إذا تم الكشف عن تفريغ الأعطال بنجاح، يتم تأخير التسييج حتى تكتمل خدمة استرداد الأعطال. إذا كانت العقدة الفاشلة غير قابلة للوصول أو إذا لم تستجب، يتم تأخير التسييج حسب الوقت المحدد، وعدد التكرارات المكونة، والمهلة fence_kdump . لمزيد من المعلومات، راجع كيف أعمل تكوين fence_kdump في مجموعة Red Hat Pacemaker؟.

قد تحتاج المهلة المقترحة fence_kdump إلى التكيف مع البيئة المحددة.

نوصي بتكوين fence_kdump التسييج فقط عند الضرورة لجمع التشخيصات داخل الجهاز الظاهري ودائما بالاشتراك مع أساليب السياج التقليدية، مثل SBD أو عامل سياج Azure.

تحتوي مقالات Red Hat KB التالية على معلومات مهمة حول تكوين التسييج fence_kdump :

قم بتشغيل الخطوات الاختيارية التالية لإضافتها fence_kdump كتكوين تسييج من المستوى الأول، بالإضافة إلى تكوين عامل سياج Azure.

  1. [A] تحقق من أن kdump يكون نشطا ومكونا.

    systemctl is-active kdump
    # Expected result
    # active
    
  2. [A] ثبت عامل التحديد fence_kdump.

    yum install fence-agents-kdump
    
  3. [1] إنشاء fence_kdump جهاز تسييج في نظام المجموعة.

    pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" timeout=30
    
  4. [1] تكوين مستويات التسييج بحيث يتم إشراك آلية التسييج fence_kdump أولا.

    pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1"
    pcs stonith level add 1 prod-cl1-0 rsc_st_kdump
    pcs stonith level add 1 prod-cl1-1 rsc_st_kdump
    # Replace <stonith-resource-name> to the resource name of the STONITH resource configured in your pacemaker cluster (example based on above configuration - sbd or rsc_st_azure)
    pcs stonith level add 2 prod-cl1-0 <stonith-resource-name>
    pcs stonith level add 2 prod-cl1-1 <stonith-resource-name>
    
    # Check the fencing level configuration 
    pcs stonith level
    # Example output
    # Target: prod-cl1-0
    # Level 1 - rsc_st_kdump
    # Level 2 - <stonith-resource-name>
    # Target: prod-cl1-1
    # Level 1 - rsc_st_kdump
    # Level 2 - <stonith-resource-name>
    
  5. [A] السماح بالمنافذ المطلوبة من fence_kdump خلال جدار الحماية.

    firewall-cmd --add-port=7410/udp
    firewall-cmd --add-port=7410/udp --permanent
    
  6. [A] قم بإجراء fence_kdump_nodes التكوين في /etc/kdump.conf لتجنب fence_kdump الفشل مع مهلة لبعض kexec-tools الإصدارات. لمزيد من المعلومات، راجع مهلة fence_kdump عندما لا يتم تحديد fence_kdump_nodes مع kexec-tools الإصدار 2.0.15 أو أحدث ويفشل fence_kdump مع "المهلة بعد X ثانية" في نظام مجموعة قابلية وصول عالية التوفر RHEL 6 أو 7 مع إصدارات أدوات kexec الأقدم من 2.0.14. يتم تقديم مثال التكوين لنظام مجموعة من عقدتين هنا. بعد إجراء تغيير في /etc/kdump.conf، يجب إعادة إنشاء صورة kdump. لإعادة إنشاء الخدمة، أعد تشغيل kdump الخدمة.

    vi /etc/kdump.conf
    # On node prod-cl1-0 make sure the following line is added
    fence_kdump_nodes  prod-cl1-1
    # On node prod-cl1-1 make sure the following line is added
    fence_kdump_nodes  prod-cl1-0
    
    # Restart the service on each node
    systemctl restart kdump
    
  7. [A] تأكد من initramfs أن ملف الصورة يحتوي على الملفين fence_kdump و hosts . لمزيد من المعلومات، راجع كيف أعمل تكوين fence_kdump في مجموعة Red Hat Pacemaker؟.

    lsinitrd /boot/initramfs-$(uname -r)kdump.img | egrep "fence|hosts"
    # Example output 
    # -rw-r--r--   1 root     root          208 Jun  7 21:42 etc/hosts
    # -rwxr-xr-x   1 root     root        15560 Jun 17 14:59 usr/libexec/fence_kdump_send
    
  8. اختبر التكوين عن طريق تحطيم عقدة. لمزيد من المعلومات، راجع كيف أعمل تكوين fence_kdump في مجموعة Red Hat Pacemaker؟.

    هام

    إذا كان نظام المجموعة قيد الاستخدام الإنتاجي بالفعل، فخطط الاختبار وفقا لذلك لأن تعطل عقدة له تأثير على التطبيق.

    echo c > /proc/sysrq-trigger
    

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