Panduan konfigurasi cluster HA untuk SAP MaxDB di RHEL

Panduan ini menunjukkan cara men-deploy sistem SAP MaxDB di cluster ketersediaan tinggi Red Hat Enterprise Linux (RHEL) di Google Cloud, dengan konfigurasi cluster aktif/pasif.

Untuk men-deploy sistem SAP MaxDB node tunggal di Linux, gunakan panduan deployment SAP MaxDB.

Panduan ini ditujukan bagi pengguna SAP MaxDB tingkat lanjut yang memahami konfigurasi HA Linux untuk sistem SAP.

Sistem yang di-deploy oleh panduan ini

Panduan ini mencakup langkah-langkah untuk:

Cluster yang di-deploy mencakup fungsi dan fitur berikut:

  • Dua VM Compute Engine di zona yang berbeda, yang dapat menjalankan instance SAP MaxDB
  • Persistent Disk Regional untuk penginstalan SAP MaxDB.
  • Pengelola resource cluster ketersediaan tinggi Pacemaker.
  • Mekanisme pagar STONITH.

Penginstalan SAP NetWeaver dengan ketersediaan tinggi tidak tercakup dalam panduan ini.

Prasyarat

Sebelum membuat cluster ketersediaan tinggi SAP MaxDB, pastikan prasyarat berikut terpenuhi:

Membuat jaringan

Untuk tujuan keamanan, buat jaringan baru. Anda dapat mengontrol siapa saja yang memiliki akses dengan menambahkan aturan firewall atau dengan menggunakan metode kontrol akses lainnya.

Jika project Anda memiliki jaringan VPC default, jangan gunakan jaringan tersebut. Sebagai gantinya, buat jaringan VPC Anda sendiri sehingga satu-satunya aturan firewall yang berlaku adalah yang Anda buat secara eksplisit.

Selama deployment, instance VM biasanya memerlukan akses ke internet untuk mendownload Agen Google Clouduntuk SAP. Jika Anda menggunakan salah satu image Linux bersertifikasi SAP yang tersedia dari Google Cloud, instance VM juga memerlukan akses ke internet untuk mendaftarkan lisensi dan mengakses repositori vendor OS. Konfigurasi dengan gateway NAT dan dengan tag jaringan VM mendukung akses ini, meskipun VM target tidak memiliki IP eksternal.

Untuk menyiapkan jaringan:

Konsol

  1. Di konsol Google Cloud , buka halaman VPC networks.

    Buka jaringan VPC

  2. Klik Create VPC network.
  3. Masukkan Name untuk jaringan.

    Nama harus mematuhi konvensi penamaan. Jaringan VPC menggunakan konvensi penamaan Compute Engine.

  4. Untuk Subnet creation mode, pilih Custom.
  5. Di bagian New subnet, tentukan parameter konfigurasi berikut untuk subnet:
    1. Masukkan Name untuk subnet.
    2. Untuk Region, pilih Region Compute Engine tempat Anda ingin membuat subnet.
    3. Untuk IP stack type, pilih IPv4 (single-stack), lalu masukkan rentang alamat IP dalam format CIDR, seperti 10.1.0.0/24.

      Ini adalah rentang IPv4 utama untuk subnet. Jika Anda berencana untuk menambahkan lebih dari satu subnet, tetapkan rentang IP CIDR yang tidak tumpang-tindih untuk setiap subnetwork di dalam jaringan. Perhatikan bahwa setiap subnetwork dan rentang IP internalnya dipetakan ke satu region.

    4. Klik Done.
  6. Untuk menambahkan lebih banyak subnet, klik Add subnet dan ulangi langkah-langkah sebelumnya. Anda dapat menambahkan lebih banyak subnet ke jaringan setelah jaringan dibuat.
  7. Klik Buat.

gcloud

  1. Buka Cloud Shell.

    Buka Cloud Shell

  2. Untuk membuat jaringan baru dalam mode subnetwork kustom, jalankan:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    Ganti NETWORK_NAME dengan nama jaringan baru. Nama harus mematuhi konvensi penamaan. Jaringan VPC menggunakan konvensi penamaan Compute Engine.

    Tentukan --subnet-mode custom untuk menghindari penggunaan mode otomatis default, yang secara otomatis membuat subnet di setiap region Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Mode pembuatan subnet.

  3. Buat subnetwork, lalu tentukan region dan rentang IP:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    Ganti kode berikut:

    • SUBNETWORK_NAME: nama subnetwork baru
    • NETWORK_NAME: nama jaringan yang Anda buat di langkah sebelumnya
    • REGION: region tempat Anda ingin subnetwork tersebut berada
    • RANGE: rentang alamat IP, ditentukan dalam format CIDR, seperti 10.1.0.0/24

      Jika Anda berencana untuk menambahkan lebih dari satu subnetwork, tetapkan rentang IP CIDR yang tidak tumpang-tindih untuk setiap subnetwork di dalam jaringan. Perhatikan bahwa setiap subnetwork dan rentang IP internalnya dipetakan ke satu region.

  4. Jika ingin, ulangi langkah sebelumnya dan tambahkan subnetwork tambahan.

Menyiapkan gateway NAT

Jika perlu membuat satu atau beberapa VM tanpa alamat IP publik, Anda harus menggunakan penafsiran alamat jaringan (NAT) agar VM dapat mengakses internet. Gunakan Cloud NAT, layanan terkelola yang terdistribusi dan diatur oleh software Google Cloud yang memungkinkan VM mengirim paket keluar ke internet dan menerima semua paket respons masuk yang ditetapkan. Atau, Anda dapat menyiapkan VM terpisah sebagai gateway NAT.

Untuk membuat instance Cloud NAT bagi project Anda, lihat Menggunakan Cloud NAT.

Setelah mengonfigurasi Cloud NAT untuk project, instance VM Anda dapat mengakses internet dengan aman tanpa alamat IP publik.

Menambahkan aturan firewall

Secara default, aturan firewall tersirat memblokir koneksi masuk dari luar jaringan Virtual Private Cloud (VPC) Anda. Untuk mengizinkan koneksi masuk, siapkan aturan firewall untuk VM Anda. Setelah koneksi masuk dibuat dengan VM, traffic diizinkan di kedua arah melalui koneksi tersebut.

Anda juga dapat membuat aturan firewall untuk mengizinkan akses eksternal ke port tertentu, atau untuk membatasi akses antar-VM di jaringan yang sama. Jika jenis jaringan VPC default digunakan, beberapa aturan default tambahan juga berlaku, seperti aturan default-allow-internal, yang memungkinkan konektivitas antar-VM di jaringan yang sama di semua port.

Bergantung pada kebijakan IT yang berlaku untuk lingkungan Anda, Anda mungkin perlu mengisolasi atau membatasi konektivitas ke host database Anda, yang dapat Anda lakukan dengan membuat aturan firewall.

Bergantung pada skenario, Anda dapat membuat aturan firewall guna mengizinkan akses untuk:

  • Port SAP default yang tercantum dalam TCP/IP dari Semua Produk SAP.
  • Koneksi dari komputer atau lingkungan jaringan perusahaan Anda ke instance VM Compute Engine. Jika tidak yakin dengan alamat IP yang harus digunakan, hubungi administrator jaringan perusahaan Anda.

Untuk membuat aturan firewall:

Konsol

  1. Di konsol Google Cloud , buka halaman Firewall Compute Engine.

    Buka Firewall

  2. Di bagian atas halaman, klik Create firewall rule.

    • Di kolom Network, pilih jaringan tempat VM Anda berada.
    • Di kolom Targets, tentukan resource di Google Cloud tempat aturan ini diterapkan. Misalnya, tentukan All instances in the network. Atau, untuk membatasi aturan pada instance tertentu di Google Cloud, masukkan tag di Specified target tags.
    • Di kolom Source filter, pilih salah satu opsi berikut:
      • IP ranges untuk mengizinkan traffic masuk dari alamat IP tertentu. Tentukan rentang alamat IP di kolom Source IP ranges.
      • Subnets untuk mengizinkan traffic masuk dari subnetwork tertentu. Tentukan nama subnetwork di kolom Subnets berikut. Anda dapat menggunakan opsi ini untuk mengizinkan akses antar-VM dalam konfigurasi 3 tingkat atau penyebaran skala.
    • Di bagian Protocols and ports, pilih Specified protocols and ports, lalu masukkan tcp:PORT_NUMBER.
  3. Klik Create untuk membuat aturan firewall.

gcloud

Buat aturan firewall menggunakan perintah berikut:

$ gcloud compute firewall-rules create firewall-name
--direction=INGRESS --priority=1000 \
--network=network-name --action=ALLOW --rules=protocol:port \
--source-ranges ip-range --target-tags=network-tags

Men-deploy VM dan menginstal MaxDB

Sebelum mulai mengonfigurasi cluster HA, Anda perlu menentukan dan men-deploy instance VM dan sistem SAP MaxDB yang berfungsi sebagai node utama dan sekunder di cluster HA.

Membuat VM untuk deployment MaxDB

Sebagai bagian dari deployment HA, dua VM Compute Engine Google Cloud harus dibuat. Anda dapat membaca panduan Membuat dan memulai instance Compute Engine.

Perhatikan bahwa Persistent Disk Regional hanya mendukung penggunaan jenis mesin E2, N1, N2, dan N2D. Lihat detail selengkapnya di panduan Persistent Disk Regional.

Lihat Catatan SAP 2456432 - Aplikasi SAP di Google Cloud: Produk yang didukung dan Google Cloud jenis mesin untuk memilih jenis mesin yang tepat berdasarkan ukuran Anda.

Buat dua VM di zona terpisah untuk mencapai ketahanan zona, dengan persyaratan minimum berikut:

  1. Detail VM:

    • Instance Name
    • Zone - Zona pilihan Anda
    • Machine Type - Berdasarkan ukuran
    • Subnet - Nama subnet yang dibuat untuk region ini
  2. Akun layanan dengan setidaknya cakupan akses ke API berikut:

    • https://www.googleapis.com/auth/compute
    • https://www.googleapis.com/auth/servicecontrol
    • https://www.googleapis.com/auth/service.management.readonly
    • https://www.googleapis.com/auth/logging.write
    • https://www.googleapis.com/auth/monitoring.write
    • https://www.googleapis.com/auth/trace.append
    • https://www.googleapis.com/auth/devstorage.read_write
  3. Disk tambahan di setiap VM dengan minimum 20 GB yang akan digunakan untuk /usr/sap

Membuat satu disk regional untuk SAP MaxDB

Untuk deployment ini, satu disk regional akan digunakan untuk menyimpan file MaxDB dalam direktori /sapdb.

Buat disk, pastikan zona replikasi untuk disk regional cocok dengan zona tempat Anda membuat dua VM.

Lampirkan disk regional ke salah satu VM tempat Anda akan melakukan penginstalan MaxDB, dan tugas konfigurasi.

Menyiapkan OS RHEL untuk penginstalan SAP

Produk SAP memerlukan setelan dan paket sistem operasi tertentu untuk diinstal. Ikuti panduan di SAP Note: 2772999 - Red Hat Enterprise Linux 8.x: Installation and Configuration .

Tugas ini harus dilakukan di kedua node.

Membuat sistem file

  1. Hubungkan ke kedua instance menggunakan SSH dan buat titik pemasangan /usr/sap/SID dan /sapdb.

    # sudo mkdir -p /usr/sap/SID
    # sudo mkdir -p /sapdb
  2. Buat sistem file di dua disk tambahan yang terpasang ke VM menggunakan mkfs.

    Perhatikan bahwa saat ini disk regional hanya akan dilampirkan di salah satu VM, sehingga pembuatan sistem file /sapdb hanya akan dilakukan satu kali.

  3. Edit file /etc/fstab agar selalu memasang /usr/sap/SID saat memulai ulang di kedua node.

  4. Pasang sistem file /sapdb secara manual ke node tempat Anda akan melakukan penginstalan MaxDB.

    Untuk referensi tambahan tentang cara membuat dan memasang sistem file, lihat panduan Memformat dan memasang non-boot disk di VM Linux.

Mengubah konfigurasi LVM

Anda perlu mengubah konfigurasi pengelolaan volume logis (LVM) sehingga grup volume bersama (VG) selalu hanya dilampirkan dan dapat diakses oleh satu node.

Untuk melakukannya, lakukan langkah-langkah berikut di kedua node:

  1. Sebagai root, edit file /etc/lvm/lvm.conf dan ubah nilai system_id_source menjadi uname dari none

  2. Periksa hasilnya:

    # grep -i system_id_source /etc/lvm/lvm.conf

    Anda akan melihat output yang mirip dengan berikut ini:

    # Configuration option global/system_id_source.
            system_id_source = "uname"
    
  3. Selain itu, untuk mencegah VM mengaktifkan VG yang dikelola cluster saat node di-reboot, pertahankan parameter berikut dalam file konfigurasi /etc/lvm/lvm.conf dengan nama VG lengkap yang dipisahkan koma yang tidak dikelola oleh cluster.

    Misalnya, jika usrsap adalah nama VG yang tidak dikelola oleh cluster:

    auto_activation_volume_list = [ usrsap ]

    Jika tidak ada VG yang tidak dikelola oleh cluster, misalnya, parameter ini harus ditambahkan dengan nilai kosong:

    auto_activation_volume_list = [  ]

Menginstal database dan agen host SAP

Setelah sistem operasi dikonfigurasi, Anda dapat menginstal database SAP MaxDB dan Agen Host SAP. MaxDB biasanya diinstal dengan produk SAP yang terintegrasi dengannya.

Perhatikan bahwa penginstalan hanya akan dilakukan satu kali, di tempat Anda telah memasang Persistent Disk Regional.

Untuk menginstal SAP MaxDB di VM Anda:

  1. Buat koneksi SSH ke VM berbasis Linux Anda.
  2. Download SAP Software Provisioning Manager (SWPM), media penginstalan produk SAP, dan Media penginstalan MaxDB sesuai dengan panduan penginstalan SAP.
  3. Instal produk SAP dan database SAP MaxDB sesuai dengan panduan penginstalan SAP untuk produk SAP. Untuk panduan tambahan, lihat dokumentasi SAP MaxDB.

SAP memberikan informasi penginstalan tambahan di SAP Note 1020175 - FAQ: Penginstalan, upgrade, atau penerapan patch SAP MaxDB.

Setelah penginstalan selesai, jalankan validasi berikut:

  1. Sebagai pengguna sidadm, periksa status MaxDB.

    # dbmcli -d  SID -u control,password db_state

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    >dbmcli -d  MDB -u control, my_p4$$w0rd db_state
    OK
    State
    ONLINE
    
  2. Periksa juga status x_server:

    # x_server

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    >x_server
    2024-10-23 19:01:43 11968 19744 INF  12916          Found running XServer on port 7200
    2024-10-23 19:01:43 11968 19744 INF  13011            version 'U64/LIX86 7.9.10   Build 004-123-265-969'
    2024-10-23 19:01:43 11968 19744 INF  13010            installation MDB  - path: /sapdb/MDB/db
    2024-10-23 19:01:45 11971 13344 INF  12916          Found running sdbgloballistener on port 7210
    2024-10-23 19:01:45 11971 13344 INF  13011            version 'U64/LIX86 7.9.10   Build 004-123-265-969'
    
  3. Periksa apakah agen Host SAP sedang berjalan:

    # ps -ef | grep -i hostctrl

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    >ps -ef | grep -i hostctrl
    root      1543     1  0 Oct18 ?        00:00:15 /usr/sap/hostctrl/exe/saphostexec pf=/usr/sap/hostctrl/exe/host_profile
    sapadm    1550     1  0 Oct18 ?        00:03:00 /usr/sap/hostctrl/exe/sapstartsrv pf=/usr/sap/hostctrl/exe/host_profile -D
    root      1618     1  0 Oct18 ?        00:03:48 /usr/sap/hostctrl/exe/saposcol -l -w60 pf=/usr/sap/hostctrl/exe/host_profile
    mdbadm   12751 11261  0 19:03 pts/0    00:00:00 grep --color=auto -i hostctrl
    
  4. Setelah Penginstalan diverifikasi, hentikan instance MaxDB dan x_server.

    # dbmcli -d SID -u control, and password db_offline
    # x_server stop
    

Melakukan tugas pasca-penginstalan

Sebelum menggunakan instance SAP MaxDB, sebaiknya lakukan langkah-langkah pasca-deployment berikut:

  1. Update software SAP MaxDB Anda dengan patch terbaru, jika tersedia.
  2. Instal komponen tambahan.
  3. Konfigurasi dan cadangkan database SAP MaxDB baru Anda.

Untuk mengetahui informasi selengkapnya, lihat Administrasi Database SAP MaxDB.

Setelah sistem SAP MaxDB berhasil di-deploy, Anda dapat menentukan dan mengonfigurasi cluster HA.

Mengonfigurasi dukungan failover Cloud Load Balancing

Layanan Load Balancer Jaringan passthrough internal dengan dukungan failover merutekan traffic ke host aktif di cluster SAP MaxDB berdasarkan layanan health check.

Mencadangkan alamat IP untuk IP virtual

Alamat IP virtual (VIP), yang terkadang disebut sebagai alamat IP mengambang, mengikuti sistem SAP MaxDB yang aktif. Load balancer merutekan traffic yang dikirim ke VIP ke VM yang menghosting sistem SAP MaxDB yang aktif.

  1. Buka Cloud Shell:

    Buka Cloud Shell

  2. Cadangkan alamat IP untuk IP virtual. Ini adalah alamat IP yang digunakan aplikasi untuk mengakses SAP MaxDB. Jika Anda mengabaikan flag --addresses, alamat IP dalam subnet tersebut akan dipilih untuk Anda:

    $ gcloud compute addresses create VIP_NAME \
      --region CLUSTER_REGION --subnet CLUSTER_SUBNET \
      --addresses VIP_ADDRESS

    Untuk mengetahui informasi selengkapnya tentang pemesanan IP statis, lihat Memesan alamat IP internal statis.

  3. Konfirmasi reservasi alamat IP:

    $ gcloud compute addresses describe VIP_NAME \
      --region CLUSTER_REGION

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    address: 10.0.0.19
    addressType: INTERNAL
    creationTimestamp: '2024-10-23T14:19:03.109-07:00'
    description: ''
    id: '8961491304398200872'
    kind: compute#address
    name: vip-for-maxdb-ha
    networkTier: PREMIUM
    purpose: GCE_ENDPOINT
    region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/addresses/vip-for-maxdb-ha
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-subnet-us-central1

Membuat grup instance untuk VM host

  1. Di Cloud Shell, buat dua grup instance tidak terkelola dan tetapkan VM host utama ke salah satunya dan VM host sekunder ke VM lainnya:

    $ gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE \
      --instances=PRIMARY_HOST_NAME
    $ gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE
    $ gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE \
      --instances=SECONDARY_HOST_NAME
    
  2. Konfirmasi pembuatan grup instance:

    $ gcloud compute instance-groups unmanaged list

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    NAME          ZONE           NETWORK          NETWORK_PROJECT        MANAGED  INSTANCES
    maxdb-ha-ig-1  us-central1-a  example-network  example-project-123456 No       1
    maxdb-ha-ig-2  us-central1-c  example-network  example-project-123456 No       1

Membuat health check Compute Engine

  1. Di Cloud Shell, buat health check. Untuk port yang digunakan oleh health check, pilih port yang berada dalam rentang pribadi, 49152-65535, agar tidak bentrok dengan layanan lain. Nilai interval pemeriksaan dan waktu tunggu sedikit lebih panjang daripada nilai default sehingga dapat meningkatkan toleransi failover selama peristiwa migrasi langsung Compute Engine. Anda dapat menyesuaikan nilainya, jika perlu:

    $ gcloud compute health-checks create tcp HEALTH_CHECK_NAME --port=HEALTHCHECK_PORT_NUM \
      --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \
      --healthy-threshold=2
  2. Konfirmasi pembuatan health check:

    $ gcloud compute health-checks describe HEALTH_CHECK_NAME

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    checkIntervalSec: 10
    creationTimestamp: '2023-10-23T21:03:06.924-07:00'
    healthyThreshold: 2
    id: '4963070308818371477'
    kind: compute#healthCheck
    name: maxdb-health-check
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/maxdb-health-check
    tcpHealthCheck:
     port: 60000
     portSpecification: USE_FIXED_PORT
     proxyHeader: NONE
    timeoutSec: 10
    type: TCP
    unhealthyThreshold: 2

Membuat aturan firewall untuk health check

Tentukan aturan firewall untuk port dalam rentang pribadi yang mengizinkan akses ke VM host Anda dari rentang IP yang digunakan oleh health check Compute Engine, 35.191.0.0/16 dan 130.211.0.0/22. Untuk mengetahui informasi selengkapnya, lihat Membuat aturan firewall untuk health check.

  1. Jika belum ada, tambahkan tag jaringan ke VM host Anda. Tag jaringan ini digunakan oleh aturan firewall untuk health check.

    $ gcloud compute instances add-tags PRIMARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone PRIMARY_ZONE
    $ gcloud compute instances add-tags SECONDARY_HOST_NAME \
      --tags NETWORK_TAGS \
      --zone SECONDARY_ZONE
    
  2. Jika belum ada, buat aturan firewall untuk mengizinkan health check:

    $ gcloud compute firewall-rules create RULE_NAME \
      --network NETWORK_NAME \
      --action ALLOW \
      --direction INGRESS \
      --source-ranges 35.191.0.0/16,130.211.0.0/22 \
      --target-tags NETWORK_TAGS \
      --rules tcp:HLTH_CHK_PORT_NUM

    Contoh:

    gcloud compute firewall-rules create  fw-allow-health-checks \
    --network example-network \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges 35.191.0.0/16,130.211.0.0/22 \
    --target-tags cluster-ntwk-tag \
    --rules tcp:60000

Mengonfigurasi load balancer dan grup failover

  1. Buat layanan backend load balancer:

    $ gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme internal \
      --health-checks HEALTH_CHECK_NAME \
      --no-connection-drain-on-failover \
      --drop-traffic-if-unhealthy \
      --failover-ratio 1.0 \
      --region CLUSTER_REGION \
      --global-health-checks
  2. Tambahkan grup instance utama ke layanan backend:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group PRIMARY_IG_NAME \
      --instance-group-zone PRIMARY_ZONE \
      --region CLUSTER_REGION
  3. Tambahkan grup instance failover sekunder ke layanan backend:

    $ gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --instance-group SECONDARY_IG_NAME \
      --instance-group-zone SECONDARY_ZONE \
      --failover \
      --region CLUSTER_REGION
  4. Membuat aturan penerusan. Untuk alamat IP, tentukan alamat IP yang Anda reservasi untuk VIP. Jika Anda perlu mengakses sistem SAP MaxDB dari luar region yang ditentukan di bawah, sertakan flag --allow-global-access dalam definisi:

    $ gcloud compute forwarding-rules create RULE_NAME \
      --load-balancing-scheme internal \
      --address VIP_ADDRESS \
      --subnet CLUSTER_SUBNET \
      --region CLUSTER_REGION \
      --backend-service BACKEND_SERVICE_NAME \
      --ports ALL

    Untuk mengetahui informasi selengkapnya tentang akses lintas region ke sistem ketersediaan tinggi SAP MaxDB, lihat Load Balancing TCP/UDP Internal.

Menguji konfigurasi load balancer

Meskipun grup backend instance Anda tidak akan dianggap berfungsi dengan baik hingga nanti, Anda dapat menguji konfigurasi load balancer dengan menyiapkan pemroses untuk merespons health check. Setelah menyiapkan pemroses, jika load balancer dikonfigurasi dengan benar, status grup backend instance akan berubah menjadi berfungsi dengan baik.

Bagian berikut menyajikan berbagai metode yang dapat Anda gunakan untuk menguji konfigurasi.

Menguji load balancer dengan utilitas socat

Anda dapat menggunakan utilitas socat untuk memproses sementara port health check.

  1. Di kedua VM host, instal utilitas socat:

    $ sudo yum install -y socat

  2. Mulai proses socat untuk memproses selama 60 detik di port health check:

    $ sudo timeout 60s socat - TCP-LISTEN:HLTH_CHK_PORT_NUM,fork

  3. Di Cloud Shell, setelah menunggu beberapa detik hingga health check mendeteksi pemroses, periksa kondisi grup backend instance Anda:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    Anda akan melihat output yang mirip dengan berikut ini:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/maxdb-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/maxdb-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/maxdb-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/maxdb-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth

Menguji load balancer menggunakan port 22

Jika port 22 terbuka untuk koneksi SSH pada VM host, Anda dapat mengedit sementara health checker agar menggunakan port 22, yang memiliki pemroses untuk merespons health checker.

Agar dapat menggunakan port 22 untuk sementara, ikuti langkah-langkah berikut:

  1. Klik health check di konsol:

    Buka halaman Health check

  2. Klik Edit.

  3. Di kolom Port, ubah nomor port menjadi 22.

  4. Klik Save dan tunggu satu atau dua menit.

  5. Di Cloud Shell, periksa kondisi grup backend instance Anda:

    $ gcloud compute backend-services get-health BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    Anda akan melihat output yang mirip dengan berikut ini:

    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/maxdb-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/maxdb-ha-vm-1
       ipAddress: 10.0.0.35
       port: 80
     kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/maxdb-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/maxdb-ha-vm-2
       ipAddress: 10.0.0.34
       port: 80
     kind: compute#backendServiceGroupHealth
  6. Setelah selesai, ubah nomor port health check kembali ke nomor port asli.

Menyiapkan Pacemaker

Prosedur berikut mengonfigurasi implementasi Red Hat dari cluster Pacemaker di VM Compute Engine untuk SAP MaxDB.

Prosedur ini didasarkan pada dokumentasi Red Hat untuk mengonfigurasi cluster dengan ketersediaan tinggi, termasuk:

Menginstal agen cluster di kedua node

Selesaikan langkah-langkah berikut di kedua node.

  1. Sebagai root, instal komponen Pacemaker:

    # yum -y install pcs pacemaker fence-agents-gce resource-agents-gcp resource-agents-sap-hana
    # yum update -y

    Jika Anda menggunakan image RHEL-for-SAP yang disediakan Google, paket ini sudah terinstal, tetapi mungkin memerlukan update setelahnya.

  2. Setel sandi untuk pengguna hacluster, yang diinstal sebagai bagian dari paket:

    # passwd hacluster
  3. Tentukan sandi untuk hacluster saat diminta.

  4. Dalam image RHEL yang disediakan oleh Google Cloud, layanan firewall OS aktif secara default. Konfigurasi layanan firewall untuk mengizinkan traffic ketersediaan tinggi:

    # firewall-cmd --permanent --add-service=high-availability
    # firewall-cmd --reload
  5. Mulai layanan pcs dan setel konfigurasi agar dimulai pada waktu booting:

    # systemctl start pcsd.service
    # systemctl enable pcsd.service
  6. Periksa status layanan pcs:

    # systemctl status pcsd.service

    Anda akan melihat output yang mirip dengan berikut ini:

    ● pcsd.service - PCS GUI and remote configuration interface
      Loaded: loaded (/usr/lib/systemd/system/pcsd.service; enabled; vendor preset: disabled)
      Active: active (running) since Sat 2023-10-23 21:17:05 UTC; 25s ago
        Docs: man:pcsd(8)
              man:pcs(8)
    Main PID: 31627 (pcsd)
      CGroup: /system.slice/pcsd.service
              └─31627 /usr/bin/ruby /usr/lib/pcsd/pcsd
    Oct 23 21:17:03 maxdb-ha-vm-1 systemd[1]: Starting PCS GUI and remote configuration interface...
    Oct 23 21:17:05 maxdb-ha-vm-1 systemd[1]: Started PCS GUI and remote configuration interface.
  7. Pastikan semua layanan HA yang diperlukan telah diaktifkan dan berjalan di kedua node.

    # systemctl enable pcsd.service pacemaker.service corosync.service
  8. Di file /etc/hosts, tambahkan nama host lengkap dan alamat IP internal kedua host di cluster. Contoh:

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.40 maxdb-ha-vm-1.us-central1-a.c.example-project-123456.internal maxdb-ha-vm-1  # Added by Google
    10.0.0.41 maxdb-ha-vm-2.us-central1-c.c.example-project-123456.internal maxdb-ha-vm-2
    169.254.169.254 metadata.google.internal  # Added by Google

    Untuk informasi selengkapnya dari Red Hat tentang menyiapkan file /etc/hosts di node cluster RHEL, lihat https://access.redhat.com/solutions/81123.

Membuat cluster

  1. Sebagai root di salah satu node, beri otorisasi kepada pengguna hacluster. Klik tab versi RHEL Anda untuk melihat perintahnya:

    RHEL 8 dan yang lebih baru

    # pcs host auth primary-host-name secondary-host-name

    RHEL 7

    # pcs cluster auth primary-host-name secondary-host-name
  2. Pada layar perintah, masukkan nama pengguna hacluster dan sandi yang Anda tetapkan untuk pengguna hacluster.

  3. Membuat cluster:

    RHEL 8 dan yang lebih baru

    # pcs cluster setup cluster-name primary-host-name secondary-host-name

    RHEL 7

    # pcs cluster setup --name cluster-name primary-host-name secondary-host-name

Mengedit setelan default corosync.conf

Edit file /etc/corosync/corosync.conf di host utama guna menetapkan titik awal yang lebih tepat untuk menguji toleransi kesalahan cluster HA Anda di Google Cloud.

  1. Di salah satu host, gunakan editor teks pilihan Anda untuk membuka file /etc/corosync/corosync.conf yang akan diedit:

    # /etc/corosync/corosync.conf
  2. Jika /etc/corosync/corosync.conf adalah file baru atau kosong, Anda dapat memeriksa direktori /etc/corosync/ untuk menemukan file contoh yang akan digunakan sebagai dasar untuk file corosync.

  3. Di bagian totem file corosync.conf, tambahkan properti berikut dengan nilai yang disarankan seperti yang ditunjukkan untuk versi RHEL Anda:

    RHEL 8 dan yang lebih baru

    • transport: knet
    • token: 20000
    • token_retransmits_before_loss_const: 10
    • join: 60
    • max_messages: 20

    Contoh:

    totem {
    version: 2
    cluster_name: hacluster
    secauth: off
    transport: knet
    token: 20000
    token_retransmits_before_loss_const: 10
    join: 60
    max_messages: 20
    }
    ...

    RHEL 7

    • transport: udpu
    • token: 20000
    • token_retransmits_before_loss_const: 10
    • join: 60
    • max_messages: 20

    Contoh:

    totem {
    version: 2
    cluster_name: hacluster
    secauth: off
    transport: udpu
    token: 20000
    token_retransmits_before_loss_const: 10
    join: 60
    max_messages: 20
    }
    ...
  4. Dari host yang berisi file corosync.conf yang diedit, sinkronkan konfigurasi corosync di seluruh cluster:

    RHEL 8 dan yang lebih baru

    # pcs cluster sync corosync

    RHEL 7

    # pcs cluster sync
  5. Setel cluster agar dimulai secara otomatis:

    # pcs cluster enable --all
    # pcs cluster start --all
  6. Pastikan setelan corosync baru aktif di cluster dengan menggunakan utilitas corosync-cmapctl:

    # corosync-cmapctl

Menyiapkan pagar

Image RHEL yang disediakan oleh Google Cloud menyertakan agen pemagar fence_gce yang khusus untuk Google Cloud. Anda menggunakan fence_gce untuk membuat perangkat pagar untuk setiap VM host.

Untuk memastikan urutan peristiwa yang benar setelah tindakan pemagaran, Anda mengonfigurasi sistem operasi untuk menunda mulai ulang Corosync setelah VM dipagari. Anda juga perlu menyesuaikan waktu tunggu Pacemaker untuk memulai ulang guna memperhitungkan penundaan.

Untuk melihat semua opsi yang tersedia di agen pagar fence_gce, keluarkan fence_gce -h.

Membuat resource perangkat pagar

  1. Pada host utama sebagai root:

    1. Buat perangkat pagar untuk setiap VM host:

      # pcs stonith create primary-fence-name fence_gce \
        port=primary-host-name \
        zone=primary-host-zone \
        project=project-id \
        pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \
        op monitor interval="300s" timeout="120s" \
        op start interval="0" timeout="60s"
      # pcs stonith create secondary-fence-name fence_gce \
        port=secondary-host-name \
        zone=secondary-host-zone \
        project=project-id \
        pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \
        op monitor interval="300s" timeout="120s" \
        op start interval="0" timeout="60s"
    2. Batasi setiap perangkat pagar ke VM host lainnya:

      # pcs constraint location primary-fence-name avoids primary-host-name
      # pcs constraint location secondary-fence-name avoids secondary-host-name
  2. Pada host utama sebagai root, uji perangkat pagar sekunder:

    1. Matikan VM host sekunder:

      # fence_gce -o off -n secondary-host-name --zone=secondary-host-zone

      Jika perintah ini berhasil, Anda akan kehilangan konektivitas ke VM host sekunder dan VM tersebut akan tampak berhenti di halaman VM instances di konsol Google Cloud . Anda mungkin perlu memuat ulang halaman.

    2. Mulai ulang VM host sekunder:

      # fence_gce -o on -n secondary-host-name --zone=secondary-host-zone
  3. Pada host sekunder sebagai root, uji perangkat pagar utama dengan mengulangi langkah-langkah sebelumnya menggunakan nilai untuk host utama dalam perintah.

  4. Pada salah satu host sebagai root, periksa status cluster:

    # pcs status

    Resource pagar muncul di bagian resource status cluster, mirip dengan contoh berikut:

    [root@maxdb-ha-vm-2 ~]# pcs status
    Cluster name: maxdb-ha-cluster
    Stack: corosync
    Current DC: maxdb-ha-vm-1 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
    Last updated: Mon Jun 15 17:19:07 2020
    Last change: Mon Jun 15 17:18:33 2020 by root via cibadmin on maxdb-ha-vm-1
    
    2 nodes configured
    2 resources configured
    
    Online: [ maxdb-ha-vm-1 maxdb-ha-vm-2 ]
    
    Full list of resources:
    
     STONITH-maxdb-ha-vm-1   (stonith:fence_gce):    Started maxdb-ha-vm-2
     STONITH-maxdb-ha-vm-2   (stonith:fence_gce):    Started maxdb-ha-vm-1
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled

Menetapkan penundaan untuk memulai ulang Corosync

  1. Pada kedua host sebagai root, buat file drop-in systemd yang menunda startup Corosync untuk memastikan urutan peristiwa yang tepat setelah VM dengan pagar dimulai ulang:

    systemctl edit corosync.service
  2. Tambahkan baris berikut ke file:

    [Service]
    ExecStartPre=/bin/sleep 60
  3. Simpan file dan keluar dari editor.

  4. Muat ulang konfigurasi pengelola sistem.

    systemctl daemon-reload
  5. Pastikan bahwa file drop-in telah dibuat:

    service corosync status

    Anda semestinya akan melihat baris untuk file drop-in, seperti yang ditunjukkan pada contoh berikut:

    ● corosync.service - Corosync Cluster Engine
       Loaded: loaded (/usr/lib/systemd/system/corosync.service; disabled; vendor preset: disabled)
      Drop-In: /etc/systemd/system/corosync.service.d
               └─override.conf
       Active: active (running) since Tue 2021-07-20 23:45:52 UTC; 2 days ago

Menginstal pemroses dan membuat resource health check

Untuk mengonfigurasi resource health check, Anda harus menginstal pemroses terlebih dahulu.

Menginstal pemroses

Load balancer menggunakan pemroses pada port health check setiap host untuk menentukan tempat instance MaxDB berjalan.

  1. Sebagai root di kedua host, instal pemroses TCP. Petunjuk ini menginstal dan menggunakan HAProxy sebagai pemroses.

    # yum install haproxy
  2. Buka file konfigurasi haproxy.cfg untuk mengedit:

    # vi /etc/haproxy/haproxy.cfg
    1. Di bagian defaults pada haproxy.cfg, ubah mode menjadi tcplog.

    2. Setelah bagian defaults, buat bagian baru dengan menambahkan:

      #---------------------------------------------------------------------
      # Health check listener port for SAP MaxDB HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
        bind *:healthcheck-port-num

      Port bind adalah port yang sama dengan yang Anda gunakan saat membuat health check.

      Setelah selesai, update yang Anda lakukan akan terlihat seperti contoh berikut:

      #---------------------------------------------------------------------
      # common defaults that all the 'listen' and 'backend' sections will
      # use if not designated in their block
      #---------------------------------------------------------------------
      defaults
        mode                    tcp
        log                     global
        option                  tcplog
        option                  dontlognull
        option http-server-close
        # option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
      
      #---------------------------------------------------------------------
      # Set up health check listener for SAP MaxDB HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
       bind *:60000
  3. Pada setiap host sebagai root, mulai layanan untuk mengonfirmasi bahwa konfigurasinya sudah benar:

    # systemctl start haproxy.service
  4. Pada halaman Load balancer di konsol Google Cloud , klik entri load balancer Anda:

    Halaman load balancing

    Di bagian Backend pada halaman Load balancer details, jika layanan HAProxy aktif di kedua host, Anda akan melihat 1/1 di kolom Healthy dari setiap entri grup instance.

  5. Pada setiap host, hentikan layanan HAProxy:

    # systemctl stop haproxy.service

    Setelah Anda menghentikan layanan HAProxy di setiap host, 0/1 akan ditampilkan di kolom Healthy dari setiap grup instance.

    Kemudian, saat health check dikonfigurasi, cluster akan memulai ulang pemroses di node aktif.

Membuat resource health check

  1. Pada salah satu host sebagai root, buat resource health check untuk layanan HAProxy:

    # pcs resource create healthcheck_resource_name service:haproxy op monitor interval=10s timeout=20s —-group SAPMaxDB_Group
  2. Pastikan layanan health check aktif di host yang sama dengan instance SAP MaxDB Anda:

    # pcs status

    Jika resource health check tidak berada di host yang sama dengan MaxDB, pindahkan dengan perintah berikut:

    # pcs resource move healthcheck_resource_name target_host_name
    # pcs resource clear healthcheck_resource_name

    Perintah pcs resource clear membiarkan resource di lokasi barunya, tetapi menghapus batasan lokasi yang tidak diinginkan yang dibuat oleh perintah pcs resource move.

    Di status, bagian resource akan terlihat seperti contoh berikut:

    Full list of resources:
    
    STONITH-maxdb-ha-vm-1   (stonith:fence_gce):    Started maxdb-ha-vm-2
    STONITH-maxdb-ha-vm-2   (stonith:fence_gce):    Started maxdb-ha-vm-1
    
    Resource Group: SAPMaxDB_Group
      rsc_healthcheck_MDB    (service:haproxy):      Started maxdb-ha-vm-1

Menetapkan setelan default cluster

Siapkan batas migrasi dan kelekatan untuk menentukan jumlah failover pada upaya yang dilakukan sebelum gagal, dan untuk menetapkan sistem agar mencoba memulai ulang pada host saat ini terlebih dahulu. Langkah ini hanya perlu ditetapkan pada satu node agar berlaku seluruh cluster.

  1. Sebagai root pada salah satu host, tetapkan default resource:

    # pcs resource defaults resource-stickiness=1000
    # pcs resource defaults migration-threshold=5000

    Properti resource-stickiness mengontrol seberapa besar kemungkinan layanan akan tetap berjalan di tempatnya. Nilai yang lebih tinggi membuat layanan lebih melekat. Nilai 1000 berarti layanan tersebut sangat melekat.

    Properti migration-threshold menentukan jumlah kegagalan yang harus terjadi sebelum layanan beralih ke host lain. Nilai 5000 sudah cukup tinggi untuk mencegah failover saat terjadi situasi error yang lebih singkat.

    Anda dapat memeriksa default resource dengan memasukkan pcs resource defaults.

  2. Tetapkan setelan default waktu tunggu operasi resource:

    # pcs resource op defaults timeout=600s

    Anda dapat memeriksa default pengoperasian resource dengan memasukkan pcs resource op defaults.

  3. Tetapkan properti cluster berikut:

    # pcs property set stonith-enabled="true"
    # pcs property set stonith-timeout="300s"
    

    Anda dapat memeriksa setelan properti dengan pcs property list.

Membuat resource MaxDB di cluster

Sebelum melakukan langkah-langkah ini, pastikan MaxDB dan x_server dihentikan dan sistem file /sapdb dilepas.

Membuat resource gcp-pd-move

Resource gcp-pd-move adalah agen resource yang digunakan untuk memindahkan disk persisten dari satu node ke node lainnya selama failover cluster.

  1. Buat resource menggunakan perintah berikut sebagai root di salah satu node:

    # pcs resource create pd_move_resource_name gcp-pd-move \
      disk_name=regional_pd_name mode="READ_WRITE" disk_scope=regional \
      op monitor interval=10s timeout=15s \
      op start interval=0s timeout=300s \
      op stop interval=0s timeout=15s \
      --group SAPMaxDB_Group

Membuat resource LVM

Agen resource yang diaktifkan LVM digunakan untuk mengaktifkan LVM setelah disk dipindahkan ke node lain.

  1. Buat resource LVM menggunakan perintah berikut sebagai root di salah satu node:

    # pcs resource create lvm_resource_name LVM-activate \
      vgname=vgname_for_maxdb \
      vg_access_mode=system_id activation_mode=exclusive \
      --group SAPMaxDB_Group

    Contoh:

    # pcs resource create sapdb_lvm LVM-activate \
      vgname=sapdb vg_access_mode=system_id \
      activation_mode=exclusive \
      --group SAPMaxDB_Group

Membuat resource sistem file

Resource sistem file digunakan di cluster untuk melepas pemasangan /sapdb dan memasangnya di node lain selama operasi failover.

  1. Buat resource sistem file menggunakan perintah berikut sebagai root di salah satu node:

    # pcs resource create fs_resource_name Filesystem \
      device=filesystem directory=/sapdb fstype=fs_type \
      --group SAPMaxDB_Group

    Contoh:

    # pcs resource create sapdb_FS Filesystem \
      device=/dev/mapper/sapdb-sapdblv directory=/sapdb fstype=ext4 \
      --group SAPMaxDB_Group

Persiapan untuk grup resource MaxDB

Untuk mengaktifkan grup resource MaxDB, Anda perlu melakukan langkah-langkah berikut.

  1. Sinkronkan pengguna dan grup dari node tempat Anda melakukan penginstalan MaxDB ke node lainnya.

    1. Pengguna SAP MaxDB harus disinkronkan antar-node dengan menyalin entri di /etc/passwd, misalnya:

       sdb:x:1002:1003:MaxDB User:/home/sdb:/bin/false
       madbadm:x:1003:1005:SAP System Administrator:/home/mdbadm:/bin/csh

    2. Demikian pula, grup SAP juga harus disinkronkan dengan menyalin entri di /etc/group dari satu node ke node lainnya, misalnya:

       dba:x:1003:mdbadm
       sapsys:x:1005:

  2. Sinkronkan file khusus MaxDB yang disimpan di direktori sistem operasi. Sebagai pengguna root, jalankan perintah berikut:

    # rsync -av /etc/services target_host:/etc/services
    # rsync -av /home/* target_host:/home
    # rsync -av --exclude=sapservices /usr/sap/* target_host:/usr/sap
    # rsync -av --ignore-existing /usr/sap/sapservicestarget_host:/usr/sap/sapservices
    # rsync -av /etc/init.d/sapinittarget_host:/etc/init.d/
    # MaxDB specific files
    # rsync -av /etc/opttarget_host:/etc
    # rsync -av /var/lib/sdbtarget_host:/var/lib
  3. Untuk pengguna SAP OS di node kedua, ganti nama file lingkungan berikut agar menggunakan nama host masing-masing di direktori utama, misalnya:

    mv .sapenv_maxdb-ha-vm-1.sh .sapenv_maxdb-ha-vm-2.sh
    mv .sapenv_maxdb-ha-vm-1.csh .sapenv_maxdb-ha-vm-2.csh
    mv .sapsrc_maxdb-ha-vm-1.sh  .sapsrc_maxdb-ha-vm-2.sh
    mv .sapsrc_maxdb-ha-vm-1.csh  .sapsrc_maxdb-ha-vm-2.csh
    mv .dbenv_maxdb-ha-vm-1.sh .sapenv_maxdb-ha-vm-2.sh
    mv .dbenv_maxdb-ha-vm-1.csh .dbenv_maxdb-ha-vm-2.csh

Agen resource SAPDatabase tidak menggunakan perintah khusus DB untuk menghentikan atau memulai database, tetapi mengandalkan perintah saphostctrl untuk melakukan hal yang sama. SAP Host Agent memerlukan entri xuser untuk dibuat agar pemantauan dan kontrol MAXDB berhasil menggunakan saphostctrl. Lihat Catatan SAP 2435938 - SAP Host Agent SAP MaxDB: DBCredentials for DB connect untuk mengetahui informasi selengkapnya.

  1. Sebagai root, jalankan perintah berikut ke SetDatabaseProperty di node aktif:

    /usr/sap/hostctrl/exe/saphostctrl -host primary-host-name -user sapadm password \
      -dbname SID -dbtype ada -function SetDatabaseProperty DBCredentials=SET \
      -dboption User=SUPERDBA -dboption Password=password

    Uji entri menggunakan perintah berikut, meskipun database dihentikan, perintah tersebut akan dapat mengembalikan status:

    /usr/sap/hostctrl/exe/saphostctrl -host secondary-host-name -dbname SID \
      -dbtype ada -function GetDatabaseStatus

Perintah agen saphostctrl menggunakan program xuser dari penginstalan MaxDB sehingga untuk menyiapkan node kedua sekarang, Anda akan memindahkan SAPMaxDB_group ke maxdb-node-b.

  1. Di node mana pun, jalankan perintah berikut sebagai root:

    pcs resource move SAPMaxDB_group

Perhatikan bahwa empat resource yang dibuat, Health check, gcp-pd-move, LVM, dan File System kini dimigrasikan dan berhasil dimulai di node kedua.

  1. Anda dapat menggunakan perintah berikut di node mana pun untuk melihat tindakan yang dilakukan:

    watch pcs status

Setelah keempat resource berhasil dimulai di node kedua, jalankan perintah saphostctrl.

  1. Sebagai root, jalankan perintah berikut untuk SetDatabaseProperty di node yang kini aktif:

    /usr/sap/hostctrl/exe/saphostctrl -host secondary-host-name -user sapadm password \
      -dbname SID -dbtype ada -function SetDatabaseProperty DBCredentials=SET \
      -dboption User=SUPERDBA -dboption Password=password
  2. Di node b, mulai MaxDB dan x_server secara manual untuk memeriksa apakah keduanya dapat dimulai dengan benar:

    # dbmcli -d SID -u control, and password db_online
    # x_server start
    

Lanjutkan ke langkah berikutnya untuk membuat resource untuk database SAP. Jika ada error yang diamati pada tahap ini, jangan buat resource database.

Membuat resource untuk SAP MaxDB

RHEL Pacemaker menggunakan agen resource database SAP untuk memantau dan mengontrol database SAP.

  1. Buat resource database di node tempat SAPMaxDB_group aktif menggunakan perintah berikut:

    # pcs resource create SAPDatabase_resource_name SAPDatabase \
      DBTYPE="ADA" SID="SID" STRICT_MONITORING="TRUE" \
      MONITOR_SERVICES="Database|x_server" AUTOMATIC_RECOVER="TRUE"
      --group SAPMaxDB_Group

    Resource cluster akhir dapat dilihat menggunakan pcs status dan hasil yang diharapkan adalah sebagai berikut:

    # pcs status
      Cluster name: maxdb-cluster
      Stack: corosync
      Current DC: maxdb-ha-vm-1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
      Last updated: Wed Oct 23 02:04:32 2024
      Last change: Wed Oct 23 02:01:41 2024 by hacluster via crmd on maxdb-ha-vm-1
    
      2 nodes configured
      7 resource instances configured
    
      Online: [ maxdb-ha-vm-1 maxdb-ha-vm-2 ]
    
      Full list of resources:
    
      STONITH-maxdb-ha-vm-1  (stonith:fence_gce):    Started maxdb-ha-vm-2
      STONITH-maxdb-ha-vm-2  (stonith:fence_gce):    Started maxdb-ha-vm-1
      Resource Group: SAPMaxDB_Group
         healthcheck_maxdb  (service:haproxy):      Started maxdb-ha-vm-1
         sapdb_regpd        (ocf::heartbeat:gcp-pd-move):   Started maxdb-ha-vm-1
         lvm_sapdb  (ocf::heartbeat:LVM-activate):  Started maxdb-ha-vm-1
         sapdb_fs   (ocf::heartbeat:Filesystem):    Started maxdb-ha-vm-1
         MDB_SAPMaxDB       (ocf::heartbeat:SAPDatabase):   Started maxdb-ha-vm-1
    
      Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled

Menguji failover

Uji cluster Anda dengan menyimulasikan kegagalan pada host aktif. Gunakan sistem pengujian atau jalankan pengujian pada sistem produksi Anda sebelum merilis sistem untuk digunakan.

Cadangkan sistem sebelum pengujian.

Anda dapat menyimulasikan kegagalan dengan berbagai cara, termasuk:

  • Menghentikan MaxDB atau x_server secara manual
  • Menghentikan proses MaxDB atau x_server
  • reboot (di node aktif)
  • ip link set eth0 down untuk instance dengan satu antarmuka jaringan
  • iptables ... DROP untuk instance dengan beberapa antarmuka jaringan
  • echo c > /proc/sysrq-trigger

Petunjuk ini menggunakan ip link set eth0 down atau iptables untuk menyimulasikan gangguan jaringan antara dua host Anda dalam cluster. Gunakan perintah ip link pada instance dengan satu antarmuka jaringan dan gunakan perintah iptables pada instance dengan satu atau beberapa antarmuka jaringan. Pengujian ini memvalidasi failover serta fencing. Jika instance Anda memiliki beberapa antarmuka jaringan yang ditentukan, Anda dapat menggunakan perintah iptables di host sekunder untuk menghentikan traffic masuk dan keluar berdasarkan IP yang digunakan oleh host utama untuk komunikasi cluster, sehingga menyimulasikan hilangnya koneksi jaringan ke host utama.

  1. Pada host yang aktif, sebagai root, buat antarmuka jaringan menjadi offline:

    # ip link set eth0 down
  2. Hubungkan kembali ke host menggunakan SSH dan ubah ke pengguna root.

  3. Masukkan pcs status untuk mengonfirmasi bahwa host pasif sebelumnya kini memiliki Persistent Disk Regional yang terpasang dan menjalankan layanan MaxDB. Mulai ulang otomatis diaktifkan dalam cluster, sehingga host yang dihentikan akan memulai ulang dan mengambil peran host pasif, seperti yang ditunjukkan dalam contoh berikut:

    Cluster name: maxdb-ha-cluster
    Stack: corosync
    Current DC: maxdb-ha-vm-2 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
    Last updated: Wed Oct 23 02:01:45 2024
    Last change: Wed Oct 23 02:01:41 2024 by hacluster via crmdon maxdb-ha-vm-2
    
    2 nodes configured
    7 resources configured
    
    Online: [ maxdb-ha-vm-1 maxdb-ha-vm-2 ]
    
    Full list of resources:
    
    STONITH-maxdb-ha-vm-1   (stonith:fence_gce):    Started maxdb-ha-vm-2
    STONITH-maxdb-ha-vm-2   (stonith:fence_gce):    Started maxdb-ha-vm-1
    
    Resource Group: SAPMaxDB_Group
     healthcheck_maxdb  (service:haproxy):      Started maxdb-ha-vm-2
     sapdb_regpd        (ocf::heartbeat:gcp-pd-move):   Started maxdb-ha-vm-2
     lvm_sapdb  (ocf::heartbeat:LVM-activate):  Started maxdb-ha-vm-2
     sapdb_fs   (ocf::heartbeat:Filesystem):    Started maxdb-ha-vm-2
     MDB_SAPMaxDB       (ocf::heartbeat:SAPDatabase):   Started maxdb-ha-vm-2
    
    Daemon Status:
     corosync: active/enabled
     pacemaker: active/enabled
     pcsd: active/enabled

Memecahkan masalah

Untuk memecahkan masalah konfigurasi ketersediaan tinggi untuk sistem SAP di RHEL, lihat Memecahkan masalah konfigurasi ketersediaan tinggi untuk SAP.

Mendapatkan dukungan untuk SAP HANA di RHEL

Jika Anda memerlukan bantuan untuk menyelesaikan masalah dengan cluster ketersediaan tinggi untuk SAP HANA di RHEL, kumpulkan informasi diagnostik yang diperlukan dan hubungi Cloud Customer Care. Untuk informasi selengkapnya, lihat Cluster ketersediaan tinggi pada informasi diagnostik RHEL.