Dalam konfigurasi ketersediaan tinggi untuk SAP di Google Cloud, penyebab utama masalah mungkin terletak pada software pengelompokan, software SAP, infrastruktur Google Cloud, atau kombinasi dari semua ini.
Menganalisis log Pacemaker di Cloud Logging
Video berikut menunjukkan bagaimana Anda dapat mulai memecahkan masalah konfigurasi ketersediaan tinggi untuk SAP di Google Cloud menggunakan Cloud Logging.
Node yang gagal di cluster Linux tidak dimulai ulang dengan benar setelah failover
Jika cluster ketersediaan tinggi Linux Anda menggunakan agen fence fence_gce
dan VM dengan fence gagal bergabung kembali ke cluster setelah failover, Anda mungkin harus menunda dimulainya software Corosync saat VM dengan fence dimulai ulang.
Masalah
Selama failover, agen fence_gce
akan melakukan tindakan fence pada VM Compute Engine
yang gagal, yang akan memulai ulang dan bergabung kembali ke cluster
sebelum Pacemaker mendaftarkan tindakan fence sebagai selesai. Karena tindakan fence tidak terdaftar sebagai selesai, VM yang dimulai ulang akan menonaktifkan layanan Pacemaker dan Corosync-nya serta akan meninggalkan cluster.
Diagnosis
Untuk mengonfirmasi bahwa ini adalah masalah Anda:
Pastikan cluster Anda menggunakan agen
fence_gce
:RHEL
pcs config
SLES
crm config show
Definisi agen fence mencakup
fence_gce
.RHEL
Stonith Devices: Resource: STONITH-example-ha-vm1 (class=stonith type=fence_gce) Attributes: port=example-ha-vm1 project=example-project-123456 zone=us-central1-a Operations: monitor interval=300s timeout=120s (STONITH-example-ha-vm1-monitor-interval-60s) Resource: STONITH-example-ha-vm2 (class=stonith type=fence_gce) Attributes: port=example-ha-vm2 project=example-project-123456 zone=us-central1-c Operations: monitor interval=300s timeout=120s (STONITH-example-ha-vm2-monitor-interval-60s)
SLES
primitive fence-example-ha-vm1 stonith:fence_gce \ op monitor interval=300s timeout=120s \ op start interval=0 timeout=60s \ params port=example-ha-vm1 zone=us-central1-a project=example-project-123456 primitive fence-example-ha-vm2 stonith:fence_gce \ op monitor interval=300s timeout=120s \ op start interval=0 timeout=60s \ params port=example-ha-vm2 zone=us-central1-c project=example-project-123456
Periksa log sistem untuk menemukan pesan berikut:
DATESTAMP> node2 stonith-ng[1106]: notice: Operation reboot of node2 by node1 for stonith_admin.1366@node1.c3382af8: OK DATESTAMP> node2 stonith-ng[1106]: error: stonith_construct_reply: Triggered assert at commands.c:2343 : request != NULL DATESTAMP> node2 stonith-ng[1106]: warning: Can't create a sane reply DATESTAMP> node2 crmd[1110]: crit: We were allegedly just fenced by node1 for node1! DATESTAMP> node2 pacemakerd[1055]: warning: Shutting cluster down because crmd[1110] had fatal failure
Solusi
Konfigurasikan sistem operasi di kedua node cluster untuk menunda dimulainya Corosync guna memastikan tindakan fence memiliki waktu untuk mendaftar sebagai selesai dengan Pacemaker pada node utama yang baru. Selain itu, setel nilai waktu tunggu mulai ulang Pacemaker untuk memperhitungkan penundaan.
Untuk mengonfigurasi awal yang tertunda pada Corosync:
Tempatkan cluster dalam mode pemeliharaan:
RHEL
pcs property set maintenance-mode=true
SLES
crm configure property maintenance-mode="true"
Di setiap node cluster sebagai root, setel penundaan mulai untuk Corosync:
Buat file drop-in
systemd
:systemctl edit corosync.service
Tambahkan baris berikut ke file:
[Service] ExecStartPre=/bin/sleep 60
Simpan file dan keluar dari editor.
Muat ulang konfigurasi pengelola sistem.
systemctl daemon-reload
Di salah satu node cluster sebagai root, pastikan nilai waktu tunggu Pacemaker untuk mulai ulang disetel untuk kedua agen fence:
Periksa nilai
pcmk_reboot_timeout
:crm_resource --resource FENCE_AGENT_NAME --get-parameter=pcmk_reboot_timeout
Ganti
FENCE_AGENT_NAME
dengan nama agen fence.Jika parameter
pcmk_reboot_timeout
tidak ditemukan atau disetel ke nilai yang lebih kecil dari 300, tetapkan nilai tersebut pada kedua agen fence:crm_resource --resource FENCE_AGENT_NAME --set-parameter=pcmk_reboot_timeout --parameter-value=300
Ganti
FENCE_AGENT_NAME
dengan nama agen fence.Nilai
pcmk_reboot_timeout
harus lebih besar dari jumlah:- Waktu tunggu
token
Corosync - Waktu tunggu konsensus Corosync, yang secara default merupakan produk dari
token
* 1.2 - Durasi waktu yang diperlukan untuk menyelesaikan operasi mulai ulang, termasuk atribut penundaan.
Di Google Cloud, 300 detik merupakan waktu yang memadai untuk sebagian besar cluster.
- Waktu tunggu
Konfirmasi nilai
pcmk_reboot_timeout
yang baru:crm_resource --resource FENCE_AGENT_NAME --get-parameter=pcmk_reboot_timeout
Ganti
FENCE_AGENT_NAME
dengan nama agen fence.
Keluarkan cluster dari mode pemeliharaan:
RHEL
pcs property set maintenance-mode=false
SLES
crm configure property maintenance-mode="false"
Afinitas node tidak disengaja yang mendukung node tertentu
Saat memindahkan resource secara manual di cluster ketersediaan tinggi menggunakan perintah cluster, Anda akan mendapati bahwa afinitas atau preferensi klien secara otomatis ditetapkan untuk mendukung node tertentu.
Masalah
Di cluster ketersediaan tinggi Linux Pacemaker untuk SAP HANA atau SAP NetWeaver, resource seperti sistem SAP HANA atau layanan pusat SAP NetWeaver hanya berjalan pada satu node cluster tertentu dan tidak mengalami kegagalan seperti yang diharapkan selama terjadinya peristiwa kegagalan node.
Akibatnya, Anda mungkin mengalami masalah seperti:
Saat Anda memicu failover layanan SAP NetWeaver ASCS dengan mengeluarkan perintah Pacemaker ke
move
resource ke node cluster, resource tidak akan dimulai dan menampilkan statusstopped
.Saat Anda memberikan perintah
standby
ke satu node cluster untuk memaksa semua resource berpindah ke node lainnya, resource tidak akan dimulai.
Diagnosis
Periksa log Pacemaker Anda untuk melihat pesan yang menyebutkan bahwa resource tertentu tidak dapat berjalan di mana pun. Contoh:
2021-05-24 21:39:58 node_1 pacemaker-schedulerd (native_color) info: Resource NW1-ASCS01 cannot run anywhere
Periksa konfigurasi batasan lokasi Pacemaker Anda untuk mengidentifikasi semua batasan yang mungkin mencegah resource berjalan pada node cluster tertentu.
Untuk memeriksa konfigurasi batasan lokasi Pacemaker, ikuti langkah-langkah berikut:
Tampilkan batasan lokasi:
cibadmin --query --scope constraints | grep rsc_location
Verifikasi batasan lokasi:
Batasan lokasi eksplisit: Anda menemukan batasan lokasi dengan skor
INFINITY
(pilih node) atau-INFINITY
(hindari node). Contoh:<rsc_location id="loc-constraint" rsc="NW1-ASCS01" score="INFINITY" node="nw-ha-1"/>
Tidak boleh ada batasan lokasi dengan skor
INFINITY
atau-INFINITY
selain agen fence. Di semua cluster HA, agen fence ditentukan dalam batasan lokasi dengan skor-INFINITY
, untuk mencegahnya berjalan di node yang merupakan target tindakan fence.Batasan lokasi implisit: Saat Anda mengeluarkan perintah Pacemaker untuk memindahkan resource ke node cluster atau memblokir resource untuk dijalankan pada node cluster, batasan lokasi implisit dengan awalan
cli-ban
ataucli-prefer
ditambahkan ke ID batasan. Contoh:<rsc_location id="cli-prefer-NW1-ASCS01" rsc="NW1-ASCS01" role="Started" node="nw-ha-2" score="INFINITY"/>
Solusi
Pastikan batasan lokasi ditentukan seperti yang dijelaskan dalam panduan deployment kami:
Untuk memperbaiki batasan lokasi yang eksplisit, hapus batasan lokasi:
RHEL
pcs constraint remove RESOURCE_LOCATION_ID
SLES
crm configure delete RESOURCE_LOCATION_ID
Ganti
RESOURCE_LOCATION_ID
dengan ID batasan lokasi.Untuk memperbaiki batasan lokasi implisit, hapus semua batasan yang ditentukan pada resource yang ditentukan.
Setelah setiap perintah yang digunakan untuk memindahkan atau memblokir resource, jalankan perintah berikut untuk menghapus semua batasan:
RHEL
pcs resource clear RESOURCE_NAME
SLES
crm resource clear RESOURCE_NAME
Ganti
RESOURCE_NAME
dengan nama resource yang Anda pindahkan.
Agen fence mengalami error operasional
Agen fence telah melaporkan error dalam status cluster.
Masalah
Di cluster ketersediaan tinggi Linux Pacemaker untuk SAP HANA atau SAP NetWeaver, agen fence telah melaporkan error dalam status cluster. Contoh:
Failed Resource Actions: STONITH-ha-node-01_monitor_300000 on ha-node-02 'unknown error' (1): call=153, status=Timed Out, exitreason='', last-rc-change='Mon Dec 21 23:40:47 2023', queued=0ms, exec=60003ms
Diagnosis
Agen fence yang di-deploy di cluster ketersediaan tinggi SAP HANA atau SAP NetWeaver Anda secara rutin mengakses server Compute Engine API untuk memeriksa status instance target fence. Jika ada penundaan sementara dalam respons panggilan API atau jika ada gangguan jaringan, operasi pemantauan agen fence mungkin akan gagal atau waktu habis.
Untuk memeriksa status agen fence, jalankan perintah berikut:
RHEL
pcs status
SLES
crm status
Jika status agen fence adalah stopped
, gunakan salah satu opsi
solusi untuk mengatasi error.
Error operasional agen fence dapat menyebabkan agen fence berhenti, tetapi Pacemaker masih tetap memanggil agen fence dengan perintah penghentian dalam peristiwa fence.
Solusi
Jika status agen fence adalah stopped
, lakukan salah satu hal berikut:
Untuk mereset failcount secara manual dan memulai ulang agen fence, jalankan perintah berikut:
RHEL
pcs resource cleanup FENCE_AGENT_NAME
SLES
crm resource cleanup FENCE_AGENT_NAME
Ganti
FENCE_AGENT_NAME
dengan nama agen fence.Untuk menghapus error operasional agen fence secara otomatis, konfigurasikan parameter
failure-timeout
.Parameter
failure-timeout
akan mereset jumlah failcount setelah durasi yang ditentukan dan menghapus error operasional. Dengan menerapkan parameter ini, Anda tidak harus memulai ulang cluster atau mengalihkan cluster dalam mode pemeliharaan.Untuk mengonfigurasi parameter
failure-timeout
, jalankan perintah berikut:crm_resource --meta --resource FENCE_AGENT_NAME --set-parameter failure-timeout --parameter-value DURATION
Ganti kode berikut:
FENCE_AGENT_NAME
: nama agen fence.DURATION
: durasi setelah kegagalan operasional terakhir, saat failover akan direset dan agen fence dimulai ulang.
Agen resource dihentikan
Agen resource gagal dimulai dan tetap dalam status Stopped
.
Masalah
Di cluster ketersediaan tinggi Linux Pacemaker untuk SAP HANA atau SAP NetWeaver, agen resource telah melaporkan error dalam status cluster. Contoh:
Failed Resource Actions: rsc_SAPHana_DV0_HDB00_start_0 on ha-node-02 'error' (1): call=91, status='complete', last-rc-change='Wed Oct 18 18:00:31 2023', queued=0ms, exec=19010ms
Diagnosis
Jika agen resource yang berjalan gagal, Pacemaker akan mencoba menghentikan agen
dan memulainya lagi. Jika operasi awal gagal karena suatu alasan, Pacemaker menetapkan jumlah kegagalan resource ke INFINITY
dan mencoba
memulai agen pada node lain. Jika agen resource gagal memulai
node mana pun, agen resource tetap dalam status Stopped
.
Untuk memeriksa status agen resource, jalankan perintah berikut:
RHEL
pcs status
SLES
crm status
Untuk SAP HANA, contoh berikut menunjukkan agen resource dalam status Stopped
pada node hana-b
:
Full List of Resources:
* STONITH-hana-a (stonith:external/gcpstonith): Started hana-b
* STONITH-hana-b (stonith:external/gcpstonith): Started hana-a
* Resource Group: g-primary:
* rsc_vip_int-primary (ocf::heartbeat:IPaddr2): Started hana-a
* rsc_vip_hc-primary (ocf::heartbeat:anything): Started hana-a
* Clone Set: cln_SAPHanaTopology_DV0_HDB00 [rsc_SAPHanaTopology_DV0_HDB00]:
* Started: [ hana-a hana-b ]
* Clone Set: msl_SAPHana_DV0_HDB00 [rsc_SAPHana_DV0_HDB00] (promotable):
* Masters: [ hana-a ]
* Stopped: [ hana-b ]
* STONITH-scaleup-majority (stonith:external/gcpstonith): Started hana-b
Solusi
Jika agen resource berada dalam status Stopped
, lakukan hal berikut:
Mulai agen resource secara manual dengan mereset failcount:
RHEL
pcs resource cleanup RESOURCE_AGENT_NAME
SLES
crm resource cleanup RESOURCE_AGENT_NAME
Ganti
RESOURCE_AGENT_NAME
dengan nama agen resource. Contohnya,rsc_SAPHana_DV0_HDB00
.Pastikan status agen resource mencapai status
Started
:crm_mon
Jika agen resource masih gagal memulai, kumpulkan informasi diagnostik yang relevan dan hubungi dukungan.