Penyiapan ketersediaan tinggi di SUSE menggunakan perangkat STONITH

Artikel ini memberikan petunjuk langkah demi langkah untuk menyiapkan ketersediaan tinggi (HA) di Instans Large HANA pada sistem operasi SUSE menggunakan perangkat STONITH.

Catatan

Panduan ini berasal dari pengujian penyiapan yang berhasil di lingkungan Instans Large HANA Microsoft. Tim Manajemen Layanan Microsoft untuk Instans Large HANA tidak mendukung sistem operasi. Untuk pemecahan masalah atau klarifikasi pada lapisan sistem operasi, hubungi SUSE.

Tim Manajemen Layanan Microsoft menyiapkan dan mendukung penuh perangkat STONITH. Ini dapat membantu memecahkan masalah perangkat STONITH.

Prasyarat

Untuk menyiapkan ketersediaan tinggi menggunakan pengklusteran SUSE, Anda harus:

  • Menyediakan Instans Large HANA.
  • Menginstal dan mendaftarkan sistem operasi dengan patch terbaru.
  • Menghubungkan server Instans Large HANA ke server SMT untuk mendapatkan patch dan paket.
  • Menyiapkan Protokol Waktu Jaringan (server waktu NTP)
  • Membaca dan memahami versi terbaru dokumentasi SUSE tentang penyiapan HA.

Detail penyetelan

Panduan ini menggunakan pengaturan berikut:

  • Sistem operasi: SLES 12 SP1 untuk SAP
  • Instans Large HANA: 2xS192 (empat soket, 2 TB)
  • Versi HANA: HANA 2.0 SP1
  • Nama server: sapprdhdb95 (node1) dan sapprdhdb96 (node2)
  • Perangkat STONITH: berbasis iSCSI
  • NTP di salah satu node Instans Large HANA

Saat menyiapkan Instans Large HANA dengan replikasi sistem HANA, Anda dapat meminta tim Manajemen Layanan Microsoft untuk menyiapkan perangkat STONITH. Lakukan ini pada saat penyediaan.

Jika sudah menjadi pelanggan dengan Instans Besar HANA yang sudah disediakan, Anda masih bisa menyiapkan perangkat STONITH. Berikan informasi berikut ini kepada tim Manajemen Layanan Microsoft dalam formulir permintaan layanan (SRF). Anda bisa mendapatkan SRF melalui Manajer Akun Teknis atau kontak Microsoft Anda untuk onboarding Instans Large HANA.

  • Nama server dan alamat IP server (misalnya, myhanaserver1 dan 10.35.0.1)
  • Lokasi (misalnya, US Timur)
  • Nama Pelanggan (misalnya, Microsoft)
  • Pengidentifikasi sistem HANA (SID) (misalnya, H11)

Setelah perangkat STONITH dikonfigurasi, tim Manajemen Layanan Microsoft akan memberi Anda nama perangkat blok STONITH (SBD) dan alamat IP penyimpanan iSCSI. Anda dapat menggunakan informasi ini untuk mengonfigurasi penyiapan STONITH.

Ikuti langkah-langkah di bagian berikut untuk menyiapkan HA menggunakan STONITH.

Identifikasi perangkat SBD

Catatan

Bagian ini hanya berlaku untuk pelanggan yang sudah ada. Jika Anda adalah pelanggan baru, tim Manajemen Layanan Microsoft akan memberi Anda nama perangkat SBD, jadi lompati bagian ini.

  1. Ubah /etc/iscsi/initiatorname.isci ke:

    iqn.1996-04.de.suse:01:<Tenant><Location><SID><NodeNumber> 
    

    Manajemen layanan Microsoft menyediakan untai (karakter) ini. Ubah file pada kedua simpul. Tetapi, nomor node berbeda pada setiap node.

    Screenshot that shows an initiatorname file with InitiatorName values for a node.

  2. Memodifikasi /etc/iscsi/iscsid.conf dengan mengatur node.session.timeo.replacement_timeout=5 dan node.startup = automatic. Ubah file pada kedua simpul.

  3. Jalankan perintah penemuan berikut di kedua node.

    iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260
    

    Hasilnya menampilkan empat sesi.

    Screenshot that shows a console window with results of the discovery command.

  4. Jalankan perintah berikut di kedua node untuk masuk ke perangkat iSCSI.

    iscsiadm -m node -l
    

    Hasilnya menampilkan empat sesi.

    Screenshot that shows a console window with results of the node command.

  5. Gunakan perintah berikut untuk menjalankan skrip pemindaian ulang rescan-scsi-bus.sh. Skrip ini menampilkan disk baru yang dibuat untuk Anda. Jalankan di kedua simpul.

    rescan-scsi-bus.sh
    

    Hasilnya akan menampilkan angka LUN yang lebih besar dari nol (misalnya: 1, 2, dan sebagainya.).

    Screenshot that shows a console window with results of the script.

  6. Untuk mendapatkan nama perangkat, jalankan perintah berikut di kedua node.

      fdisk –l
    

    Di dalam hasil, pilih perangkat dengan ukuran 178 MiB.

    Screenshot that shows a console window with results of the f disk command.

Inisialisasi perangkat SBD

  1. Gunakan perintah berikut untuk menginisialisasi perangkat SBD di kedua node.

    sbd -d <SBD Device Name> create
    

    Screenshot that shows a console window with the result of the s b d create command.

  2. Gunakan perintah berikut di kedua node untuk memeriksa hal yang telah ditulis ke perangkat.

    sbd -d <SBD Device Name> dump
    

Mengonfigurasi kluster HA SUSE

  1. Gunakan perintah berikut untuk memeriksa apakah pola ha_sles dan SAPHanaSR-doc diinstal di kedua node. Jika belum diinstal, instal kedua pola tersebut.

    zypper in -t pattern ha_sles
    zypper in SAPHanaSR SAPHanaSR-doc
    

    Screenshot that shows a console window with the result of the pattern command.

    Screenshot that shows a console window with the result of the SAPHanaSR-doc command.

  2. Menyiapkan kluster menggunakan perintah ha-cluster-init atau wizard yast2. Dalam contoh ini, kita menggunakan wizard yast2. Lakukan langkah ini hanya pada node utama.

    1. Buka yast2>Ketersediaan Tinggi>Kluster.

      Screenshot that shows the YaST Control Center with High Availability and Cluster selected.

    2. Dalam dialog yang muncul tentang penginstalan paket hawk, pilih Batalkan karena paket halk2 sudah terinstal.

      Screenshot that shows a dialog with Install and Cancel options.

    3. Dalam dialog yang muncul tentang melanjutkan, pilih Lanjutkan.

      Screenshot that shows a message about continuing without installing required packages.

    4. Nilai yang diharapkan adalah jumlah node yang disebarkan (dalam hal ini, 2). Pilih Selanjutnya.

    5. Tambahkan nama node, lalu pilih Tambahkan file yang disarankan.

      Screenshot that shows the Cluster Configure window with Sync Host and Sync File lists.

    6. Pilih Aktifkan csync2.

    7. Pilih Hasilkan Kunci yang Dibagikan Sebelumnya.

    8. Di pesan pop-up yang muncul, pilih OKE.

      Screenshot that shows a message that your key has been generated.

    9. Autentikasi dilakukan menggunakan alamat IP dan kunci yang dibagikan sebelumnya di Csync2. File kunci dibagikan dengan csync2 -k /etc/csync2/key_hagroup.

      Salin secara manual file key_hagroup ke semua anggota kluster setelah dibuat. Pastikan untuk menyalin file dari node1 ke node2. Lalu pilih Berikutnya.

      Screenshot that shows a Cluster Configure dialog box with options necessary to copy the key to all members of the cluster.

    10. Opsi default Booting adalah Nonaktif. Ubah ke Aktif agar alat pacemaker akan dimulai saat booting. Anda dapat membuat pilihan berdasarkan persyaratan penyetelan Anda.

      Screenshot that shows the Cluster Service window with Booting turned on.

    11. Pilih Berikutnya, dan konfigurasi kluster selesai.

Siapkan pengawas softdog

  1. Tambahkan baris berikut ke /etc/init.d/boot.local di kedua node.

    modprobe softdog
    

    Screenshot that shows a boot file with the softdog line added.

  2. Gunakan perintah berikut untuk memperbarui file /etc/sysconfig/sbd di kedua node.

    SBD_DEVICE="<SBD Device Name>"
    

    Screenshot that shows the s b d file with the S B D_DEVICE value added.

  3. Muat modul kernel di kedua node dengan menjalankan perintah berikut.

    modprobe softdog
    

    Screenshot that shows part of a console window with the command modprobe softdog.

  4. Gunakan perinth berikut untuk memastikan bahwa softdog berjalan di kedua node.

    lsmod | grep dog
    

    Screenshot that shows part of a console window with the result of running the l s mod command.

  5. Gunakan perintah berikut untuk memulai perangkat SBD di kedua node.

    /usr/share/sbd/sbd.sh start
    

    Screenshot that shows part of a console window with the start command.

  6. Gunakan perintah berikut untuk menguji daemon SBD di kedua node.

    sbd -d <SBD Device Name> list
    

    Hasilnya menampilkan dua entri setelah konfigurasi di kedua node.

    Screenshot that shows part of a console window displaying two entries.

  7. Kirim pesan pengujian berikut ke salah satu node.

    sbd  -d <SBD Device Name> message <node2> <message>
    
  8. Pada node kedua (node2), gunakan perintah berikut untuk memeriksa status pesan.

    sbd  -d <SBD Device Name> list
    

    Screenshot that shows part of a console window with one of the members displaying a test value for the other member.

  9. Untuk mengadopsi konfigurasi SBD, perbarui file /etc/sysconfig/sbd seperti berikut di kedua node.

    SBD_DEVICE=" <SBD Device Name>" 
    SBD_WATCHDOG="yes" 
    SBD_PACEMAKER="yes" 
    SBD_STARTMODE="clean" 
    SBD_OPTS=""
    
  10. Gunakan perintah berikut untuk memulai layanan pacemaker di node utama (node1).

    systemctl start pacemaker
    

    Screenshot that shows a console window displaying the status after starting pacemaker.

    Jika layanan pacemaker gagal, lihat bagian Skenario 5: Layanan Pacemaker gagal nanti di artikel ini.

Menggabungkan node ke kluster

Jalankan perintah berikut di node2 untuk membuat node tersebut bergabung dengan kluster.

ha-cluster-join

Jika Anda menerima kesalahan saat bergabung dengan kluster, lihat bagian Skenario 6: Node2 tidak dapat bergabung dengan kluster nanti di artikel ini.

Memvalidasi kluster

  1. Gunakan perintah berikut untuk memeriksa dan secara opsional memulai kluster untuk pertama kali di kedua node.

    systemctl status pacemaker
    systemctl start pacemaker
    

    Screenshot that shows a console window with the status of pacemaker.

  2. Jalankan perintah berikut untuk memastikan bahwa kedua node sedang online. Anda dapat menjalankannya di salah satu simpul kluster.

    crm_mon
    

    Screenshot that shows a console window with the results of the c r m_mon command.

    Anda juga dapat masuk ke hawk untuk memeriksa status kluster: https://\<node IP>:7630. Pengguna default adalah hacluster dan kata sandinya adalah linux. Jika perlu, Anda dapat mengubah kata sandi menggunakan perintah passwd.

Konfigurasikan properti dan sumber daya kluster

Bagian ini menjelaskan langkah-langkah untuk mengonfigurasi sumber daya kluster. Pada contoh ini, Anda menyiapkan sumber daya berikut. Anda dapat mengonfigurasi sisanya (jika diperlukan) dengan merujuk panduan HA SUSE.

  • Bootstrap kluster
  • Perangkat STONITH
  • Alamat IP Virtual

Lakukan konfigurasi di node utama saja.

  1. Buat file bootstrap kluster dan konfigurasikan dengan menambahkan teks berikut.

    sapprdhdb95:~ # vi crm-bs.txt
    # enter the following to crm-bs.txt
    property $id="cib-bootstrap-options" \
    no-quorum-policy="ignore" \
    stonith-enabled="true" \
    stonith-action="reboot" \
    stonith-timeout="150s"
    rsc_defaults $id="rsc-options" \
    resource-stickiness="1000" \
    migration-threshold="5000"
    op_defaults $id="op-options" \
    timeout="600"
    
  2. Gunakan perintah berikut untuk menambahkan konfigurasi ke kluster.

    crm configure load update crm-bs.txt
    

    Screenshot that shows part of a console window running the c r m command.

  3. Konfigurasikan perangkat STONITH dengan menambahkan sumber daya, membuat file, dan menambahkan teks sebagai berikut.

    # vi crm-sbd.txt
    # enter the following to crm-sbd.txt
    primitive stonith-sbd stonith:external/sbd \
    params pcmk_delay_max="15"
    

    Gunakan perintah berikut untuk menambahkan konfigurasi ke kluster.

    crm configure load update crm-sbd.txt
    
  4. Tambahkan alamat IP virtual untuk sumber daya dengan membuat file dan menambahkan teks berikut.

    # vi crm-vip.txt
    primitive rsc_ip_HA1_HDB10 ocf:heartbeat:IPaddr2 \
    operations $id="rsc_ip_HA1_HDB10-operations" \
    op monitor interval="10s" timeout="20s" \
    params ip="10.35.0.197"
    

    Gunakan perintah berikut untuk menambahkan konfigurasi ke kluster.

    crm configure load update crm-vip.txt
    
  5. Gunakan perintah crm_mon untuk memvalidasi sumber daya.

    Hasilnya menampilkan dua sumber daya.

    Screenshot that shows a console window with two resources.

    Anda juga dapat memeriksa statusnya di https://<alamat IP node>:7630/cib/live/state.

    Screenshot that shows the status of the two resources.

Uji proses kegagalan

  1. Untuk menguji proses failover, gunakan perintah berikut untuk menghentikan layanan pacemaker di node1.

    Service pacemaker stop
    

    Sumber daya failover ke node2.

  2. Hentikan layanan pacemaker di node2 dan lakukan failover sumber daya ke node1.

    Berikut adalah status sebelum failover:
    Screenshot that shows the status of the two resources before failover.

    Berikut adalah status setelah failover:
    Screenshot that shows the status of the two resources after failover.

    Screenshot that shows a console window with the status of resources after failover.

Pemecahan Masalah

Bagian ini menjelaskan skenario kegagalan yang mungkin Anda temui selama penyiapan.

Skenario 1: Node kluster tidak online

Jika salah satu node tidak menampilkan status online di Manajer Kluster, Anda dapat mencoba prosedur berikut untuk membuatnya online.

  1. Gunakan perintah berikut untuk memulai layanan iSCSI.

    service iscsid start
    
  2. Gunakan perintah berikut untuk masuk ke node iSCSI tersebut.

    iscsiadm -m node -l
    

    Output yang diharapkan terlihat seperti:

    sapprdhdb45:~ # iscsiadm -m node -l
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] (multiple)
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] successful.
    

Skenario 2: Yast2 tidak menampilkan tampilan grafis

Layar grafis yast2 digunakan untuk menyiapkan kluster ketersediaan tinggi dalam artikel ini. Jika yast2 tidak terbuka dengan jendela grafis seperti yang ditampilkan dan memunculkan kesalahan Qt, lakukan langkah-langkah berikut untuk menginstal paket yang diperlukan. Jika yast2 terbuka dengan jendela grafis, Anda dapat melewati langkah-langkah ini.

Berikut adalah contoh kesalahan Qt:

Screenshot that shows part of a console window with an error message.

Berikut adalah contoh output yang diharapkan:

Screenshot that shows the YaST Control Center with High Availability and Cluster highlighted.

  1. Pastikan Anda masuk sebagai pengguna "root" dan menyiapkan SMT untuk mengunduh dan menginstal paket.

  2. Buka Yast>Perangkat Lunak>Manajemen Perangkat Lunak>Dependensi, lalu pilih Instal paket yang direkomendasikan.

    Catatan

    Lakukan langkah-langkah tersebut di kedua node, sehingga Anda dapat mengakses tampilan grafis yast2 dari kedua node.

    Cuplikan layar berikut menampilkan layar diharapkan.

    Screenshot that shows a console window displaying the YaST Control Center.

  3. Di bawah Dependensi, pilih Instal Paket yang Direkomendasikan.

    Screenshot that shows a console window with Install Recommended Packages selected.

  4. Tinjau perubahan dan pilih OK.

    Screenshot that shows a console window with a list of packages that have been selected for installation.

    Penginstalan paket berlangsung.

    Screenshot that shows a console window displaying progress of the installation.

  5. Pilih Selanjutnya.

  6. Ketika layar Penginstalan Berhasil muncul, pilih Selesai.

    Screenshot that shows a console window with a success message.

  7. Jalankan perintah berikut untuk menginstal paket libqt4 dan libyui-qt.

    zypper -n install libqt4
    

    Screenshot that shows a console window installing the first package.

    zypper -n install libyui-qt
    

    Screenshot that shows a console window installing the second package.

    Screenshot that shows a console window installing the second package, continued.

    Yast2 kini dapat membuka tampilan grafis.

    Screenshot that shows the YaST Control Center with Software and Online Update selected.

Skenario 3: Yast2 tidak menampilkan opsi ketersediaan tinggi

