Panduan konfigurasi cluster peningkatan skala HA untuk SAP HANA di RHEL

Panduan ini menunjukkan cara men-deploy dan mengonfigurasi cluster ketersediaan tinggi (HA) Red Hat Enterprise Linux (RHEL) untuk sistem peningkatan skala SAP HANA 1.0 SPS 12 atau yang lebih baru di Google Cloud.

Panduan ini mencakup langkah-langkah untuk:

Panduan ini juga mencakup langkah-langkah untuk mengonfigurasi replikasi sistem SAP HANA, tetapi baca dokumentasi SAP untuk petunjuk pastinya.

Untuk men-deploy sistem SAP HANA tanpa cluster ketersediaan tinggi Linux atau host node standby, gunakan Panduan deployment SAP HANA.

Guna mengonfigurasi cluster HA untuk SAP HANA di SUSE Linux Enterprise Server (SLES), lihat panduan konfigurasi cluster HA untuk peningkatan skala SAP HANA di SLES.

Panduan ini ditujukan bagi pengguna SAP HANA tingkat lanjut yang memahami konfigurasi ketersediaan tinggi Linux untuk SAP HANA.

Sistem yang di-deploy oleh panduan ini

Dengan mengikuti panduan ini, Anda akan men-deploy dua instance SAP HANA dan menyiapkan cluster HA di RHEL. Anda men-deploy setiap instance SAP HANA pada VM Compute Engine di zona berbeda dalam region yang sama. Penginstalan SAP NetWeaver dengan ketersediaan tinggi tidak tercakup dalam panduan ini.

Ringkasan cluster Linux dengan ketersediaan tinggi untuk sistem peningkatan skala SAP HANA node tunggal

Cluster yang di-deploy mencakup fungsi dan fitur berikut:

  • Dua VM host, masing-masing dengan instance SAP HANA
  • Replikasi sistem SAP HANA sinkron.
  • Pengelola resource cluster ketersediaan tinggi Pacemaker.
  • Mekanisme pagar STONITH.
  • Mulai ulang otomatis instance yang gagal sebagai instance sekunder baru.

Panduan ini meminta Anda untuk menggunakan template Cloud Deployment Manager yang disediakan oleh Google Cloud untuk men-deploy virtual machine (VM) Compute Engine dan instance SAP HANA, yang memastikan bahwa VM dan SAP dasar Sistem HANA memenuhi persyaratan dukungan SAP dan sesuai dengan praktik terbaik saat ini.

SAP HANA Studio digunakan dalam panduan ini untuk menguji replikasi sistem SAP HANA. Anda dapat menggunakan SAP HANA Cockpit sebagai gantinya, jika ingin. Untuk informasi tentang cara menginstal SAP HANA Studio, lihat:

Prasyarat

Sebelum membuat cluster ketersediaan tinggi SAP HANA, 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 Cloud untuk 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 jaringan VPC.

    Buka VPC networks

  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. Layanan ini 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.
  • Komunikasi antar-VM di subnetwork SAP HANA, termasuk komunikasi antar-node dalam sistem penyebaran skala SAP HANA atau komunikasi antara server database dan server aplikasi dalam arsitektur 3 tingkat. Anda dapat mengaktifkan komunikasi antar-VM dengan membuat aturan firewall untuk mengizinkan traffic yang berasal dari dalam subnetwork.

Untuk membuat aturan firewall:

Konsol

  1. Di konsol Google Cloud, buka halaman Firewall jaringan VPC.

    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 SAP HANA

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

Untuk menentukan dan men-deploy sistem, gunakan template Cloud Deployment Manager, sama seperti yang Anda gunakan untuk men-deploy sistem SAP HANA dalam Panduan deployment SAP HANA.

Namun, untuk men-deploy dua sistem, bukan satu, Anda perlu menambahkan definisi untuk sistem kedua ke file konfigurasi dengan menyalin dan menempel definisi sistem pertama. Setelah membuat definisi kedua, Anda perlu mengubah nama resource dan instance dalam definisi kedua. Untuk melindungi dari kegagalan zona, tentukan zona berbeda di region yang sama. Semua nilai properti lainnya dalam kedua definisi tetap sama.

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

Petunjuk berikut menggunakan Cloud Shell, tetapi secara umum berlaku untuk Google Cloud CLI.

  1. Pastikan kuota resource saat ini, seperti persistent disk dan CPU, cukup untuk sistem SAP HANA yang akan diinstal. Jika kuota Anda tidak mencukupi, deployment akan gagal. Untuk mengetahui persyaratan kuota SAP HANA, lihat Pertimbangan harga dan kuota untuk SAP HANA.

    Buka halaman Quotas

  2. Buka Cloud Shell atau, jika Anda menginstal gcloud CLI di workstation lokal, buka terminal.

    Buka Cloud Shell

  3. Download template file konfigurasi template.yaml untuk cluster ketersediaan tinggi SAP HANA ke direktori kerja Anda dengan memasukkan perintah berikut di Cloud Shell atau gcloud CLI:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml
  4. Jika ingin, ganti nama file template.yaml untuk mengidentifikasi konfigurasi yang ditentukannya.

  5. Buka file template.yaml di editor kode Cloud Shell atau, jika Anda menggunakan gcloud CLI, editor teks pilihan Anda.

    Untuk membuka editor kode Cloud Shell, klik ikon pensil di sudut kanan atas jendela terminal Cloud Shell.

  6. Dalam file template.yaml, selesaikan definisi sistem SAP HANA utama. Tentukan nilai properti dengan mengganti tanda kurung dan isinya dengan nilai untuk penginstalan Anda. Propertinya dijelaskan dalam tabel berikut.

    Untuk membuat instance VM tanpa menginstal SAP HANA, hapus atau jadikan sebagai komentar pada semua baris yang dimulai dengan sap_hana_.

    Properti Jenis data Deskripsi
    jenis String

    Menentukan lokasi, jenis, dan versi template Deployment Manager yang akan digunakan selama deployment.

    File YAML berisi dua spesifikasi type, yang salah satunya diberi komentar. Spesifikasi type yang aktif secara default menentukan versi template sebagai latest. Spesifikasi type yang dijadikan sebagai komentar menentukan versi template tertentu dengan stempel waktu.

    Jika Anda memerlukan semua deployment untuk menggunakan versi template yang sama, gunakan spesifikasi type yang menyertakan stempel waktu.

    instanceName String Nama instance VM yang saat ini ditentukan. Tentukan nama yang berbeda dalam definisi VM utama dan sekunder. Nama harus ditentukan dalam huruf kecil, angka, atau tanda hubung.
    instanceType String Jenis virtual machine Compute Engine yang diperlukan untuk menjalankan SAP HANA. Jika Anda memerlukan jenis VM kustom, tentukan jenis VM yang telah ditetapkan dengan jumlah vCPU yang paling mendekati, namun lebih besar dari jumlah yang Anda butuhkan. Setelah deployment selesai, ubah jumlah vCPU dan jumlah memori.
    zone String Zona Google Cloud untuk men-deploy instance VM yang Anda tentukan. Tentukan zona berbeda di region yang sama untuk definisi HANA utama dan sekunder. Zona harus berada di region yang sama dengan yang Anda pilih untuk subnet Anda.
    subnetwork String Nama subnetwork yang Anda buat di langkah sebelumnya. Jika Anda men-deploy ke VPC bersama, tentukan nilai ini sebagai [SHAREDVPC_PROJECT]/[SUBNETWORK]. Contoh, myproject/network1.
    linuxImage String Nama image sistem operasi atau kelompok image sistem operasi Linux yang Anda gunakan dengan SAP HANA. Untuk menentukan keluarga image, tambahkan awalan family/ ke nama keluarga. Contoh, family/rhel-7-6-sap-ha. Untuk menetapkan image tertentu, tentukan nama image saja. Untuk daftar image dan kelompok image yang tersedia, lihat halaman Images di Konsol Google Cloud.
    linuxImageProject String Project Google Cloud berisi image yang akan Anda gunakan. Project ini dapat berupa project Anda sendiri atau project image Google Cloud, seperti rhel-sap-cloud. Untuk mengetahui informasi selengkapnya tentang project image Google Cloud, lihat halaman Images dalam dokumentasi Compute Engine.
    sap_hana_deployment_bucket String Nama bucket Google Cloud Storage dalam project Anda yang berisi file penginstalan dan revisi SAP HANA yang Anda upload pada langkah sebelumnya. Semua file revisi upgrade dalam bucket diterapkan ke SAP HANA selama proses deployment.
    sap_hana_sid String ID sistem (SID) SAP HANA. ID harus terdiri dari tiga karakter alfanumerik dan diawali dengan huruf. Semua huruf harus huruf besar.
    sap_hana_instance_number Bilangan Bulat Nomor instance, 0 hingga 99, dari sistem SAP HANA. Defaultnya adalah 0.
    sap_hana_sidadm_password String Sandi untuk administrator sistem operasi (OS). Sandi minimal terdiri dari delapan karakter dan berisi minimal satu huruf besar, satu huruf kecil, dan satu angka.
    sap_hana_system_password String Sandi untuk superuser database. Sandi minimal terdiri dari 8 karakter dan mengandung minimal satu huruf besar, satu huruf kecil, dan satu angka.
    sap_hana_sidadm_uid Bilangan Bulat Nilai default untuk ID pengguna SID_LCadm adalah 900 untuk menghindari grup buatan pengguna bentrok dengan SAP HANA. Anda dapat mengubahnya ke nilai yang berbeda jika diperlukan.
    sap_hana_sapsys_gid Bilangan Bulat ID grup default untuk sapsys adalah 79. Dengan menentukan nilai di atas, Anda dapat mengganti nilai ini sesuai persyaratan Anda.
    sap_hana_scaleout_nodes Bilangan Bulat Tentukan: 0. Instruksi ini hanya untuk sistem SAP HANA peningkatan skala.
    networkTag String Tag jaringan yang mewakili instance VM untuk tujuan firewall atau pemilihan rute. Jika Anda menentukan publicIP: No dan tidak menetapkan tag jaringan, pastikan untuk menyediakan cara lain untuk mengakses internet.
    nic_type String Opsional, tetapi direkomendasikan jika tersedia untuk mesin dan versi OS target. Menentukan antarmuka jaringan yang akan digunakan dengan instance VM. Anda dapat menentukan nilai GVNIC atau VIRTIO_NET. Untuk menggunakan Google Virtual NIC (gVNIC), Anda harus menentukan image OS yang mendukung gVNIC sebagai nilai untuk properti linuxImage. Untuk mengetahui daftar OS image, lihat Detail sistem operasi.

    Jika Anda tidak menentukan nilai untuk properti ini, antarmuka jaringan akan secara otomatis dipilih berdasarkan jenis mesin yang Anda tentukan untuk properti instanceType.

    Argumen ini tersedia di template Deployment Manager versi 202302060649 atau yang lebih baru.
    publicIP Boolean Opsional. Menentukan apakah alamat IP publik ditambahkan ke instance VM Anda atau tidak. Nilai defaultnya adalah Yes.
    serviceAccount String Opsional. Menentukan akun layanan yang akan digunakan oleh VM host dan oleh program yang berjalan di VM host. Masukkan alamat email akun layanan. Misalnya, svc-acct-name@project-id.. Secara default, akun layanan default Compute Engine digunakan. Untuk mengetahui informasi selengkapnya, lihat Identity and Access Management untuk program SAP di Google Cloud.
  7. Buat definisi sistem SAP HANA sekunder dengan menyalin definisi sistem SAP HANA utama dan menempelkan salinannya setelah definisi sistem SAP HANA utama. Lihat contoh dengan mengikuti langkah-langkah berikut.

  8. Dalam definisi sistem SAP HANA sekunder, tentukan nilai yang berbeda untuk properti berikut dibandingkan dengan yang Anda tetapkan dalam definisi sistem SAP HANA utama:

    • name
    • instanceName
    • zone

  9. Buat instance:

    gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml

    Perintah di atas memanggil Deployment Manager, yang men-deploy VM, mendownload software SAP HANA dari bucket penyimpanan Anda, dan menginstal SAP HANA, semuanya sesuai dengan spesifikasi di file template.yaml Anda.

    Pemrosesan deployment terdiri dari dua tahap. Pada tahap pertama, Deployment Manager menulis statusnya ke konsol. Pada tahap kedua, skrip deployment menulis statusnya ke Cloud Logging.

Contoh file konfigurasi template.yaml lengkap

Contoh berikut menunjukkan file konfigurasi template.yaml lengkap yang men-deploy dua instance VM dengan instalasi sistem SAP HANA.

File ini berisi definisi dua resource untuk di-deploy: sap_hana_primary dan sap_hana_secondary. Setiap definisi resource berisi definisi untuk VM dan instance SAP HANA.

Definisi resource sap_hana_secondary dibuat dengan menyalin dan menempelkan definisi pertama, lalu mengubah nilai properti name, instanceName, dan zone. Semua nilai properti lainnya dalam dua definisi resource sama.

Properti networkTag, serviceAccount, sap_hana_sidadm_uid, dan sap_hana_sapsys_gid berasal dari bagian Opsi Lanjutan di template file konfigurasi. Properti sap_hana_sidadm_uid dan sap_hana_sapsys_gid disertakan untuk menampilkan nilai defaultnya, yang digunakan karena properti tersebut dijadikan komentar.

resources:
- name: sap_hana_primary
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: hana-ha-vm-1
    instanceType: n2-highmem-32
    zone: us-central1-a
    subnetwork: example-subnet-us-central1
    linuxImage: family/rhel-8-1-sap-ha
    linuxImageProject: rhel-sap-cloud
    sap_hana_deployment_bucket: hana2-sp4-rev46
    sap_hana_sid: HA1
    sap_hana_instance_number: 22
    sap_hana_sidadm_password: Tempa55word
    sap_hana_system_password: Tempa55word
    sap_hana_scaleout_nodes: 0
    networkTag: cluster-ntwk-tag
    serviceAccount: limited-roles@example-project-123456.
    # sap_hana_sidadm_uid: 900
    # sap_hana_sapsys_gid: 79

- name: sap_hana_secondary
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: hana-ha-vm-2
    instanceType: n2-highmem-32
    zone: us-central1-c
    subnetwork: example-subnet-us-central1
    linuxImage: family/rhel-8-1-sap-ha
    linuxImageProject: rhel-sap-cloud
    sap_hana_deployment_bucket: hana2-sp4-rev46
    sap_hana_sid: HA1
    sap_hana_instance_number: 22
    sap_hana_sidadm_password: Google123
    sap_hana_system_password: Google123
    sap_hana_scaleout_nodes: 0
    networkTag: cluster-ntwk-tag
    serviceAccount: limited-roles@example-project-123456.
    # sap_hana_sidadm_uid: 900
    # sap_hana_sapsys_gid: 79
    

Membuat aturan firewall yang mengizinkan akses ke VM host

Jika Anda belum melakukannya, buat aturan firewall yang mengizinkan akses ke setiap VM host dari sumber berikut:

  • Untuk tujuan konfigurasi, workstation lokal, host bastion, atau server jump
  • Untuk tujuan konfigurasi, workstation lokal, host bastion, atau server jump

Saat membuat aturan firewall VPC, tentukan tag jaringan yang Anda tetapkan di file konfigurasi template.yaml untuk menetapkan VM host sebagai target untuk aturan tersebut.

Untuk memverifikasi deployment, tentukan aturan untuk mengizinkan koneksi SSH pada port 22 dari bastion host atau workstation lokal.

Untuk akses antara node cluster, tambahkan aturan firewall yang mengizinkan semua jenis koneksi pada port mana pun dari VM lain di subnetwork yang sama.

Pastikan aturan firewall untuk memverifikasi deployment dan komunikasi intra-cluster telah dibuat sebelum melanjutkan ke bagian berikutnya. Untuk mengetahui petunjuknya, lihat Menambahkan aturan firewall.

Memverifikasi deployment VM dan SAP HANA

Untuk memverifikasi deployment, periksa log deployment di Cloud Logging dan periksa disk serta layanan di VM host utama dan sekunder.

  1. Di Konsol Google Cloud, buka Cloud Logging untuk memantau progres penginstalan dan memeriksa error.

    Buka Cloud Logging

  2. Filter log:

    Logs Explorer

    1. Di halaman Logs Explorer, buka panel Query.

    2. Dari menu drop-down Resource, pilih Global, lalu klik Add.

      Jika Anda tidak melihat opsi Global, di editor kueri, masukkan kueri berikut:

      resource.type="global"
      "Deployment"
      
    3. Klik Jalankan kueri.

    Logs Viewer Lama

    • Di halaman Legacy Logs Viewer, dari menu pemilih dasar, pilih Global sebagai resource logging Anda.
  3. Analisis log yang difilter:

    • Jika "--- Finished" ditampilkan, berarti pemrosesan deployment selesai dan Anda dapat melanjutkan ke langkah berikutnya.
    • Jika Anda melihat error kuota:

      1. Di halaman Quotas IAM & Admin, tingkatkan kuota yang tidak memenuhi persyaratan SAP HANA yang tercantum dalam Panduan perencanaan SAP HANA.

      2. Di halaman Deployment Manager Deployments, hapus deployment untuk membersihkan VM dan persistent disk dari penginstalan yang gagal.

      3. Jalankan kembali deployment Anda.

Periksa konfigurasi VM dan SAP HANA

  1. Setelah sistem SAP HANA di-deploy tanpa error, hubungkan ke setiap VM menggunakan SSH. Dari halaman instance VM Compute Engine, Anda dapat mengklik tombol SSH untuk setiap instance VM, atau menggunakan metode SSH yang Anda inginkan.

    Tombol SSH di halaman instance VM Compute Engine.

  2. Ubah ke pengguna root.

    $ sudo su -
  3. Di command prompt, masukkan df -h. Di setiap VM, pastikan Anda melihat direktori /hana, seperti /hana/data.

    Filesystem                        Size  Used Avail Use% Mounted on
    /dev/sda2                          30G  4.0G   26G  14% /
    devtmpfs                          126G     0  126G   0% /dev
    tmpfs                             126G     0  126G   0% /dev/shm
    tmpfs                             126G   17M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda1                         200M  9.7M  191M   5% /boot/efi
    /dev/mapper/vg_hana-shared        251G   49G  203G  20% /hana/shared
    /dev/mapper/vg_hana-sap            32G  240M   32G   1% /usr/sap
    /dev/mapper/vg_hana-data          426G  7.0G  419G   2% /hana/data
    /dev/mapper/vg_hana-log           125G  4.2G  121G   4% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G   33M  512G   1% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/899
    tmpfs                              26G     0   26G   0% /run/user/1000
  4. Ubah ke pengguna admin SAP dengan mengganti SID_LC dalam perintah berikut dengan ID sistem yang Anda tentukan dalam template file konfigurasi. Gunakan huruf kecil untuk setiap huruf.

    # su - SID_LCadm
  5. Pastikan layanan SAP HANA, seperti hdbnameserver, hdbindexserver, dan lainnya, berjalan pada instance dengan memasukkan perintah berikut:

    > HDB info
  6. Jika Anda menggunakan RHEL untuk SAP 9.0 atau yang lebih baru, pastikan paket chkconfig dan compat-openssl11 diinstal pada instance VM Anda.

    Untuk mengetahui informasi selengkapnya dari SAP, lihat Catatan SAP 3108316 - Red Hat Enterprise Linux 9.x: Penginstalan dan Konfigurasi .

Memvalidasi penginstalan Agen Google Cloud untuk SAP

Setelah Anda men-deploy VM dan menginstal sistem SAP, pastikan bahwa Agen Google Cloud untuk SAP berfungsi dengan benar.

Memastikan bahwa Agen Google Cloud untuk SAP berjalan

Untuk memastikan bahwa agen sedang berjalan, ikuti langkah-langkah berikut:

  1. Buat koneksi SSH dengan instance Compute Engine Anda.

  2. Jalankan perintah berikut:

    systemctl status google-cloud-sap-agent

    Jika agen berfungsi dengan baik, output akan berisi active (running). Contoh:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

Jika agen tidak berjalan, mulai ulang agen.

Memverifikasi bahwa Agen Host SAP menerima metrik

Untuk memverifikasi bahwa metrik infrastruktur dikumpulkan oleh Agen Google Cloud untuk SAP dan dikirim dengan benar ke Agen Host SAP, ikuti langkah-langkah berikut:

  1. Di sistem SAP, masukkan transaksi ST06.
  2. Di panel ringkasan, periksa ketersediaan dan konten kolom berikut untuk penyiapan infrastruktur pemantauan SAP dan Google yang menyeluruh dan benar:

    • Penyedia Cloud: Google Cloud Platform
    • Akses Pemantauan yang Ditingkatkan: TRUE
    • Detail Enhanced Monitoring: ACTIVE

Menyiapkan pemantauan untuk SAP HANA

Secara opsional, Anda dapat memantau instance SAP HANA menggunakan Agen Google Cloud untuk SAP. Dari versi 2.0, Anda dapat mengonfigurasi agen untuk mengumpulkan metrik pemantauan SAP HANA dan mengirimkannya ke Cloud Monitoring. Dengan Cloud Monitoring, Anda dapat membuat dasbor untuk memvisualisasikan metrik ini, menyiapkan pemberitahuan berdasarkan batas metrik, dan lainnya.

Untuk mengetahui informasi selengkapnya tentang pengumpulan metrik pemantauan SAP HANA menggunakan Agen Google Cloud untuk SAP, lihat Pengumpulan metrik pemantauan SAP HANA.

Mengaktifkan Fast Restart SAP HANA

Google Cloud sangat merekomendasikan pengaktifan Mulai Ulang Cepat SAP HANA untuk setiap instance SAP HANA, terutama untuk instance yang lebih besar. Mulai Ulang Cepat SAP HANA mengurangi waktu mulai ulang jika SAP HANA dihentikan, tetapi sistem operasi tetap berjalan.

Seperti yang dikonfigurasi oleh skrip otomatisasi yang disediakan Google Cloud, setelan sistem operasi dan kernel sudah mendukung Mulai Ulang Cepat SAP HANA. Anda perlu menentukan sistem file tmpfs dan mengonfigurasi SAP HANA.

Untuk menentukan sistem file tmpfs dan mengonfigurasi SAP HANA, Anda dapat mengikuti langkah-langkah manual atau menggunakan skrip otomatisasi yang disediakan Google Cloud untuk mengaktifkan Mulai Ulang Cepat SAP HANA. Untuk mengetahui informasi selengkapnya, lihat:

Untuk mengetahui petunjuk otoritatif lengkap terkait Mulai Ulang Cepat SAP HANA, lihat dokumentasi Opsi Mulai Ulang Cepat SAP HANA.

Langkah manual

Mengonfigurasi sistem file tmpfs

Setelah VM host dan sistem SAP HANA dasar berhasil di-deploy, Anda harus membuat dan memasang direktori untuk node NUMA di sistem file tmpfs.

Menampilkan topologi NUMA VM Anda

Sebelum dapat memetakan sistem file tmpfs yang diperlukan, Anda perlu mengetahui jumlah node NUMA yang dimiliki VM Anda. Untuk menampilkan node NUMA yang tersedia di VM Compute Engine, masukkan perintah berikut:

lscpu | grep NUMA

Misalnya, jenis VM m2-ultramem-208 memiliki empat node NUMA bernomor 0-3, seperti yang ditunjukkan pada contoh berikut:

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
Membuat direktori node NUMA

Buat direktori untuk setiap node NUMA di VM Anda dan tetapkan izinnya.

Misalnya, untuk empat node NUMA yang bernomor 0-3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
Instal direktori node NUMA ke tmpfs

Instal direktori sistem file tmpfs dan tentukan preferensi node NUMA untuk setiap direktori dengan mpol=prefer:

SID menentukan SID dengan huruf besar.

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
Update /etc/fstab

Untuk memastikan direktori pemasangan tersedia setelah sistem operasi dimulai ulang, tambahkan entri ke tabel sistem file, /etc/fstab:

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,relatime,mpol=prefer:3

Opsional: menetapkan batas penggunaan memori

Sistem file tmpfs dapat bertambah dan mengecil secara dinamis.

Untuk membatasi memori yang digunakan oleh sistem file tmpfs, Anda dapat menetapkan batas ukuran untuk volume node NUMA dengan opsi size. Contoh:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

Anda juga dapat membatasi penggunaan memori tmpfs secara keseluruhan untuk semua node NUMA untuk instance SAP HANA tertentu dan node server tertentu, dengan menetapkan parameter persistent_memory_global_allocation_limit di bagian [memorymanager] dari file global.ini.

Mengonfigurasi SAP HANA untuk Mulai Ulang Cepat

Guna mengonfigurasi SAP HANA untuk Fast Restart, update file global.ini dan tentukan tabel yang akan disimpan dalam memori persisten.

Perbarui bagian [persistence] dalam file global.ini

Konfigurasi bagian [persistence] di file global.ini SAP HANA untuk mereferensikan lokasi tmpfs. Pisahkan setiap lokasi tmpfs dengan titik koma:

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

Contoh sebelumnya menentukan empat volume memori untuk empat node NUMA, yang sesuai dengan m2-ultramem-208. Jika menjalankan m2-ultramem-416, Anda perlu mengonfigurasi delapan volume memori (0..7).

Mulai ulang SAP HANA setelah mengubah file global.ini.

SAP HANA kini dapat menggunakan lokasi tmpfs sebagai ruang memori persisten.

SAP HANA kini dapat menggunakan lokasi sebagai ruang memori persisten.

Menentukan tabel atau partisi kolom tertentu yang akan disimpan di memori persisten.

Misalnya, untuk mengaktifkan memori persisten pada tabel yang sudah ada, jalankan kueri SQL:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Guna mengubah default untuk tabel baru, tambahkan parameter table_default dalam file indexserver.ini. Contoh:

[persistent_memory]
table_default = ON

Untuk informasi selengkapnya tentang cara mengontrol kolom, tabel, dan tampilan pemantauan mana yang memberikan informasi mendetail, lihat Memori Persisten SAP HANA.

Langkah otomatis

Skrip otomatisasi yang disediakan Google Cloud untuk mengaktifkan Mulai Ulang Cepat SAP HANA guna membuat perubahan pada direktori /hana/tmpfs*, file /etc/fstab, dan konfigurasi SAP HANA. Saat menjalankan skrip, Anda mungkin perlu melakukan langkah tambahan, bergantung pada apakah ini adalah deployment awal sistem SAP HANA atau Anda mengubah ukuran mesin ke ukuran NUMA yang berbeda.

Untuk deployment awal sistem SAP HANA atau mengubah ukuran mesin guna meningkatkan jumlah node NUMA, pastikan SAP HANA berjalan selama eksekusi skrip otomatisasi yang disediakan Google Cloud untuk mengaktifkan Mulai Ulang Cepat SAP HANA.

Jika Anda mengubah ukuran mesin untuk mengurangi jumlah node NUMA, pastikan SAP HANA dihentikan selama eksekusi skrip otomatisasi yang disediakan Google Cloud untuk mengaktifkan Mulai Ulang Cepat SAP HANA. Setelah skrip dijalankan, Anda harus memperbarui konfigurasi SAP HANA secara manual untuk menyelesaikan penyiapan Mulai Ulang Cepat SAP HANA. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi SAP HANA untuk Mulai Ulang Cepat.

Untuk mengaktifkan Mulai Ulang Cepat SAP HANA, ikuti langkah-langkah berikut:

  1. Buat koneksi SSH dengan VM host Anda.

  2. Beralih ke root:

    sudo su -

  3. Download skrip sap_lib_hdbfr.sh:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. Setel agar file dapat dieksekusi:

    chmod +x sap_lib_hdbfr.sh
  5. Pastikan bahwa skrip tidak memiliki error:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    Jika perintah menampilkan error, hubungi Cloud Customer Care. Untuk mengetahui informasi selengkapnya tentang cara menghubungi Layanan Pelanggan, lihat Mendapatkan dukungan untuk SAP di Google Cloud.

  6. Jalankan skrip setelah mengganti ID sistem (SID) dan sandi SAP HANA untuk pengguna SISTEM dari database SAP HANA. Untuk memberikan sandi dengan aman, sebaiknya gunakan secret di Secret Manager.

    Jalankan skrip menggunakan nama secret di Secret Manager. Secret ini harus ada di project Google Cloud yang berisi instance VM host Anda.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    Ganti kode berikut:

    • SID: menentukan SID dengan huruf besar. Contoh, AHA.
    • SECRET_NAME: menentukan nama secret yang sesuai dengan sandi untuk pengguna SISTEM dari database SAP HANA. Secret ini harus ada di project Google Cloud yang berisi instance VM host Anda.

    Atau, Anda dapat menjalankan skrip menggunakan sandi teks biasa. Setelah Mulai Ulang Cepat SAP HANA diaktifkan, pastikan untuk mengubah sandi Anda. Sebaiknya jangan gunakan sandi teks biasa karena sandi Anda akan dicatat dalam histori command line VM Anda.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    Ganti kode berikut:

    • SID: menentukan SID dengan huruf besar. Contoh, AHA.
    • PASSWORD: menentukan sandi untuk pengguna SISTEM dari database SAP HANA.

Agar operasi awal berhasil, Anda akan melihat output yang mirip dengan output berikut ini:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

Opsional: Mengonfigurasi kunci SSH pada VM utama dan sekunder

Kunci penyimpanan aman (SSFS) SAP HANA perlu disinkronkan dengan host di cluster HA. Untuk menyederhanakan sinkronisasi, dan mengizinkan file seperti cadangan disalin antar-host di cluster dengan ketersediaan tinggi (HA), Anda dapat membuat koneksi SSH root di antara dua host tersebut.

Organisasi Anda kemungkinan memiliki pedoman yang mengatur komunikasi jaringan internal. Jika perlu, setelah deployment selesai, Anda dapat menghapus metadata dari VM dan kunci dari direktori authorized_keys.

Jika penyiapan koneksi SSH langsung tidak mematuhi pedoman organisasi, Anda dapat menyinkronkan kunci SSFS dan mentransfer file dengan menggunakan metode lain, seperti:

Untuk mengaktifkan koneksi SSH antara instance utama dan sekunder, ikuti langkah-langkah berikut.

  1. Di VM host utama:

    1. Gunakan SSH untuk terhubung ke dalam VM

    2. Buat kunci SSH untuk pengguna yang memerlukan koneksi SSH host-ke-host. Pengguna biasanya adalah Anda.

      $ ssh-keygen
    3. Saat muncul perintah, terima setelan default dengan menekan enter.

    4. Perbarui metadata VM utama dengan informasi tentang kunci SSH untuk VM sekunder.

      $ gcloud compute instances add-metadata secondary-host-name \
           --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \
           --zone secondary-zone
    5. Berikan otorisasi pada VM utama ke dirinya sendiri

      $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. Di VM host sekunder:

    1. Gunakan SSH untuk terhubung ke dalam VM

    2. Buat kunci SSH untuk pengguna yang memerlukan koneksi SSH host-ke-host.

      $ ssh-keygen
    3. Update metadata VM sekunder dengan informasi tentang kunci SSH untuk VM utama.

      $ gcloud compute instances add-metadata primary-host-name \
            --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \
            --zone primary-zone
    4. Berikan otorisasi pada VM sekunder ke dirinya sendiri

      $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    5. Pastikan kunci SSH disiapkan dengan benar dengan membuka koneksi SSH dari sistem sekunder ke sistem utama.

      $ ssh primary-host-name
  3. Pada VM host utama, konfirmasi koneksi dengan membuka koneksi SSH ke VM host sekunder:

    $ ssh secondary-host-name

Mencadangkan database

Buat cadangan database Anda guna memulai logging database untuk replikasi sistem SAP HANA dan membuat titik pemulihan.

Jika Anda memiliki beberapa database tenant di konfigurasi MDC, cadangkan setiap database tenant.

Template Deployment Manager menggunakan /hanabackup/data/SID sebagai direktori pencadangan default.

Untuk membuat cadangan database SAP HANA baru:

  1. Di host utama, alihkan ke SID_LCadm. Bergantung pada image OS Anda, perintahnya mungkin berbeda.

    sudo -i -u SID_LCadm
  2. Buat cadangan database:

    • Untuk sistem container-database tunggal SAP HANA:

      > hdbsql -t -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"

      Contoh berikut menunjukkan respons yang berhasil dari sistem SAP HANA baru:

      0 rows affected (overall time 18.416058 sec; server time 18.414209 sec)
    • Untuk sistem multi-database-container (MDC) SAP HANA, buat cadangan database sistem serta database tenant:

      > hdbsql -t -d SYSTEMDB -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"
      > hdbsql -t -d SID -u system -p SYSTEM_PASSWORD -i INST_NUM \
        "backup data using file ('full')"

    Contoh berikut menunjukkan respons yang berhasil dari sistem SAP HANA baru:

    0 rows affected (overall time 16.590498 sec; server time 16.588806 sec)
  3. Pastikan mode logging disetel ke normal:

    > hdbsql -u system -p SYSTEM_PASSWORD -i INST_NUM \
      "select value from "SYS"."M_INIFILE_CONTENTS" where key='log_mode'"

    Anda akan melihat:

    VALUE
    "normal"

Mengaktifkan replikasi sistem SAP HANA

Sebagai bagian dari pengaktifan replikasi sistem SAP HANA, Anda perlu menyalin data dan file kunci untuk penyimpanan aman SAP HANA di sistem file (SSFS) dari host utama ke host sekunder. Metode yang digunakan prosedur ini untuk menyalin file hanyalah salah satu metode yang dapat Anda gunakan.

  1. Pada host utama sesuai SID_LCadm, aktifkan replikasi sistem:

    > hdbnsutil -sr_enable --name=primary-host-name
  2. Pada host sekunder sesuai SID_LCadm, hentikan SAP HANA:

    > HDB stop
  3. Pada host utama, dengan menggunakan akun pengguna sama dengan yang Anda gunakan untuk menyiapkan SSH antara VM host, salin file kunci ke host sekunder. Untuk memudahkan, perintah berikut juga menentukan variabel lingkungan untuk ID akun pengguna Anda:

    $ sudo cp /usr/sap/SID/SYS/global/security/rsecssfs ~/rsecssfs -r
    $ myid=$(whoami)
    $ sudo chown ${myid} -R /home/"${myid}"/rsecssfs
    $ scp -r rsecssfs $(whoami)@secondary-host-name:rsecssfs
    $ rm -r /home/"${myid}"/rsecssfs
    
  4. Di host sekunder, sebagai pengguna yang sama dengan langkah sebelumnya:

    1. Ganti file kunci yang ada dalam direktori rsecssfs dengan file dari host utama, lalu setel izin file untuk membatasi akses:

      $ SAPSID=SID
      $ sudo rm /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT
      $ sudo rm /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY
      $ myid=$(whoami)
      $ sudo cp /home/"${myid}"/rsecssfs/data/SSFS_"${SAPSID}".DAT \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT
      $ sudo cp /home/"${myid}"/rsecssfs/key/SSFS_"${SAPSID}".KEY \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY
      $ sudo chown "${SAPSID,,}"adm:sapsys \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT
      $ sudo chown "${SAPSID,,}"adm:sapsys \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY
      $ sudo chmod 644 \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT
      $ sudo chmod 640 \
        /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY
    2. Bersihkan file di direktori beranda Anda.

      $ rm -r /home/"${myid}"/rsecssfs
    3. Sesuai SID_LCadm, daftarkan sistem SAP HANA sekunder dengan replikasi sistem SAP HANA:

      > hdbnsutil -sr_register --remoteHost=primary-host-name --remoteInstance=inst_num \
      --replicationMode=syncmem --operationMode=logreplay --name=secondary-host-name
    4. Sebagai SID_LCadm, mulai SAP HANA:

      > HDB start

Memvalidasi replikasi sistem

Pada host utama sebagai SID_LCadm, konfirmasi bahwa replikasi sistem SAP HANA aktif dengan menjalankan skrip python berikut:

$ python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py

Jika replikasi disiapkan dengan benar, di antara indikator lainnya, nilai berikut akan ditampilkan untuk layanan xsengine, nameserver, dan indexserver:

  • Secondary Active Status adalah YES.
  • Replication Status adalah ACTIVE.

Selain itu, overall system replication status menampilkan ACTIVE.

Mengonfigurasi dukungan failover Cloud Load Balancing

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

Mencadangkan alamat IP untuk IP virtual

Alamat IP virtual (VIP), yang terkadang disebut sebagai alamat IP mengambang, mengikuti sistem SAP HANA yang aktif. Load balancer mengarahkan traffic yang dikirim ke VIP ke VM yang saat ini menghosting sistem SAP HANA 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 HANA. 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: '2020-05-20T14:19:03.109-07:00'
    description: ''
    id: '8961491304398200872'
    kind: compute#address
    name: vip-for-hana-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-hana-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 master utama ke salah satunya dan VM host master 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
    hana-ha-ig-1  us-central1-a  example-network  example-project-123456 No       1
    hana-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: '2020-05-20T21:03:06.924-07:00'
    healthyThreshold: 2
    id: '4963070308818371477'
    kind: compute#healthCheck
    name: hana-health-check
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/hana-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 HANA 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 HANA, 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/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-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/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-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/hana-ha-ig-1
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-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/hana-ha-ig-2
    status:
     healthStatus:
     ‐ healthState: HEALTHY
       instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-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 HANA.

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

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 2020-06-13 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
    Jun 13 21:17:03 hana-ha-vm-1 systemd[1]: Starting PCS GUI and remote configuration interface...
    Jun 13 21:17:05 hana-ha-vm-1 systemd[1]: Started PCS GUI and remote configuration interface.
  7. Di file /etc/hosts, tambahkan nama lengkap host 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 hana-ha-vm-1.us-central1-a.c.example-project-123456.internal hana-ha-vm-1  # Added by Google
    10.0.0.41 hana-ha-vm-2.us-central1-c.c.example-project-123456.internal hana-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. Buat 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:

    1. # pcs cluster enable --all
    2. # 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 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@hana-ha-vm-2 ~]# pcs status
    Cluster name: hana-ha-cluster
    Stack: corosync
    Current DC: hana-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 hana-ha-vm-1
    
    2 nodes configured
    2 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
     STONITH-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
     STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-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

Mengaktifkan hook penyedia HA/DR SAP HANA

Red Hat merekomendasikan agar Anda mengaktifkan hook penyedia HA/DR SAP HANA, yang memungkinkan SAP HANA mengirimkan notifikasi untuk peristiwa tertentu dan meningkatkan deteksi kegagalan. Hook penyedia SAP HANA HA/DR memerlukan SAP HANA 2.0 SPS 03 atau versi yang lebih baru.

Di situs utama dan sekunder, selesaikan langkah-langkah berikut:

  1. Sebagai SID_LCadm, hentikan SAP HANA:

    > HDB stop

  1. Sebagai root atau SID_LCadm, buka file global.ini untuk mengedit:

    > vi /hana/shared/SID/global/hdb/custom/config/global.ini
  2. Tambahkan definisi berikut ke file global.ini:

    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /usr/share/SAPHanaSR/srHook
    execution_order = 1
    
    [ha_dr_provider_chksrv]
    provider = ChkSrv
    path = /usr/share/SAPHanaSR/srHook
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_saphanasr = info
    ha_dr_chksrv = info

  3. Sebagai root, buat file konfigurasi kustom di direktori /etc/sudoers.d dengan menjalankan perintah berikut. File konfigurasi baru ini memungkinkan pengguna SID_LCadm mengakses atribut node cluster saat metode hook srConnectionChanged() dipanggil.

    > sudo visudo -f /etc/sudoers.d/20-saphana
  4. Di file /etc/sudoers.d/20-saphana, tambahkan teks berikut:

    Ganti kode berikut:

    • SITE_A: nama situs server SAP HANA utama
    • SITE_B: nama situs server SAP HANA sekunder
    • SID_LC: SID harus ditentukan dalam huruf kecil
    Untuk melihat nama situs, Anda dapat menjalankan perintah crm_mon -A1 | grep site sebagai pengguna root, di server utama SAP HANA atau server sekunder.
    Cmnd_Alias SITEA_SOK = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SITEA_SFAIL = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SFAIL -t crm_config -s SAPHanaSR
    Cmnd_Alias SITEB_SOK = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SITEB_SFAIL = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SFAIL -t crm_config -s SAPHanaSR
    SID_LCadm ALL=(ALL) NOPASSWD: SITEA_SOK, SITEA_SFAIL, SITEB_SOK, SITEB_SFAIL
    Defaults!SITEA_SOK, SITEA_SFAIL, SITEB_SOK, SITEB_SFAIL !requiretty

  5. Di file /etc/sudoers Anda, pastikan teks berikut disertakan:

    #includedir /etc/sudoers.d

    Perhatikan bahwa # dalam teks ini adalah bagian dari sintaksis dan bukan berarti baris tersebut merupakan komentar.

  6. Sebagai SID_LCadm, mulai SAP HANA:

    > HDB start

  7. Pada host utama sebagai SID_LCadm, uji status yang dilaporkan oleh skrip hook:

    > cdtrace
    > awk '/ha_dr_SAPHanaSR.*crm_attribute/ { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*

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, mulai cluster:

    # pcs cluster start --all #start the cluster
  2. 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.

  3. 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.

  4. Tetapkan properti cluster di bawah ini:

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

    Anda dapat memeriksa setelan properti dengan pcs property list.

Membuat resource SAPHanaTopology

Resource SAPHanaTopology mendapatkan status dan konfigurasi Replikasi Sistem HANA pada node. Perintah ini juga memeriksa agen host SAP.

  1. Sebagai root pada salah satu host, buat resource SAPHanaTopology:

    # pcs resource create topology_resource_name SAPHanaTopology SID=SID \
       InstanceNumber=inst_num \
       op start timeout=600 \
       op stop timeout=300 \
       op monitor interval=10 timeout=600 \
       clone clone-max=2 clone-node-max=1 interleave=true
  2. Setelah resource dibuat, periksa konfigurasi. Tambahkan -clone ke nama resource untuk menyertakan informasi kumpulan clone di dalam respons:

    RHEL 8 dan yang lebih baru

    # pcs resource config topology_resource_name-clone

    RHEL 7

    # pcs resource show topology_resource_name-clone

    Anda akan melihat output yang mirip dengan berikut ini:

    Clone: SAPHanaTopology_HA1_22-clone
    Meta Attrs: clone-max=2 clone-node-max=1 interleave=true
    Resource: SAPHanaTopology_HA1_22 (class=ocf provider=heartbeat type=SAPHanaTopology)
     Attributes: InstanceNumber=22 SID=HA1
     Operations: methods interval=0s timeout=5 (SAPHanaTopology_HA1_22-methods-interval-0s)
                 monitor interval=10 timeout=600 (SAPHanaTopology_HA1_22-monitor-interval-10)
                 reload interval=0s timeout=5 (SAPHanaTopology_HA1_22-reload-interval-0s)
                 start interval=0s timeout=600 (SAPHanaTopology_HA1_22-start-interval-0s)
                 stop interval=0s timeout=300 (SAPHanaTopology_HA1_22-stop-interval-0s)

Anda juga dapat memeriksa atribut cluster dengan menggunakan perintah crm_mon -A1.

Membuat resource SAPHana

Agen resource SAPHana mengelola database yang dikonfigurasi untuk replikasi sistem SAP HANA.

Parameter dalam definisi resource SAPHana berikut bersifat opsional:

  • AUTOMATED_REGISTER, yang jika ditetapkan ke true, akan otomatis mendaftarkan data primer sebelumnya sebagai sekunder saat DUPLICATE_PRIMARY_TIMEOUT berakhir setelah pengambilalihan. Defaultnya adalah false.

    Untuk cluster SAP HANA HA multi-tingkat, jika Anda menggunakan versi yang lebih lama dari SAP HANA 2.0 SP03, tetapkan AUTOMATED_REGISTER ke false. Hal ini mencegah instance yang dipulihkan mencoba mendaftar secara mandiri untuk replikasi ke sistem HANA yang telah memiliki target replikasi yang telah dikonfigurasi. Untuk SAP HANA 2.0 SP03 atau yang lebih baru, Anda dapat menetapkan AUTOMATED_REGISTER ke true untuk konfigurasi SAP HANA yang menggunakan replikasi sistem multitingkat.

  • DUPLICATE_PRIMARY_TIMEOUT, yang menetapkan perbedaan waktu dalam detik antara dua stempel waktu utama jika terjadi situasi ganda. Defaultnya adalah 7200.

  • PREFER_SITE_TAKEOVER, yang menentukan apakah mulai ulang lokal dicoba sebelum failover dimulai. Defaultnya adalah false.

Untuk informasi tambahan tentang parameter ini, lihat Menginstal dan Mengonfigurasi Cluster Ketersediaan Tinggi Red Hat Enterprise Linux 7.6 (dan yang lebih baru) di Google Cloud. Perlu langganan Red Hat.

  1. Sebagai root pada salah satu host, buat resource SAP HANA:

    RHEL 8 dan yang lebih baru

    # pcs resource create sap_hana_resource_name SAPHana SID=SID \
    InstanceNumber=inst_num \
    PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \
    op start timeout=3600 \
    op stop timeout=3600 \
    op monitor interval=61 role="Slave" timeout=700 \
    op monitor interval=59 role="Master" timeout=700 \
    op promote timeout=3600 \
    op demote timeout=3600 \
    promotable meta notify=true clone-max=2 clone-node-max=1 interleave=true

    RHEL 7

    # pcs resource create sap_hana_resource_name SAPHana SID=SID \
    InstanceNumber=inst_num \
    PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \
    op start timeout=3600 \
    op stop timeout=3600 \
    op monitor interval=61 role="Slave" timeout=700 \
    op monitor interval=59 role="Master" timeout=700 \
    op promote timeout=3600 \
    op demote timeout=3600 \
    master meta notify=true clone-max=2 clone-node-max=1 interleave=true
  2. Periksa atribut resource yang dihasilkan:

    RHEL 8 dan yang lebih baru

    # pcs resource config sap_hana_resource_name

    RHEL 7

    # pcs resource show sap_hana_resource_name

    Anda akan melihat output yang mirip dengan contoh berikut:

     Resource: SAPHana_HA1_22 (class=ocf provider=heartbeat type=SAPHana)
      Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=22 PREFER_SITE_TAKEOVER=true SID=HA1
      Meta Attrs: clone-max=2 clone-node-max=1 interleave=true notify=true
      Operations: demote interval=0s timeout=3600 (SAPHana_HA1_22-demote-interval-0s)
                  methods interval=0s timeout=5 (SAPHana_HA1_22-methods-interval-0s)
                  monitor interval=61 role=Slave timeout=700 (SAPHana_HA1_22-monitor-interval-61)
                  monitor interval=59 role=Master timeout=700 (SAPHana_HA1_22-monitor-interval-59)
                  promote interval=0s timeout=3600 (SAPHana_HA1_22-promote-interval-0s)
                  reload interval=0s timeout=5 (SAPHana_HA1_22-reload-interval-0s)
                  start interval=0s timeout=3600 (SAPHana_HA1_22-start-interval-0s)
                  stop interval=0s timeout=3600 (SAPHana_HA1_22-stop-interval-0s)
  3. Setelah resource dimulai, periksa atribut node untuk melihat status database SAP HANA saat ini pada node:

    # crm_mon -A1

    Anda akan melihat output yang mirip dengan berikut ini:

    Stack: corosync
    Current DC: hana-ha-vm-2 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
    Last updated: Tue Jun 16 20:07:51 2020
    Last change: Tue Jun 16 20:07:26 2020 by root via crm_attribute on hana-ha-vm-1
    
    2 nodes configured
    6 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Active resources:
    
    STONITH-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-ha-vm-1
    Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22]
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
    
    Node Attributes:
    * Node hana-ha-vm-1:
       + hana_ha1_clone_state              : PROMOTED
       + hana_ha1_op_mode                  : logreplay
       + hana_ha1_remoteHost               : hana-ha-vm-2
       + hana_ha1_roles                    : 4:P:master1:master:worker:master
       + hana_ha1_site                     : hana-ha-vm-1
       + hana_ha1_srmode                   : syncmem
       + hana_ha1_sync_state               : PRIM
       + hana_ha1_version                  : 1.00.122.27.1568902538
       + hana_ha1_vhost                    : hana-ha-vm-1
       + lpa_ha1_lpt                       : 1592338046
       + master-SAPHana_HA1_22             : 150
    * Node hana-ha-vm-2:
       + hana_ha1_clone_state              : DEMOTED
       + hana_ha1_op_mode                  : logreplay
       + hana_ha1_remoteHost               : hana-ha-vm-1
       + hana_ha1_roles                    : 4:S:master1:master:worker:master
       + hana_ha1_site                     : hana-ha-vm-2
       + hana_ha1_srmode                   : syncmem
       + hana_ha1_sync_state               : SOK
       + hana_ha1_version                  : 1.00.122.27.1568902538
       + hana_ha1_vhost                    : hana-ha-vm-2
       + lpa_ha1_lpt                       : 30
       + master-SAPHana_HA1_22             : 100

Membuat resource alamat IP virtual

Anda perlu membuat resource cluster untuk VIP. Resource VIP dilokalkan ke sistem operasi utama dan tidak dapat dirutekan oleh host lain. Load balancer merutekan traffic yang dikirim ke VIP, lalu ke host backend berdasarkan health check.

Sebagai root pada salah satu host:

# pcs resource create resource_name \
  IPaddr2 ip="vip-address" nic=eth0 cidr_netmask=32 \
  op monitor interval=3600s timeout=60s

Nilai vip-address adalah alamat IP yang sama dengan yang Anda cadangkan sebelumnya dan ditentukan dalam aturan penerusan untuk frontend load balancer Anda. Ubah antarmuka jaringan sesuai konfigurasi Anda.

Membuat batasan

Anda membuat batasan untuk menentukan layanan mana yang harus dimulai terlebih dahulu, dan layanan mana yang perlu dijalankan bersama di host yang sama. Misalnya, alamat IP harus berada di host yang sama dengan instance HANA utama.

  1. Tentukan batasan urutan awal:

    RHEL 8 dan yang lebih baru

    # pcs constraint order topology_resource_name-clone \
    then sap_hana_resource_name-clone symmetrical=false

    RHEL 7

    # pcs constraint order topology_resource_name-clone \
    then sap_hana_resource_name-master symmetrical=false

    Spesifikasi symmetrical=false berarti bahwa batasan ini hanya berlaku untuk startup, bukan untuk shutdown.

    Namun, karena Anda menetapkan interleave=true untuk resource ini di langkah sebelumnya, proses dapat dimulai secara paralel. Dengan kata lain, Anda dapat memulai SAPHana pada node mana pun segera setelah SAPHanaTopology berjalan.

  2. Periksa batasan:

    # pcs constraint

    Anda akan melihat output yang mirip dengan berikut ini:

    Location Constraints:
     Resource: STONITH-hana-ha-vm-1
       Disabled on:
         Node: hana-ha-vm-1 (score:-INFINITY)
     Resource: STONITH-hana-ha-vm-2
       Disabled on:
         Node: hana-ha-vm-2 (score:-INFINITY)
    Ordering Constraints:
     start SAPHanaTopology_HA1_22-clone then start SAPHana_HA1_22-master (kind:Mandatory) (non-symmetrical)
    Colocation Constraints:
    Ticket Constraints:

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 utama cluster SAP HANA berjalan. 1. Sebagai root pada instance master di sistem utama dan sekunder, instal pemroses TCP. Petunjuk ini menginstal dan menggunakan HAProxy sebagai pemroses.

# yum install haproxy

  1. Buka file konfigurasi haproxy.cfg untuk mengedit:

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

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

      #---------------------------------------------------------------------
      # Health check listener port for SAP HANA 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 HANA HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
       bind *:60000
  2. Pada setiap host sebagai root, mulai layanan untuk mengonfirmasi bahwa konfigurasinya sudah benar:

    # systemctl start haproxy.service
  3. 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.

    Screenshot menampilkan `1/1` di kolom Healthy pada kedua grup instance, yang menunjukkan bahwa keduanya responsif.

  4. 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.

    Screenshot menampilkan `0/1` di kolom Healthy pada setiap grup instance, yang menunjukkan bahwa tidak ada pemroses aktif.

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

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
  2. Pastikan layanan health check aktif di host yang sama dengan instance SAP HANA master dan resource VIP Anda:

    # pcs status

    Jika resource health check tidak berada di host utama, 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-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-ha-vm-1
    Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22]
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
    rsc_vip_HA1_22 (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
    rsc_healthcheck_HA1    (service:haproxy):      Started hana-ha-vm-2
  3. Kelompokkan resource VIP dan health check:

    # pcs resource group add rsc-group-name healthcheck_resource_name vip_resource_name

    Dalam status cluster, bagian resource akan terlihat seperti contoh berikut:

    Full list of resources:
    
    STONITH-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-ha-vm-1
    Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
    Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22]
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
    Resource Group: g-primary
        rsc_healthcheck_HA1        (service:haproxy):      Started hana-ha-vm-1
        rsc_vip_HA1_22     (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
  4. Buat batasan yang menentukan lokasi grup baru pada node yang sama dengan instance SAP HANA master.

    RHEL 8 dan yang lebih baru

    # pcs constraint colocation add rsc-group-name with master sap_hana_resource_name-clone 4000

    RHEL 7

    # pcs constraint colocation add rsc-group-name with master sap_hana_resource_name-master 4000

    Batasan akhir Anda akan terlihat seperti contoh berikut:

    # pcs constraint
    Location Constraints:
     Resource: STONITH-hana-ha-vm-1
       Disabled on:
         Node: hana-ha-vm-1 (score:-INFINITY)
     Resource: STONITH-hana-ha-vm-2
       Disabled on:
         Node: hana-ha-vm-2 (score:-INFINITY)
    Ordering Constraints:
     start SAPHanaTopology_HA1_22-clone then start SAPHana_HA1_22-master (kind:Mandatory) (non-symmetrical)
    Colocation Constraints:
     g-primary with SAPHana_HA1_22-master (score:4000) (rsc-role:Started) (with-rsc-role:Master)
    Ticket Constraints:

Menguji failover

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

Cadangkan sistem sebelum pengujian.

Anda dapat menyimulasikan kegagalan dengan berbagai cara, termasuk:

  • HDB stop
  • HDB kill
  • 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

    Atau, jika beberapa antarmuka jaringan aktif, gunakan iptables di host sekunder:

    # iptables -A INPUT -s PRIMARY_CLUSTER_IP -j DROP; iptables -A OUTPUT -d PRIMARY_CLUSTER_IP -j DROP
  2. Hubungkan kembali ke host menggunakan SSH dan ubah ke pengguna root.

  3. Masukkan pcs status untuk mengonfirmasi bahwa host utama kini aktif di VM yang sebelumnya berisi host sekunder. Mulai ulang otomatis diaktifkan dalam cluster, sehingga host yang dihentikan akan memulai ulang dan mengambil peran host sekunder, seperti yang ditunjukkan dalam contoh berikut.

    Cluster name: hana-ha-cluster
    Stack: corosync
    Current DC: hana-ha-vm-2 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
    Last updated: Wed Jun 17 01:04:36 2020
    Last change: Wed Jun 17 01:03:58 2020 by root via crm_attribute on hana-ha-vm-2
    
    2 nodes configured
    8 resources configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
    
    STONITH-hana-ha-vm-1   (stonith:fence_gce):    Started hana-ha-vm-2
    STONITH-hana-ha-vm-2   (stonith:fence_gce):    Started hana-ha-vm-1
    
    Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22]
        Started: [ hana-ha-vm-1 hana-ha-vm-2  ]
    Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22]
        Masters: [ hana-ha-vm-2 ]
        Slaves: [ hana-ha-vm-1  ]
    Resource Group: g-primary
        rsc_healthcheck_HA1        (service:haproxy):      Started hana-ha-vm-2
        rsc_vip_HA1_22     (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-2
    
    Daemon Status:
     corosync: active/enabled
     pacemaker: active/enabled
     pcsd: active/enabled

Mengonfigurasi HANA Aktif/Aktif (Baca Diaktifkan)

Mulai dengan SAP HANA 2.0 SPS1, Anda dapat mengonfigurasi HANA Aktif/Aktif (Baca Diaktifkan) di cluster Pacemaker. Tindakan tersebut bersifat opsional.

Untuk mengonfigurasi HANA Aktif/Aktif (Baca Diaktifkan) di cluster Pacemaker, selesaikan langkah-langkah berikut.

Mengonfigurasi dukungan failover Cloud Load Balancing untuk host sekunder

Layanan Load Balancer Jaringan passthrough internal dengan dukungan failover mengarahkan traffic ke host sekunder di cluster SAP HANA berdasarkan layanan health check.

Guna mengonfigurasi dukungan failover untuk host sekunder, ikuti langkah-langkah berikut:

  1. Buka Cloud Shell:

    Buka Cloud Shell

  2. Cadangkan alamat IP untuk IP virtual dengan menjalankan perintah berikut.

    Alamat IP virtual (VIP) mengikuti sistem SAP HANA sekunder. Ini adalah alamat IP yang digunakan aplikasi untuk mengakses sistem SAP HANA sekunder Anda. Load balancer merutekan traffic yang dikirim ke VIP ke instance VM yang saat ini menghosting sistem sekunder.

    Jika Anda menghilangkan flag --addresses dalam perintah berikut, alamat IP dalam subnet yang ditentukan akan dipilih untuk Anda. Untuk informasi selengkapnya tentang reservasi IP statis, lihat Mencadangkan alamat IP internal statis.

    $ gcloud compute addresses create secondary-vip-name \
      --region cluster-region --subnet cluster-subnet \
      --addresses secondary-vip-address
  3. Buat health check Compute Engine dengan menjalankan perintah berikut.

    Untuk port yang digunakan oleh health check, pilih port yang berada dalam rentang pribadi, 49152-65535, untuk menghindari bentrok dengan layanan lain. Port harus berbeda dari yang dikonfigurasi untuk health check pada akses sistem utama HANA. 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 secondary-health-check-name \
      --port=secondary-healthcheck-port-num \
      --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \
      --healthy-threshold=2
  4. Konfigurasikan load balancer dan grup failover dengan menjalankan perintah berikut.

    Di sini, Anda membuat layanan backend tambahan dan menggunakan grup instance yang sama dengan yang Anda buat sebelumnya untuk layanan backend di balik Load Balancer TCP/UDP Internal untuk sistem utama SAP HANA Anda.

    1. Buat layanan backend load balancer:

      $ gcloud compute backend-services create secondary-backend-service-name \
        --load-balancing-scheme internal \
        --health-checks secondary-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 secondary-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 secondary-backend-service-name \
        --instance-group secondary-ig-name \
        --instance-group-zone secondary-zone \
        --failover \
        --region cluster-region
    4. Membuat aturan penerusan.

      Untuk flag alamat IP, tentukan alamat IP yang Anda cadangkan untuk VIP. Jika Anda perlu mengakses sistem sekunder HANA dari luar wilayah yang Anda tentukan dalam perintah berikut, sertakan flag --allow-global-access dalam definisi aturan penerusan.

      $ gcloud compute forwarding-rules create secondary-rule-name \
        --load-balancing-scheme internal \
        --address secondary-vip-name \
        --subnet cluster-subnet \
        --region cluster-region \
        --backend-service secondary-backend-service-name \
        --ports ALL

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

Mengaktifkan HANA Aktif/Aktif (Baca Diaktifkan)

Pada host sekunder, aktifkan Aktif/Aktif (baca diaktifkan) untuk replikasi sistem SAP HANA dengan mengikuti langkah-langkah berikut:

  1. Sebagai root, tempatkan cluster dalam mode pemeliharaan:

    $ pcs property set maintenance-mode=true

  2. Sebagai SID_LCadm, hentikan SAP HANA:

    > HDB stop
  3. Sebagai SID_LCadm, daftarkan ulang sistem sekunder HANA dengan replikasi sistem SAP HANA menggunakan mode operasi logreplay_readaccess:

    > hdbnsutil -sr_register --remoteHost=primary-host-name --remoteInstance=inst_num \
     --replicationMode=syncmem --operationMode=logreplay_readaccess --name=secondary-host-name
  4. Sebagai SID_LCadm, mulai SAP HANA:

    > HDB start
  5. Sebagai SID_LCadm, konfirmasi bahwa status sinkronisasi HANA adalah ACTIVE:

    > cdpy; python systemReplicationStatus.py --sapcontrol=1 | grep overall_replication_status

    Anda semestinya melihat output yang mirip dengan contoh berikut:

    overall_replication_status=ACTIVE

Mengonfigurasi Pacemaker

Konfigurasikan cluster HA Pacemaker Anda untuk Aktif/Aktif (diaktifkan baca) dengan menjalankan perintah berikut sebagai root:

  1. Siapkan pemroses untuk health check:

    1. Salin dan ganti nama file konfigurasi haproxy.service default untuk menjadikannya menjadi file template bagi beberapa instance haproxy:

      # cp /usr/lib/systemd/system/haproxy.service \
           /etc/systemd/system/haproxy@.service
    2. Edit bagian [Unit] dan [Service] di file haproxy@.service untuk menyertakan parameter instance %i, seperti ditunjukkan dalam contoh berikut:

      RHEL 7

      [Unit]
      Description=HAProxy Load Balancer %i
      After=network-online.target

      [Service] EnvironmentFile=/etc/sysconfig/haproxy ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy-%i.cfg -p /run/haproxy-%i.pid $OPTIONS ...

      RHEL 8

      [Unit]
      Description=HAProxy Load Balancer %i
      After=network-online.target
      Wants=network-online.target

      [Service] Environment="CONFIG=/etc/haproxy/haproxy-%i.cfg" "PIDFILE=/run/haproxy-%i.pid" ...

      Untuk mengetahui informasi selengkapnya dari Red Hat tentang template unit systemd, lihat Bekerja dengan unit instance.

    3. Buat file konfigurasi haproxy.cfg untuk sistem utama SAP HANA Anda. Contoh:

      # vi /etc/haproxy/haproxy-primary.cfg
    4. Di file konfigurasi haproxy-primary.cfg untuk sistem utama SAP HANA, masukkan konfigurasi berikut dan ganti healthcheck-port-num dengan nomor port yang Anda tentukan saat membuat healthcheck Compute Engine untuk sistem utama HANA sebelumnya:

      global
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy-%i.pid
        user        haproxy
        group       haproxy
        daemon
      defaults
        mode                    tcp
        log                     global
        option                  dontlognull
        option                  redispatch
        retries                 3
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout check           10s
        maxconn                 3000
      
      # Listener for SAP healthcheck
      listen healthcheck
        bind *:healthcheck-port-num
    5. Buat file konfigurasi haproxy.cfg untuk sistem sekunder SAP HANA Anda. Contoh:

      # vi /etc/haproxy/haproxy-secondary.cfg
    6. Di file konfigurasi haproxy-secondary.cfg untuk sistem sekunder SAP HANA, masukkan konfigurasi berikut dan ganti secondary-healthcheck-port-num dengan nomor port yang Anda tentukan saat membuat health check Compute Engine untuk sistem sekunder HANA sebelumnya:

      global
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy-%i.pid
        user        haproxy
        group       haproxy
        daemon
      defaults
        mode                    tcp
        log                     global
        option                  dontlognull
        option                  redispatch
        retries                 3
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout check           10s
        maxconn                 3000
      
      # Listener for SAP healthcheck
      listen healthcheck
        bind *:secondary-healthcheck-port-num
    7. Hapus konfigurasi pemroses yang ada dari /etc/haproxy/haproxy.cfg:

      #---------------------------------------------------------------------
      # Health check listener port for SAP HANA HA cluster
      #---------------------------------------------------------------------
      listen healthcheck
        bind *:healthcheck-port-num
    8. Muat ulang layanan systemd untuk memuat perubahan:

      # systemctl daemon-reload
    9. Pastikan kedua layanan haproxy disiapkan dengan benar:

      # systemctl start haproxy@primary
      # systemctl start haproxy@secondary
      
      # systemctl status haproxy@primary
      # systemctl status haproxy@secondary

      Status yang ditampilkan akan menampilkan haproxy@primary.service dan haproxy@secondary.service sebagai active (running). Berikut adalah contoh output untuk haproxy@primary.service:

      ● haproxy@primary.service - Cluster Controlled haproxy@primary
        Loaded: loaded (/etc/systemd/system/haproxy@.service; disabled; vendor preset: disabled)
        Drop-In: /run/systemd/system/haproxy@primary.service.d
                 └─50-pacemaker.conf
        Active: active (running) since Fri 2022-10-07 23:36:09 UTC; 1h 13min ago
      Main PID: 21064 (haproxy-systemd)
        CGroup: /system.slice/system-haproxy.slice/haproxy@primary.service
                ├─21064 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy-primary.cfg -p /run/hapro...
                ├─21066 /usr/sbin/haproxy -f /etc/haproxy/haproxy-primary.cfg -p /run/haproxy-primary.pid -...
                └─21067 /usr/sbin/haproxy -f /etc/haproxy/haproxy-primary.cfg -p /run/haproxy-primary.pid -...
      
      Oct 07 23:36:09 hana-ha-vm-1 systemd[1]: Started Cluster Controlled haproxy@primary.
    10. Di Cloud Shell, setelah menunggu beberapa detik hingga health check mendeteksi pemroses, periksa kondisi grup instance backend Anda di layanan backend utama dan sekunder:

      $ gcloud compute backend-services get-health backend-service-name \
        --region cluster-region
      $ gcloud compute backend-services get-health secondary-backend-service-name \
        --region cluster-region

      Anda akan melihat output seperti berikut ini yang menunjukkan VM yang sedang Anda kerjakan, healthState adalah HEALTHY:

      ---
      backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1
      status:
      healthStatus:
      ‐ healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1
        ipAddress: 10.0.0.35
        port: 80
      kind: compute#backendServiceGroupHealth
      
    11. Hentikan kedua layanan agar Pacemaker dapat mengelola layanan:

      # systemctl stop haproxy@primary
      # systemctl stop haproxy@secondary
    12. Ulangi langkah sebelumnya pada setiap host di cluster.

  2. Buat resource IP cluster lokal untuk alamat VIP yang Anda cadangkan untuk sistem sekunder:

    # pcs resource create secondary_vip_resource_name \
      IPaddr2 ip="secondary-vip-address" nic=eth0 cidr_netmask=32 \
      op monitor interval=3600s timeout=60s
  3. Siapkan layanan health check helper dengan menjalankan perintah berikut.

    Load balancer menggunakan pemroses pada port health check setiap host untuk menentukan tempat instance sekunder cluster SAP HANA berjalan.

    1. Untuk mengelola pemroses di cluster, Anda harus membuat resource untuk pemroses:

      1. Hapus resource untuk layanan health check untuk sistem utama HANA:

        # pcs resource delete healthcheck_resource_name --force
      2. Tambahkan resource baru untuk layanan health check untuk sistem utama HANA:

        # pcs resource create primary_healthcheck_resource_name \
         service:haproxy@primary op monitor interval=10s timeout=20s
      3. Tambahkan resource baru untuk layanan health check untuk sistem sekunder HANA:

        # pcs resource create secondary_healthcheck_resource_name \
         service:haproxy@secondary op monitor interval=10s timeout=20s
    2. Kelompokkan resource VIP dan layanan health check helper

      1. Tambahkan resource health check baru ke grup resource yang ada untuk resource VIP utama:

        # pcs resource group add rsc-group-name primary_healthcheck_resource_name \
         --before vip_resource_name
      2. Tambahkan grup resource baru untuk mengelompokkan resource layanan VIP dan health check helper untuk sistem sekunder HANA:

        # pcs resource group add secondary-rsc-group-name \
         secondary_healthcheck_resource_name secondary_vip_resource_name
  4. Buat dua batasan lokasi dengan menjalankan perintah berikut:

    Batasan ini berfungsi untuk memastikan bahwa grup resource VIP sekunder ditempatkan pada node cluster yang benar:

    # pcs constraint location secondary-rsc-group-name rule score=INFINITY \
      hana_sid_sync_state eq SOK and hana_sid_roles eq 4:S:master1:master:worker:master
    # pcs constraint location secondary-rsc-group-name rule score=2000 \
      hana_sid_sync_state eq PRIM and hana_sid_roles eq 4:P:master1:master:worker:master
  5. Keluar dari mode pemeliharaan cluster:

    # pcs property set maintenance-mode=false
  6. Periksa status cluster:

    # pcs status

    Contoh berikut menunjukkan status cluster aktif yang dikonfigurasi dengan benar untuk replikasi sistem SAP HANA dengan Aktif/Aktif (baca diaktifkan). Anda akan melihat grup resource tambahan untuk resource VIP sistem sekunder. Dalam contoh berikut, nama grup resource tersebut adalah g-secondary.

    Cluster name: hacluster
      Stack: corosync
      Current DC: hana-ha-vm-1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
      Last updated: Sat Oct  8 00:37:08 2022
      Last change: Sat Oct  8 00:36:57 2022 by root via crm_attribute on hana-test-2
    
      2 nodes configured
      10 resource instances configured
    
    Online: [ hana-ha-vm-1 hana-ha-vm-2 ]
    
    Full list of resources:
      STONITH-hana-ha-vm-1    (stonith:fence_gce):    Started hana-ha-vm-2
      STONITH-hana-ha-vm-2    (stonith:fence_gce):    Started hana-ha-vm-1
      Resource Group: g-primary
        rsc_healthcheck_HA1-primary        (service:haproxy@primary):      Started hana-ha-vm-1
        rsc_vip_HA1_00     (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-1
      Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]
        Started: [ hana-ha-vm-1 hana-ha-vm-2 ]
      Master/Slave Set: SAPHana_HA1_00-master [SAPHana_HA1_00]
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
      Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
        Masters: [ hana-ha-vm-1 ]
        Slaves: [ hana-ha-vm-2 ]
      Resource Group: g-secondary
        rsc_healthcheck_HA1-secondary        (service:haproxy@secondary):      Started hana-ha-vm-2
        rsc_vip_HA1_00-secondary     (ocf::heartbeat:IPaddr2):       Started hana-ha-vm-2
    

Mengevaluasi workload SAP HANA Anda

Untuk mengotomatiskan pemeriksaan validasi berkelanjutan pada workload ketersediaan tinggi SAP HANA yang berjalan di Google Cloud, Anda dapat menggunakan Workload Manager.

Dengan Workload Manager, Anda dapat memindai dan mengevaluasi workload ketersediaan tinggi SAP HANA Anda secara otomatis berdasarkan praktik terbaik dari vendor SAP, Google Cloud, dan OS. Hal ini membantu meningkatkan kualitas, performa, dan keandalan workload Anda.

Untuk mengetahui informasi tentang praktik terbaik yang didukung Workload Manager untuk mengevaluasi workload ketersediaan tinggi SAP HANA yang berjalan di Google Cloud, lihat Praktik terbaik Workload Manager untuk SAP. Untuk mengetahui informasi tentang cara membuat dan menjalankan evaluasi menggunakan Workload Manager, lihat Membuat dan menjalankan evaluasi.

Pemecahan masalah

Guina memecahkan masalah konfigurasi ketersediaan tinggi untuk SAP HANA 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.

Dukungan

Untuk masalah terkait infrastruktur atau layanan Google Cloud, hubungi Layanan Pelanggan. Anda dapat menemukan informasi kontak di halaman Ringkasan Dukungan di Konsol Google Cloud. Jika Layanan Pelanggan menentukan bahwa ada masalah dalam sistem SAP, Anda akan dirujuk ke Dukungan SAP.

Untuk masalah terkait produk SAP, catat permintaan dukungan Anda ke dalam log dengan dukungan SAP. SAP mengevaluasi tiket dukungan dan, jika tampaknya merupakan masalah infrastruktur Google Cloud, SAP akan mentransfer tiket tersebut ke komponen Google Cloud yang sesuai dalam sistemnya: BC-OP-LNX-GOOGLE atau BC-OP-NT-GOOGLE.

Persyaratan dukungan

Sebelum dapat menerima dukungan untuk sistem SAP serta infrastruktur dan layanan Google Cloud yang digunakannya, Anda harus memenuhi persyaratan paket dukungan minimum.

Guna mengetahui informasi selengkapnya tentang persyaratan dukungan minimum untuk SAP di Google Cloud, lihat:

Menghubungkan ke SAP HANA

Jika VM host tidak memiliki alamat IP eksternal untuk SAP HANA, Anda hanya dapat terhubung ke instance SAP HANA melalui instance bastion menggunakan SSH atau melalui server Windows melalui SAP HANA Studio.

  • Untuk terhubung ke SAP HANA melalui instance bastion, hubungkan ke bastion host, lalu ke instance SAP HANA dengan menggunakan klien SSH pilihan Anda.

  • Untuk terhubung ke database SAP HANA melalui SAP HANA Studio, gunakan klien desktop jarak jauh untuk terhubung ke instance Windows Server. Setelah terhubung, instal SAP HANA Studio secara manual dan akses database SAP HANA Anda.

Tugas pascadeployment

Setelah Anda menyelesaikan deployment, selesaikan dengan langkah-langkah berikut:

  1. Ubah sandi sementara untuk administrator sistem dan superuser database SAP HANA. Contoh:

    sudo passwd SID_LCadm

    Untuk informasi dari SAP tentang cara mengubah sandi, lihat Mereset Sandi Pengguna SISTEM Database Sistem.

  2. Sebelum menggunakan instance SAP HANA, konfigurasikan dan cadangkan database SAP HANA baru Anda.

  3. Jika sistem SAP HANA Anda di-deploy pada antarmuka jaringan VirtIO, sebaiknya pastikan bahwa nilai parameter TCP /proc/sys/net/ipv4/tcp_limit_output_bytes ditetapkan ke 1048576. Modifikasi ini membantu meningkatkan throughput jaringan secara keseluruhan pada antarmuka jaringan VirtIO tanpa memengaruhi latensi jaringan.

Untuk informasi selengkapnya, lihat:

Langkah berikutnya

Lihat referensi berikut untuk informasi selengkapnya: