Menyiapkan Pacemaker di SUSE Linux Enterprise Server di Azure

Artikel ini membahas cara mengatur Pacemaker di SUSE Linux Enterprise Server (SLES) di Azure.

Gambaran Umum

Di Azure, Anda memiliki dua opsi untuk menyiapkan STONITH di kluster Pacemaker untuk SLES. Anda dapat menggunakan agen pagar Azure, yang memulai ulang node yang gagal melalui API Azure, atau Anda dapat menggunakan perangkat SBD.

Menggunakan perangkat SBD

Anda dapat mengonfigurasi perangkat SBD dengan menggunakan salah satu dari dua opsi:

  • SBD dengan server target iSCSI:

    Perangkat SBD membutuhkan setidaknya satu mesin virtual tambahan (VM) yang bertindak sebagai server target Internet Small Computer System Interface (iSCSI) dan menyediakan perangkat SBD. Namun, server target iSCSI ini dapat dibagikan dengan kluster Pacemaker lainnya. Keuntungan menggunakan perangkat SBD adalah, jika Anda sudah menggunakan perangkat SBD lokal, tidak memerlukan perubahan apa pun tentang cara Anda mengoperasikan kluster pacemaker.

    Anda dapat menggunakan hingga tiga perangkat SBD untuk kluster Pacemaker untuk memungkinkan perangkat SBD menjadi tidak tersedia, misalnya selama patching OS server target iSCSI. Jika Anda ingin menggunakan lebih dari satu perangkat SBD per Pacemaker, pastikan untuk menggunakan beberapa server target iSCSI dan menghubungkan satu SBD dari setiap server target iSCSI. Sebaiknya gunakan satu perangkat SBD atau tiga perangkat. Peacemaker tidak dapat secara otomatis memagari simpul cluster jika hanya dua perangkat SBD yang dikonfigurasi dan salah satunya tidak tersedia. Jika Anda ingin dapat memagari ketika satu server target iSCSI mati, Anda harus menggunakan tiga perangkat SBD dan oleh karena itu tiga server target iSCSI. Itu adalah konfigurasi yang paling tangguh saat Anda menggunakan SBD.

    Diagram Pacemaker pada gambaran umum SLES.

    Penting

    Saat Anda merencanakan dan menyebarkan node kluster Linux Pacemaker dan perangkat SBD, jangan biarkan perutean antara mesin virtual Anda dan VM yang menghosting perangkat SBD untuk melewati perangkat lain, seperti virtual jaringan appliance (NVA).

    Masalah dan kejadian pemeliharaan dengan NVA dapat berdampak negatif pada stabilitas dan keandalan konfigurasi kluster secara keseluruhan. Untuk informasi selengkapnya, lihat Aturan perutean yang ditentukan-pengguna.

  • SBD dengan disk bersama Azure:

    Untuk mengonfigurasi perangkat SBD, Anda perlu melampirkan setidaknya satu disk bersama Azure ke semua mesin virtual yang merupakan bagian dari kluster Pacemaker. Keuntungan perangkat SBD menggunakan disk bersama Azure adalah Anda tidak perlu menyebarkan komputer virtual tambahan.

    Diagram perangkat SBD disk bersama Azure untuk kluster Pacemaker SLES.

    Berikut adalah beberapa pertimbangan penting tentang perangkat SBD saat Anda menggunakan disk bersama Azure:

    • Disk bersama Azure dengan SSD Premium didukung sebagai perangkat SBD.
    • Perangkat SBD yang menggunakan disk bersama Azure didukung pada SLES High Availability 15 SP01 dan versi yang lebih baru.
    • Perangkat SBD yang menggunakan disk bersama premium Azure didukung pada penyimpanan redundan lokal (LRS) dan penyimpanan redundan zona (ZRS).
    • Bergantung pada jenis penyebaran Anda, pilih penyimpanan redundan yang sesuai untuk disk bersama Azure sebagai perangkat SBD Anda.
    • Perangkat SBD yang menggunakan LRS untuk disk bersama premium Azure (skuName - Premium_LRS) hanya didukung dengan penyebaran dalam set ketersediaan.
    • Perangkat SBD yang menggunakan ZRS untuk disk bersama premium Azure (skuName - Premium_ZRS) direkomendasikan dengan penyebaran di zona ketersediaan.
    • ZRS untuk disk terkelola saat ini tidak tersedia di semua wilayah dengan zona ketersediaan. Untuk informasi selengkapnya, tinjau bagian "Batasan" ZRS di Opsi redundansi untuk disk terkelola.
    • Disk bersama Azure yang Anda gunakan untuk perangkat SBD tidak perlu besar. Nilai maxShares disk bersama Azure menentukan berapa banyak simpul kluster yang dapat menggunakan disk bersama. Misalnya, Anda dapat menggunakan ukuran disk P1 atau P2 untuk perangkat SBD Anda pada kluster dua simpul seperti SAP ASCS/ERS atau SAP Hana scale-up.
    • Untuk HANA scale-out dengan replikasi sistem HANA (HSR) dan Pacemaker, Anda dapat menggunakan disk bersama Azure untuk perangkat SBD dalam kluster dengan empat node per situs replikasi karena batas maxShares saat ini.
    • Kami tidak menyarankan melampirkan perangkat SBD disk bersama Azure di seluruh kluster Pacemaker.
    • Jika Anda menggunakan beberapa perangkat SBD disk bersama Azure, periksa batas jumlah maksimum disk data yang dapat dilampirkan ke VM.
    • Untuk informasi selengkapnya tentang batasan untuk disk bersama Azure, tinjau dengan cermat bagian "Batasan" dari dokumentasi disk bersama Azure.

Menggunakan agen pagar Azure

Anda dapat mengatur STONITH dengan menggunakan agen pagar Azure. Agen pagar Azure memerlukan identitas terkelola untuk VM kluster atau perwakilan layanan yang mengelola menghidupkan ulang simpul yang gagal melalui API Azure. Agen pagar Azure tidak memerlukan penyebaran mesin virtual tambahan.

SBD dengan server target iSCSI:

Untuk menggunakan perangkat SBD yang menggunakan server target iSCSI untuk pagar, ikuti petunjuk di bagian berikutnya.

Menyiapkan server target iSCSI

Pertama-tama Anda perlu membuat komputer virtual target iSCSI. Anda dapat berbagi server target iSCSI dengan beberapa kluster Pacemaker.

  1. Sebarkan SLES 12 SP3 baru atau komputer virtual yang lebih tinggi dan sambungkan dengan mereka melalui SSH. Komputer tidak perlu besar. Ukuran komputer virtual seperti Standard_E2s_v3 atau Standard_D2s_v3 cukup. Pastikan untuk menggunakan penyimpanan Premium untuk disk OS.

  2. Pada komputer virtual target iSCSI, jalankan perintah berikut:

    a. Perbarui SLES.

    sudo zypper update
    

    Catatan

    Anda mungkin perlu me-reboot OS setelah Anda meningkatkan atau memperbarui OS.

    b. Hapus paket.

    Untuk menghindari masalah yang diketahui dengan targetcli dan SLES 12 SP3, hapus instalasi paket berikut. Anda bisa mengabaikan kesalahan tentang paket yang tidak dapat ditemukan.

    sudo zypper remove lio-utils python-rtslib python-configshell targetcli
    

    c. Instal paket target iSCSI.

    sudo zypper install targetcli-fb dbus-1-python
    

    d. Mengaktifkan layanan target iSCSI.

    sudo systemctl enable targetcli
    sudo systemctl start targetcli
    

Membuat perangkat iSCSI di server target iSCSI

Untuk membuat disk iSCSI untuk kluster yang digunakan oleh sistem SAP Anda, jalankan perintah berikut pada semua komputer virtual target iSCSI. Dalam contoh tersebut, dibuat perangkat SBD untuk beberapa kluster. Ini menunjukkan bagaimana Anda akan menggunakan satu server target iSCSI untuk beberapa kluster. Perangkat SBD ditempatkan pada disk OS. Pastikan anda memiliki cukup ruang.

  • nfs: Mengidentifikasi kluster NFS.
  • ascsnw1: Mengidentifikasi kluster ASCS NW1.
  • dbnw1: Mengidentifikasi kluster database NW1.
  • nfs-0 dan nfs-1: Nama host dari node kluster NFS.
  • nw1-xscs-0 dan nw1-xscs-1: Nama host node kluster NW1 ASCS.
  • nw1-db-0 dan nw1-db-1: Nama host node kluster database.

Dalam instruksi berikut, ganti sesuaikan nama host simpul kluster Anda dan SID sistem SAP Anda.

  1. Buat folder root untuk semua perangkat SBD.

    sudo mkdir /sbd
    
  2. Buat perangkat SBD untuk server 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. Buat perangkat SBD untuk server ASCS DARI SAP System 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. Buat perangkat SBD untuk kluster database SAP System 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. Simpan perubahan targetcli.

    sudo targetcli saveconfig
    
  6. Periksa untuk memastikan bahwa semuanya sudah diatur dengan benar.

    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]
    

Menyiapkan perangkat SBD server target iSCSI

Sambungkan ke perangkat iSCSI yang dibuat pada langkah terakhir dari kluster. Jalankan perintah berikut pada simpul kluster baru yang ingin Anda buat.

Catatan

  • [A]: Berlaku untuk semua node.
  • [1]: Berlaku hanya untuk node 1.
  • [2]: Berlaku hanya untuk node 2.
  1. [A] Pasang paket iSCSI.

    sudo zypper install open-iscsi
    
  2. [A] Sambungkan ke perangkat iSCSI. Pertama, aktifkan layanan iSCSI dan SBD.

    sudo systemctl enable iscsid
    sudo systemctl enable iscsi
    sudo systemctl enable sbd
    
  3. [1] Ubah nama inisiator pada simpul pertama.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
  4. [1] Ubah konten file agar sesuai dengan daftar kontrol akses (ACL) yang Anda gunakan saat membuat perangkat iSCSI di server target iSCSI (misalnya untuk server NFS).

    InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
    
  5. [2] Ubah nama inisiator pada simpul kedua.

    sudo vi /etc/iscsi/initiatorname.iscsi
    
  6. [2] Ubah konten file agar sesuai dengan ACL yang Anda gunakan saat membuat perangkat iSCSI di server target iSCSI.

    InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
    
  7. [A] Mulai ulang layanan iSCSI untuk menerapkan perubahan.

    sudo systemctl restart iscsid
    sudo systemctl restart iscsi
    
  8. [A]Hubungkan perangkat iSCSI. Dalam contoh di bawah ini, 10.0.0.17 adalah alamat IP dari server target iSCSI dan 3260 adalah port default. iqn.2006-04.nfs.local:nfs adalah salah satu nama target yang tercantum saat Anda menjalankan perintah pertama, 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] Jika Anda ingin menggunakan beberapa perangkat SBD, sambungkan juga ke server target iSCSI kedua.

    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] Jika Anda ingin menggunakan beberapa perangkat SBD, sambungkan juga ke server target iSCSI ketiga.

    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]Pastikan bahwa perangkat iSCSI tersedia dan catat nama perangkat (/dev/sde, dalam contoh berikut).

    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] Ambil ID perangkat 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
    

    Perintah ini mencantumkan tiga ID perangkat untuk tiap perangkat SBD. Sebaiknya gunakan ID yang dimulai dengan scsi-3. Dalam contoh sebelumnya, IDnya adalah:

    • /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03
    • /dev/disk/by-id/scsi-360014053fe4da371a5a4bb69a419a4df
    • /dev/disk/by-id/scsi-36001405f88f30e7c9684678bc87fe7bf
  13. [1] Buat perangkat SBD.

    a. Gunakan ID perangkat dari perangkat iSCSI untuk membuat perangkat SBD baru pada simpul kluster pertama.

    sudo sbd -d /dev/disk/by-id/scsi-36001405afb0ba8d3a3c413b8cc2cca03 -1 60 -4 120 create
    

    b. Buat juga perangkat SBD kedua dan ketiga jika Anda ingin menggunakan lebih dari satu.

    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] Mengadaptasi konfigurasi SBD.

    a. Buka file konfigurasi SBD.

    sudo vi /etc/sysconfig/sbd
    

    b. Ubah properti perangkat SBD, aktifkan integrasi pacemaker, dan ubah mode mulai 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"
    [...]
    

    Catatan

    Jika nilai properti SBD_DELAY_START diatur ke "tidak", ubah nilai menjadi "ya". Anda juga harus memeriksa file layanan SBD untuk memastikan bahwa nilai TimeoutStartSec lebih besar dari nilai SBD_DELAY_START. Untuk informasi selengkapnya, lihat Konfigurasi file SBD

  15. [A] Buat file konfigurasi softdog.

    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    
  16. [A] Muat modul.

    sudo modprobe -v softdog
    

SBD dengan disk bersama Azure

Bagian ini hanya berlaku jika Anda ingin menggunakan perangkat SBD dengan disk bersama Azure.

Buat dan lampirkan disk bersama Azure dengan PowerShell

  1. Sesuaikan nilai untuk grup sumber daya Anda, wilayah Azure, komputer virtual, nomor unit logis (LUN), dan sebagainya.

    $ResourceGroup = "MyResourceGroup"
    $Location = "MyAzureRegion"
    
  2. Tentukan ukuran disk berdasarkan ukuran disk yang tersedia untuk SSD Premium. Dalam contoh ini, ukuran disk P1 4G disebutkan.

    $DiskSizeInGB = 4
    $DiskName = "SBD-disk1"
    
  3. Dengan parameter -MaxSharesCount, tentukan jumlah maksimum node kluster untuk melampirkan disk bersama untuk perangkat SBD.

    $ShareNodes = 2
    
  4. Untuk perangkat SBD yang menggunakan LRS untuk disk bersama premium Azure, gunakan penyimpanan SkuName berikut:

    $SkuName = "Premium_LRS"
    
  5. Untuk perangkat SBD yang menggunakan ZRS untuk disk bersama premium Azure, gunakan penyimpanan SkuName berikut:

    $SkuName = "Premium_ZRS"
    
  6. Menyiapkan disk bersama Azure.

    $diskConfig = New-AzDiskConfig -Location $Location -SkuName $SkuName -CreateOption Empty -DiskSizeGB $DiskSizeInGB -MaxSharesCount $ShareNodes
    $dataDisk = New-AzDisk -ResourceGroupName $ResourceGroup -DiskName $DiskName -Disk $diskConfig
    
  7. Lampirkan disk ke VM kluster.

    $VM1 = "prod-cl1-0"
    $VM2 = "prod-cl1-1"
    

    a. Tambahkan disk bersama Azure ke simpul kluster 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
    

    b. Tambahkan disk bersama Azure ke simpul kluster 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
    

Jika Anda ingin menyebarkan sumber daya dengan menggunakan Azure CLI atau portal Azure, Anda juga dapat merujuk ke Menyebarkan disk ZRS.

Menyiapkan perangkat SBD disk bersama Azure

  1. [A] Aktifkan layanan SBD.

    sudo systemctl enable sbd
    
  2. [A] Pastikan disk terlampir tersedia.

    # 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] Ambil ID disk yang terpasang.

    # 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
    

    ID perangkat daftar perintah untuk peranti SBD. Sebaiknya gunakan ID yang dimulai dengan scsi-3. Dalam contoh sebelumnya, ID adalah /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19.

  4. [1] Buat perangkat SBD.

    Gunakan ID perangkat dari langkah 2 untuk membuat perangkat SBD baru pada simpul kluster pertama.

    # sudo sbd -d /dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19 -1 60 -4 120 create
    
  5. [A] Mengadaptasi konfigurasi SBD.

    a. Buka file konfigurasi SBD.

    sudo vi /etc/sysconfig/sbd
    

    b. Ubah properti perangkat SBD, aktifkan integrasi pacemaker, dan ubah mode mulai perangkat SBD.

    [...]
    SBD_DEVICE="/dev/disk/by-id/scsi-3600224804208a67da8073b2a9728af19"
    [...]
    SBD_PACEMAKER="yes"
    [...]
    SBD_STARTMODE="always"
    [...]
    

    Catatan

    Jika nilai properti SBD_DELAY_START diatur ke "tidak", ubah nilai menjadi "ya". Anda juga harus memeriksa file layanan SBD untuk memastikan bahwa nilai TimeoutStartSec lebih besar dari nilai SBD_DELAY_START. Untuk informasi selengkapnya, lihat Konfigurasi file SBD

  6. Buat file konfigurasi softdog.

    echo softdog | sudo tee /etc/modules-load.d/softdog.conf
    
  7. Muat modul.

    sudo modprobe -v softdog
    

Menggunakan agen pagar Azure

Bagian ini hanya berlaku jika Anda ingin menggunakan perangkat STONITH dengan agen pagar Azure.

Membuat perangkat agen pagar Azure

Bagian ini hanya berlaku jika Anda menggunakan perangkat STONITH yang didasarkan pada agen pagar Azure. Perangkat STONITH menggunakan identitas terkelola atau perwakilan layanan untuk mengotorisasi Microsoft Azure.

Untuk membuat identitas terkelola (MSI), buat identitas terkelola yang ditetapkan sistem untuk setiap mesin virtual di kluster. Jika identitas terkelola yang ditetapkan sistem sudah ada, identitas tersebut akan digunakan. Identitas terkelola yang ditetapkan pengguna tidak boleh digunakan dengan Pacemaker saat ini. Agen pagar Azure, berdasarkan identitas terkelola didukung untuk SLES 12 SP5 dan SLES 15 SP1 ke atas.

[1] Membuat peran kustom untuk agen anggar

Secara default, identitas terkelola atau perwakilan layanan tidak memiliki izin untuk mengakses sumber daya Azure Anda. Anda perlu memberikan izin ke identitas terkelola atau perwakilan layanan untuk memulai dan menghentikan (batalkan alokasi) semua mesin virtual di kluster tersebut. Jika Anda belum membuat peran kustom, Anda bisa membuatnya menggunakan PowerShell atau Azure CLI.

Gunakan konten berikut untuk file input. Anda perlu menyesuaikan konten langganan Anda. Artinya, ganti xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx dan yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy dengan ID langganan Anda sendiri. Jika Anda hanya memiliki satu langganan, hapus entri kedua di bawah 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] Menetapkan peran kustom

Gunakan identitas terkelola atau perwakilan layanan.

Tetapkan peran kustom "Peran Agen Linux Fence" yang dibuat di bab terakhir untuk setiap identitas terkelola dari mesin virtual kluster. Setiap identitas terkelola yang ditetapkan sistem mesin virtual memerlukan peran yang ditetapkan untuk setiap sumber daya mesin virtual kluster. Untuk langkah detail, lihat Menetapkan akses ke identitas terkelola ke sumber daya menggunakan portal Azure. Verifikasi bahwa setiap penetapan peran identitas terkelola mesin virtual berisi semua mesin virtual kluster.

Penting

Ketahui penugasan dan penghapusan otorisasi dengan identitas terkelola dapat ditunda hingga efektif.

Instal kluster

Catatan

  • [A]: Berlaku untuk semua node.
  • [1]: Berlaku hanya untuk node 1.
  • [2]: Berlaku hanya untuk node 2.
  1. [A] Perbarui SLES.

    sudo zypper update
    

    Catatan

    Pada SLES 15 SP4 periksa versi paket crmsh dan pacemaker , dan pastikan bahwa persyaratan versi minium terpenuhi:

    • crmsh-4.4.0+20221028.3e41444-150400.3.9.1 atau yang lebih baru
    • pacemaker-2.1.2+20211124.ada5c3b36-150400.4.6.1 atau yang lebih baru
  2. [A] Pasang komponen, yang Anda butuhkan untuk sumber daya kluster.

    sudo zypper in socat
    
  3. [A] Instal komponen azure-lb, yang Anda butuhkan untuk sumber daya kluster.

    sudo zypper in resource-agents
    

    Catatan

    Periksa versi agen sumber daya paket, dan pastikan persyaratan versi minimum terpenuhi:

    • SLES 12 SP4/SP5: versi setidaknya harus resource-agents-4.3.018.a7fb5035-3.30.1. atau lebih baru.
    • SLES 15/15 SP1: versi setidaknya harus resource-agents-4.3.0184.6ee15eb2-4.13.1 atau lebih baru.
  4. [A] Konfigurasikan sistem operasi.

    a. Pacemaker kadang-kadang menciptakan banyak proses, yang dapat menghabiskan nomor yang diizinkan. Bila hal ini terjadi, heartbeat antara node kluster mungkin gagal dan menyebabkan kegagalan sumber daya Anda. Sebaiknya tingkatkan jumlah proses maksimum yang diperbolehkan dengan mengatur parameter berikut:

    # 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
    

    b. Kurangi ukuran cache kotor. Untuk informasi selengkapnya, lihat Performa tulis rendah di server SLES 11/12 dengan RAM besar.

    sudo vi /etc/sysctl.conf
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    

    c. Pastikan vm.swappiness diatur ke 10 untuk mengurangi penggunaan pertukaran dan mendukung memori.

    sudo vi /etc/sysctl.conf
    # Change/set the following setting
    vm.swappiness = 10
    
  5. [A] Periksa versi paket cloud-netconfig-azure .

    Periksa versi yang terinstal dari paket cloud-netconfig-azure dengan menjalankan info zypper cloud-netconfig-azure. Jika versi lebih rendah dari 1.3, kami sarankan untuk memperbarui paket cloud-netconfig-azure ke versi terbaru yang tersedia.

    Tip

    Jika versi di lingkungan Anda adalah 1.3 atau lebih tinggi, tidak perlu lagi menekan manajemen antarmuka jaringan dengan plugin jaringan cloud.

    Hanya jika versi cloud-netconfig-azure lebih rendah dari 1.3, ubah file konfigurasi untuk antarmuka jaringan seperti yang ditunjukkan dalam kode berikut untuk mencegah plug-in jaringan cloud menghapus alamat IP virtual (Pacemaker harus mengontrol penugasan). Untuk informasi selengkapnya, lihat 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] Mengaktifkan akses 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] Aktifkan akses 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] Mengaktifkan akses 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] Pasang paket agen pagar jika Anda menggunakan perangkat STONITH, berdasarkan agen pagar Azure.

    sudo zypper install fence-agents
    

    Penting

    Versi yang diinstal dari paket agen pagar harus 4.4.0 atau lebih baru untuk mendapatkan keuntungan dari waktu failover yang lebih cepat dengan agen pagar Azure, ketika simpul kluster dipagari. Jika Anda menjalankan versi yang lebih lama, kami sarankan Anda memperbarui paket.

    Penting

    Jika menggunakan identitas terkelola, versi paket agen pagar yang diinstal harus -

    • SLES 12 SP5: agen pagar 4.9.0+git.1624456340.8d746be9-3.35.2 atau yang lebih baru
    • SLES 15 SP1 dan yang lebih tinggi: agen pagar 4.5.2+git.1592573838.1eee0863 atau yang lebih baru.

    Versi sebelumnya tidak akan berfungsi dengan benar dengan konfigurasi identitas terkelola.

  10. [A] Instal Azure Python SDK and modul Python Azure Identity.

    Instal Azure Python SDK di SLES 12 SP4 atau SLES 12 SP5:

    # 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
    

    Instal Azure Python SDK di SLES 15 atau versi yang lebih baru:

    # 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
    

    Penting

    Bergantung pada versi dan jenis gambar Anda, Anda mungkin perlu mengaktifkan ekstensi cloud Publik untuk rilis OS Anda, sebelum Anda dapat menginstal Azure Python SDK. Anda dapat memeriksa versi ekstensi dengan menjalankan SUSEConnect ---list-extensions. Untuk mencapai waktu pemulihan kegagalan yang lebih cepat dengan agen pagar Azure:

    • Pada SLES 12 SP4 atau SLES 12 SP5 instal versi 4.6.2 atau lebih tinggi dari paket python-azure-mgmt-compute.
    • Jika versi paket python-azure-mgmt-compute or python3-azure-mgmt-compute adalah 17.0.0-6.7.1, ikuti petunjuk di SUSE KBA untuk memperbarui versi fence-agents dan menginstal pustaka klien Azure Identity untuk modul Python jika hilang.
  11. [A] Siapkan resolusi nama host.

    Anda dapat menggunakan server DNS atau mengubah file /etc/hosts pada semua simpul. Contoh ini menunjukkan cara menggunakan file /etc/hosts.

    Ganti alamat IP dan nama host dalam perintah berikut.

    Penting

    Jika Anda menggunakan nama host dalam konfigurasi kluster, penting untuk memiliki resolusi nama host yang andal. Komunikasi kluster akan gagal, jika nama tidak tersedia dan hal itu dapat menyebabkan penundaan kegagalan kluster.

    Keuntungan menggunakan /etc/hosts adalah bahwa kluster Anda menjadi independen dari DNS, yang bisa menjadi satu titik kegagalan juga.

    sudo vi /etc/hosts
    

    Sisipkan baris berikut di file /etc/hosts. Ubah alamat IP dan nama host agar sesuai dengan lingkungan Anda.

    # 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
    
  12. [1] Instal kluster.

    • Jika Anda menggunakan perangkat SBD untuk pemagaran (baik untuk server target iSCSI atau disk bersama 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
      
    • jika Anda tidak menggunakan perangkat SBD untuk pagar:

      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
      
  13. [2] Tambahkan node ke kluster.

    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
    
  14. [A] Ubah kata sandi hacluster ke kata sandi yang sama.

    sudo passwd hacluster
    
  15. [A] Sesuaikan pengaturan corosync.

    sudo vi /etc/corosync/corosync.conf
    

    a. Periksa bagian berikut dalam file dan sesuaikan, jika nilai tidak ada atau berbeda. Pastikan untuk mengubah token ke 30000 untuk memungkinkan pemeliharaan pertahanan-memori. Untuk informasi selengkapnya, lihat artikel "Pemeliharaan untuk komputer virtual di Azure" untuk Linux atau 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
    }
    

    b. Mulai ulang layanan corosync

    sudo service corosync restart
    

Membuat perangkat STONITH di kluster Pacemaker

Tip

  • Untuk menghindari perlombaan pagar dalam kluster pacemaker dua node, Anda dapat mengonfigurasi properti kluster "priority-fencing-delay" tambahan. Properti ini memperkenalkan penundaan tambahan dalam pemagaran simpul yang memiliki prioritas total sumber daya yang lebih tinggi ketika skenario split-brain terjadi. Untuk detail tambahan, lihat Panduan administrasi ekstensi ketersediaan tinggi SUSE Linux Enterprise Server.
  • Instruksi tentang pengaturan properti kluster "priority-fencing-delay" dapat ditemukan di masing-masing SAP ASCS/ERS (hanya berlaku di ENSA2) dan dokumen ketersediaan tinggi peningkatan skala SAP Hana.
  1. [1] Jika Anda menggunakan perangkat SBD (server target iSCSI atau disk bersama Azure) sebagai perangkat pagar, jalankan perintah berikut. Aktifkan penggunaan perangkat STONITH dan atur penundaan pagar.

    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] Jika Anda menggunakan agen pagar Azure sebagai STONITH, jalankan perintah berikut. Setelah menetapkan peran ke kedua node kluster, Anda dapat mengonfigurasi perangkat STONITH di kluster.

    sudo crm configure property stonith-enabled=true
    sudo crm configure property concurrent-fencing=true
    

    Catatan

    Opsi 'pcmk_host_map' diperlukan dalam perintah ini hanya jika nama host dan nama Azure VM tidak identik. Tentukan pemetaan dalam format nama host: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

Jika Anda menggunakan perangkat anggar, berdasarkan konfigurasi perwakilan layanan, baca Mengubah dari SPN ke MSI untuk kluster Pacemaker menggunakan anggar Azure dan pelajari cara mengonversi ke konfigurasi identitas terkelola.

Penting

Operasi pemantauan dan pemagaran tidak dibuat berurutan. Akibatnya, jika ada operasi pemantauan yang lebih lama berjalan dan kejadian pemagaran yang serentak, tidak ada penundaan pada kegagalan kluster, karena operasi pemantauan yang sudah berjalan.

Tip

Agen pagar Azure memerlukan konektivitas keluar ke titik akhir publik, seperti yang didokumentasikan, bersama dengan solusi yang mungkin, di Konektivitas titik akhir publik untuk VM menggunakan ILB standar.

Mengonfigurasi Pacemaker untuk acara terjadwal Azure

Azure menawarkan kejadian terjadwal. Peristiwa terjadwal disediakan melalui layanan metadata dan memungkinkan waktu bagi aplikasi untuk mempersiapkan peristiwa tersebut. Monitor azure-events-az agen sumber daya untuk peristiwa Azure terjadwal. Jika peristiwa terdeteksi dan agen sumber daya menentukan bahwa simpul kluster lain tersedia, peristiwa tersebut mengatur atribut kesehatan kluster. Ketika atribut kesehatan kluster diatur untuk simpul, batasan lokasi memicu dan semua sumber daya, yang namanya tidak dimulai dengan "kesehatan-" dimigrasikan menjauh dari simpul dengan peristiwa terjadwal. Setelah node kluster yang terpengaruh bebas dari menjalankan sumber daya kluster, peristiwa terjadwal diakui dan dapat menjalankan tindakannya, seperti menghidupkan ulang.

Penting

Sebelumnya, dokumen ini menjelaskan penggunaan agen sumber daya azure-events. Agen sumber daya baru azure-events-az sepenuhnya mendukung lingkungan Azure yang disebarkan di zona ketersediaan yang berbeda. Disarankan untuk menggunakan agen azure-events-az yang lebih baru untuk semua sistem SAP yang sangat tersedia dengan Pacemaker.

  1. [A] Pastikan paket untuk agen kejadian-azure sudah diinstal dan terbarukan.

    sudo zypper info resource-agents
    

    Persyaratan versi minimum:

    • 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 dan yang lebih baru: resource-agents-4.10.0+git40.0f4de473-150400.3.19.1
  2. [1] Konfigurasikan sumber daya di Pacemaker.

    #Place the cluster in maintenance mode
    sudo crm configure property maintenance-mode=true
    
  3. [1] Atur strategi dan batasan node kesehatan kluster pacemaker

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

    Penting

    Jangan tentukan sumber daya lain dalam kluster yang dimulai dengan "kesehatan-", selain sumber daya yang dijelaskan dalam langkah dokumentasi berikutnya.

  4. [1] Tetapkan nilai awal atribut kluster. Jalankan untuk setiap node kluster. Untuk lingkungan peluasan skala termasuk VM pembuat mayoritas.

    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] Konfigurasikan sumber daya di Pacemaker. Penting: Sumber daya harus dimulai dengan '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=90s \ 
    op monitor interval=10s
    
    sudo crm configure clone health-azure-events-cln health-azure-events
    

    Catatan

    Saat mengonfigurasi sumber daya 'health-azure-events', pesan peringatan berikut dapat diabaikan.

    PERINGATAN: health-azure-events: atribut tidak diketahui 'allow-unhealthy-node'.

  6. Keluarkan kluster Pacemaker dari mode pemeliharaan

    sudo crm configure property maintenance-mode=false
    
  7. Hapus kesalahan apa pun selama pengaktifan dan verifikasi bahwa sumber daya health-azure-events telah berhasil dimulai pada semua node kluster.

    sudo crm resource cleanup
    

    Eksekusi kueri pertama kali untuk peristiwa terjadwal dapat memakan waktu hingga 2 menit. Pengujian pacemaker dengan peristiwa terjadwal dapat menggunakan tindakan reboot atau penyebaran ulang untuk VM kluster. Untuk informasi selengkapnya, lihat dokumentasi peristiwa terjadwal.

    Catatan

    Setelah Mengonfigurasi sumber daya Pacemaker untuk agen kejadian-azure, saat Anda menempatkan kluster di dalam atau di luar mode pemeliharaan, Anda mungkin mendapatkan pesan peringatan seperti:

    PERINGATAN: cib-bootstrap-options: atribut tidak diketahui 'hostName_hostname'
    PERINGATAN: cib-bootstrap-options: atribut tidak diketahui 'azure-events_globalPullState'
    PERINGATAN: cib-bootstrap-options: atribut tidak diketahui 'hostName_ nama host
    Pesan peringatan ini bisa diabaikan.

Langkah berikutnya