Agar opsi ketersediaan tinggi terlihat di pusat kontrol yast2, Anda perlu menginstal paket lainnya.

  1. Buka Yast2>Perangkat Lunak>Manajemen Perangkat Lunak. Kemudian pilih Perangkat Lunak>Pembaruan Online.

    Screenshot that shows the YaST Control Center with Software and Online Update selected.

  2. Pilih pola untuk item berikut. Lalu pilih Terima.

    • Basis server SAP HANA
    • Pengompilasi dan alat C/C++
    • Ketersediaan tinggi
    • Basis server aplikasi SAP

    Screenshot that shows selecting the first pattern in the item for compiler and tools.

    Screenshot that shows selecting the second pattern in the item for compiler and tools.

  3. Dalam daftar paket yang telah diubah untuk menyelesaikan dependensi, pilih Lanjutkan.

    Screenshot that shows the Changed Packages dialog with packages changed to resolve dependencies.

  4. Di halaman status Melakukan Penginstalan, pilih Berikutnya.

    Screenshot that shows the Performing Installation status page.

  5. Ketika penginstalan selesai, laporan penginstalan muncul. Pilih Selesai.

    Screenshot that shows the installation report.

Skenario 4: Penginstalan HANA gagal dengan kesalahan rakitan gcc

Jika penginstalan HANA gagal, Anda mungkin mendapatkan kesalahan berikut.

Screenshot that shows an error message that the operating system isn't ready to perform g c c 5 assemblies.

Untuk memperbaiki masalah, instal pustaka libgcc_sl dan libstdc++6 seperti yang ditampilkan pada cuplikan layar berikut.

Screenshot that shows a console window installing required libraries.

Skenario 5: Layanan pacemaker gagal

Informasi berikut muncul jika layanan apacemaker tidak dapat dimulai.

sapprdhdb95:/ # systemctl start pacemaker
A dependency job for pacemaker.service failed. See 'journalctl -xn' for details.
sapprdhdb95:/ # journalctl -xn
-- Logs begin at Thu 2017-09-28 09:28:14 EDT, end at Thu 2017-09-28 21:48:27 EDT. --
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration map
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration ser
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster closed pr
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster quorum se
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync profile loading s
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [MAIN  ] Corosync Cluster Engine exiting normally
Sep 28 21:48:27 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager
-- Subject: Unit pacemaker.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit pacemaker.service has failed.
--
-- The result is dependency.
sapprdhdb95:/ # tail -f /var/log/messages
2017-09-28T18:44:29.675814-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.676023-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster closed process group service v1.01
2017-09-28T18:44:29.725885-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.726069-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster quorum service v0.1
2017-09-28T18:44:29.726164-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync profile loading service
2017-09-28T18:44:29.776349-04:00 sapprdhdb95 corosync[57600]:   [MAIN  ] Corosync Cluster Engine exiting normally
2017-09-28T18:44:29.778177-04:00 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager.
2017-09-28T18:44:40.141030-04:00 sapprdhdb95 systemd[1]: [/usr/lib/systemd/system/fstrim.timer:8] Unknown lvalue 'Persistent' in section 'Timer'
2017-09-28T18:45:01.275038-04:00 sapprdhdb95 cron[57995]: pam_unix(crond:session): session opened for user root by (uid=0)
2017-09-28T18:45:01.308066-04:00 sapprdhdb95 CRON[57995]: pam_unix(crond:session): session closed for user root

Untuk memperbaikinya, hapus baris berikut dari file /usr/lib/systemd/system/fstrim.timer:

Persistent=true

Screenshot that shows the f s trim file with the value of Persistent=true to be deleted.

Skenario 6: Node2 tidak dapat bergabung dengan kluster

Kesalahan berikut muncul jika ada masalah saat menggabungkan node2 ke kluster yang ada melalui perintah ha-cluster-join.

ERROR: Can’t retrieve SSH keys from <Primary Node>

Screenshot that shows a console window with an error message that says S S H keys can't be retrieved from a particular I P address.

Cara memperbaikinya:

  1. Jalankan perintah berikut di kedua node.

    ssh-keygen -q -f /root/.ssh/id_rsa -C 'Cluster Internal' -N ''
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    

    Screenshot that shows part of a console window running the command on the first node.

    Screenshot that shows part of a console window running the command on the second node.

  2. Konfirmasikan bahwa node2 ditambahkan ke kluster.

    Screenshot that shows a console window with a successful join command.

Langkah berikutnya

Anda dapat menemukan informasi selengkapnya tentang penyetelan SUSE HA di artikel berikut:

Pelajari cara melakukan pencadangan dan pemulihan tingkat file untuk sistem operasi: