Panduan konfigurasi manual cluster dengan ketersediaan tinggi (HA) untuk SAP NetWeaver di RHEL

Panduan ini menunjukkan cara men-deploy dan mengonfigurasi cluster ketersediaan tinggi (HA) Red Hat Enterprise Linux (RHEL) yang dioptimalkan untuk performa untuk sistem SAP NetWeaver.

Panduan ini mencakup langkah-langkah untuk:

  • Mengonfigurasi Load Balancer Jaringan passthrough internal untuk mengalihkan traffic jika terjadi kegagalan.
  • Mengonfigurasi cluster Pacemaker di RHEL untuk mengelola sistem SAP dan resource lainnya selama failover.

Panduan ini juga mencakup langkah-langkah untuk mengonfigurasi sistem SAP NetWeaver untuk HA, tetapi lihat dokumentasi SAP untuk mendapatkan petunjuk pasti.

Untuk mengetahui informasi tentang cara men-deploy VM Compute Engine untuk SAP NetWeaver yang tidak spesifik untuk ketersediaan tinggi, baca panduan deployment SAP NetWeaver yang khusus untuk sistem operasi Anda.

Guna mengonfigurasi cluster HA untuk SAP NetWeaver di SUSE Linux Enterprise Server (SLES), lihat panduan konfigurasi manual cluster HA untuk SAP NetWeaver di SLES.

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

Sistem yang di-deploy oleh panduan ini

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

Ringkasan cluster Linux dengan ketersediaan tinggi untuk sistem SAP NetWeaver satu node

Cluster yang di-deploy mencakup fungsi dan fitur berikut:

  • Dua VM host, satu untuk instance ASCS yang aktif, dan satu untuk instance Replikator Antrean ENSA2 atau Server Replikasi Antrean ENSA1 (ENSA1). Instance ENSA2 dan ENSA1 disebut sebagai ERS.
  • Pengelola resource cluster ketersediaan tinggi Pacemaker.
  • Mekanisme pagar STONITH.
  • Mulai ulang otomatis instance yang gagal sebagai instance sekunder baru.
Panduan ini menyarankan penggunaan template Cloud Deployment Manager yang disediakan oleh Google Cloud untuk men-deploy mesin virtual (VM) Compute Engine yang memastikan bahwa VM memenuhi persyaratan dukungan SAP dan sesuai dengan praktik terbaik saat ini.

Agar dapat menggunakan Terraform untuk mengotomatiskan deployment sistem HA SAP NetWeaver, lihat Terraform: panduan konfigurasi cluster dengan ketersediaan tinggi (HA) untuk SAP NetWeaver di RHEL.

Prasyarat

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

Kecuali jika diperlukan untuk lingkungan Google Cloud, informasi dalam panduan ini konsisten dengan panduan terkait dari Red Hat dan SAP berikut:

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, koneksi masuk dari luar jaringan Google Cloud Anda akan diblokir. Untuk mengizinkan koneksi masuk, siapkan aturan firewall untuk VM Anda. Aturan firewall hanya mengatur koneksi masuk baru ke VM. Setelah koneksi dibuat dengan VM, traffic diizinkan di kedua arah melalui koneksi tersebut.

Anda dapat membuat aturan firewall untuk mengizinkan akses ke port yang ditentukan, atau untuk mengizinkan akses antar-VM di subnetwork yang sama.

Buat aturan firewall yang mengizinkan akses untuk hal-hal seperti:

  • Port default yang digunakan oleh SAP NetWeaver, seperti yang didokumentasikan dalam Port TCP/IP Semua Produk SAP.
  • Koneksi dari komputer atau lingkungan jaringan perusahaan Anda ke instance VM Compute Engine. Jika Anda tidak yakin alamat IP apa yang harus digunakan, hubungi admin jaringan perusahaan Anda.
  • Komunikasi antara VM dalam konfigurasi 3 tingkat, penambahan skala, atau ketersediaan tinggi. Misalnya, jika men-deploy sistem 3 tingkat, Anda harus memiliki minimal 2 VM di subnetwork: VM untuk SAP NetWeaver, dan VM lain untuk server database. Untuk mengaktifkan komunikasi antara dua VM, Anda harus membuat aturan firewall untuk mengizinkan traffic yang berasal dari subnetwork.
  • Health check Cloud Load Balancing. Untuk mengetahui informasi selengkapnya, lihat Membuat aturan firewall untuk health check.

Untuk membuat aturan firewall:

  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, pilih All instances in the network.
    • 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 subnet 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 tentukan tcp:PORT_NUMBER;.
  3. Klik Buat untuk membuat aturan firewall.

Men-deploy VM untuk SAP NetWeaver

Sebelum mulai mengonfigurasi cluster HA, Anda harus menentukan dan men-deploy instance VM yang akan berfungsi sebagai node utama dan sekunder di cluster HA Anda.

Untuk menentukan dan men-deploy VM, gunakan template Cloud Deployment Manager yang sama seperti yang digunakan untuk men-deploy VM bagi sistem SAP NetWeaver dalam Deployment VM otomatis untuk SAP NetWeaver di Linux singkat ini.

Namun, untuk men-deploy dua VM, Anda perlu menambahkan definisi untuk VM kedua ke file konfigurasi dengan menyalin dan menempelkan definisi VM 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 VM berhasil di-deploy, instal SAP NetWeaver dan tentukan serta konfigurasi cluster HA.

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

  1. Buka Cloud Shell.

    Buka Cloud Shell

  2. Download template file konfigurasi YAML, template.yaml, ke direktori kerja Anda:

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/template.yaml

  3. Jika ingin, ganti nama file template.yaml untuk mengidentifikasi konfigurasi yang ditentukannya. Contoh, nw-ha-rhel-8-4.yaml.

  4. Buka file konfigurasi YAML di editor kode Cloud Shell dengan mengklik ikon pensil () di sudut kanan atas jendela terminal Cloud Shell untuk meluncurkan editor.

  5. Dalam template file konfigurasi YAML, tentukan instance VM pertama. Anda menentukan instance VM kedua pada langkah berikutnya setelah tabel berikut.

    Tentukan nilai properti dengan mengganti tanda kurung dan kontennya dengan nilai untuk penginstalan Anda. Properti dijelaskan dalam tabel berikut. Untuk contoh file konfigurasi yang sudah selesai, lihat Contoh file konfigurasi YAML lengkap.

    Properti Jenis data Deskripsi
    name String Nama arbitrer yang mengidentifikasi resource deployment yang ditentukan oleh kumpulan properti berikut.
    type 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 untuk instance VM yang Anda tentukan. Tentukan nama yang berbeda dalam definisi VM utama dan sekunder. Pertimbangkan untuk menggunakan nama yang mengidentifikasi instance sebagai milik cluster ketersediaan tinggi yang sama.

    Panjang nama instance harus 13 karakter atau kurang dan ditentukan dalam huruf kecil, angka, atau tanda hubung. Gunakan nama yang unik dalam project Anda.

    instanceType String Jenis VM Compute Engine yang Anda butuhkan. Tentukan jenis instance yang sama untuk VM utama dan sekunder.

    Jika Anda memerlukan jenis VM kustom, tentukan jenis VM bawaan kecil dan, setelah deployment selesai, sesuaikan VM sesuai kebutuhan.

    zone String Zona Google Cloud untuk men-deploy instance VM yang Anda tentukan. Tentukan zona yang berbeda di region yang sama untuk definisi VM 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 NetWeaver. Untuk menentukan kelompok image, tambahkan awalan family/ ke nama kelompok tersebut. Sebagai contoh, family/rhel-8-4-sap-ha. Untuk daftar kelompok image yang tersedia, lihat halaman Images di Konsol Google Cloud.
    linuxImageProject String Project Google Cloud yang berisi image yang akan Anda gunakan. Project ini dapat berupa project Anda sendiri atau project image Google Cloud rhel-sap-cloud. Untuk mengetahui daftar project gambar Google Cloud, lihat halaman Images dalam dokumentasi Compute Engine.
    usrsapSize Bilangan Bulat Ukuran disk /usr/sap. Ukuran minimum adalah 8 GB.
    sapmntSize Bilangan Bulat Ukuran disk /sapmnt. Ukuran minimum adalah 8 GB.
    swapSize Bilangan Bulat Ukuran volume pertukaran. Ukuran minimumnya adalah 1 GB.
    networkTag String

    Opsional. Satu atau beberapa tag jaringan yang dipisahkan koma yang mewakili instance VM untuk tujuan firewall atau pemilihan rute.

    Untuk konfigurasi ketersediaan tinggi, tentukan tag jaringan yang akan digunakan untuk aturan firewall yang memungkinkan komunikasi antara node cluster dan tag jaringan untuk digunakan dalam aturan firewall yang memungkinkan health check Cloud Load Balancing untuk mengakses node cluster.

    Jika Anda menentukan publicIP: No dan tidak menentukan tag jaringan, pastikan untuk menyediakan sarana akses lain ke internet.

    serviceAccount String

    Opsional. Menentukan akun layanan kustom yang akan digunakan untuk VM yang di-deploy. Akun layanan harus menyertakan izin yang diperlukan selama deployment guna mengonfigurasi VM untuk SAP.

    Jika serviceAccount tidak ditentukan, akun layanan Compute Engine default akan digunakan.

    Tentukan alamat akun layanan lengkap. Sebagai contoh, sap-ha-example@example-project-123456.

    publicIP Boolean Opsional. Menentukan apakah alamat IP publik ditambahkan ke instance VM Anda atau tidak. Nilai defaultnya adalah Yes.
    sap_deployment_debug Boolean Opsional. Jika nilai ini disetel ke Yes, deployment akan menghasilkan log deployment panjang. Jangan aktifkan setelan ini kecuali jika engineer dukungan Google meminta Anda mengaktifkan proses debug.
  6. Dalam file konfigurasi YAML, buat definisi VM kedua dengan menyalin definisi VM pertama dan menempelkan salinan setelah definisi pertama. Sebagai contoh, lihat Contoh file konfigurasi YAML lengkap.

  7. Dalam definisi VM kedua, tentukan nilai yang berbeda untuk properti berikut dari yang Anda tetapkan dalam definisi pertama:

    • name
    • instanceName
    • zone
  8. Buat instance VM:

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

    dengan:

    • DEPLOYMENT_NAME merepresentasikan nama deployment Anda.
    • TEMPLATE_NAME merepresentasikan nama file konfigurasi YAML Anda.

    Perintah sebelumnya memanggil Deployment Manager, yang men-deploy VM sesuai dengan spesifikasi dalam file konfigurasi YAML.

    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 YAML lengkap

Contoh berikut menunjukkan file konfigurasi YAML lengkap yang men-deploy dua instance VM untuk konfigurasi HA bagi SAP NetWeaver dengan menggunakan template Deployment Manager versi terbaru. Contoh ini menghilangkan komentar yang ada di template saat Anda pertama kali mendownloadnya.

File ini berisi definisi dua resource untuk di-deploy: sap_nw_node_1 dan sap_nw_node_2. Setiap definisi resource berisi definisi untuk VM.

Definisi resource sap_nw_node_2 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 dan serviceAccount berasal dari bagian Opsi Lanjutan dalam template file konfigurasi.

resources:
- name: sap_nw_node_1
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/sap_nw.py
  properties:
    instanceName: nw-ha-vm-1
    instanceType: n2-standard-4
    zone: us-central1-b
    subnetwork: example-sub-network-sap
    linuxImage: family/rhel-8-4-sap-ha
    linuxImageProject: rhel-sap-cloud
    usrsapSize: 15
sapmntSize: 15 swapSize: 24 networkTag: cluster-ntwk-tag,allow-health-check serviceAccount: limited-roles@example-project-123456. - name: sap_nw_node_2 type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_nw/sap_nw.py properties: instanceName: nw-ha-vm-2 instanceType: n2-standard-4 zone: us-central1-c subnetwork: example-sub-network-sap linuxImage: family/rhel-8-4-sap-ha linuxImageProject: rhel-sap-cloud usrsapSize: 15
sapmntSize: 15 swapSize: 24 networkTag: cluster-ntwk-tag,allow-health-check serviceAccount: limited-roles@example-project-123456.

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 akses antara node cluster, VM host lainnya di cluster HA
  • Health check yang digunakan oleh Cloud Load Balancing, seperti yang dijelaskan pada langkah selanjutnya, Membuat aturan firewall untuk health check.

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

Sebelum Anda menginstal SAP NetWeaver atau mulai mengonfigurasi cluster dengan ketersediaan tinggi (HA), pastikan bahwa VM telah di-deploy dengan benar dengan memeriksa log dan pemetaan penyimpanan OS.

Memeriksa log

  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 Kuota IAM & Admin, tingkatkan kuota yang tidak memenuhi persyaratan SAP NetWeaver yang tercantum dalam Panduan perencanaan SAP NetWeaver.

      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

  1. Setelah instance VM di-deploy, hubungkan ke VM menggunakan ssh.

    1. Jika Anda belum melakukannya, buat aturan firewall untuk mengizinkan koneksi SSH pada port 22.
    2. Buka halaman Instance VM.

      Buka VM Instance

    3. Hubungkan ke setiap instance VM dengan mengeklik tombol SSH pada entri untuk setiap instance VM, atau Anda dapat menggunakan metode SSH pilihan Anda.

      Tombol SSH di halaman instance VM Compute Engine.

  2. Tampilkan sistem file:

    ~> df -h

    Pastikan Anda melihat output yang mirip dengan berikut ini:

    Filesystem                 Size  Used Avail Use% Mounted on
    devtmpfs                    32G  8.0K   32G   1% /dev
    tmpfs                       48G     0   48G   0% /dev/shm
    tmpfs                       32G  402M   32G   2% /run
    tmpfs                       32G     0   32G   0% /sys/fs/cgroup
    /dev/sda3                   30G  3.4G   27G  12% /
    /dev/sda2                   20M  3.7M   17M  19% /boot/efi
    /dev/mapper/vg_usrsap-vol   15G   48M   15G   1% /usr/sap
    /dev/mapper/vg_sapmnt-vol 15G 48M 15G 1% /sapmnt tmpfs 6.3G 0 6.3G 0% /run/user/1002 tmpfs 6.3G 0 6.3G 0% /run/user/0
  3. Pastikan ruang pertukaran telah dibuat:

    ~> cat /proc/meminfo | grep Swap

    Anda akan melihat hasil yang mirip dengan contoh berikut:

    SwapCached:            0 kB
    SwapTotal:      25161724 kB
    SwapFree:       25161724 kB

Jika salah satu langkah validasi menunjukkan bahwa penginstalan gagal:

  1. Perbaiki error tersebut.
  2. Di halaman Deployments, hapus deployment untuk membersihkan VM dan persistent disk dari penginstalan yang gagal.
  3. Jalankan kembali deployment Anda.

Mengaktifkan komunikasi back-end load balancer antara VM

Setelah Anda mengonfirmasi bahwa VM berhasil di-deploy, aktifkan komunikasi backend antara VM yang akan berfungsi sebagai node di cluster HA Anda.

Anda dapat mengaktifkan komunikasi backend antara VM dengan mengubah konfigurasi google-guest-agent, yang disertakan dalam lingkungan tamu Linux untuk semua image publik Linux yang disediakan oleh Google Cloud.

Untuk mengaktifkan komunikasi back-end load balancer, lakukan langkah-langkah berikut pada setiap VM yang merupakan bagian dari cluster Anda:

  1. Hentikan agen:

    sudo service google-guest-agent stop
  2. Buka atau buat file /etc/default/instance_configs.cfg untuk diedit. Contoh:

    sudo vi /etc/default/instance_configs.cfg
  3. Dalam file /etc/default/instance_configs.cfg, tentukan properti konfigurasi berikut seperti yang ditunjukkan. Jika bagian tersebut tidak ada, buat bagian tersebut. Secara khusus, pastikan properti target_instance_ips dan ip_forwarding disetel ke false:

    [IpForwarding]
    ethernet_proto_id = 66
    ip_aliases = true
    target_instance_ips = false
    
    [NetworkInterfaces]
    dhclient_script = /sbin/google-dhclient-script
    dhcp_command =
    ip_forwarding = false
    setup = true
    
  4. Mulai layanan agen tamu:

    sudo service google-guest-agent start

Konfigurasi health check load balancer memerlukan port target pemroses untuk health check dan penetapan IP virtual ke antarmuka. Untuk mengetahui informasi selengkapnya, lihat Menguji konfigurasi load balanvce.

Mengonfigurasi kunci SSH pada VM utama dan sekunder

Untuk mengizinkan file disalin antarhost di cluster HA, langkah-langkah di bagian ini akan membuat koneksi SSH root di antara dua host.

Template Deployment Manager yang disediakan Google Cloud akan menghasilkan kunci untuk Anda, tetapi Anda dapat menggantinya dengan kunci yang dibuat jika perlu.

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 mentransfer file dengan menggunakan metode lain, seperti:

  • Transfer file yang lebih kecil melalui workstation lokal menggunakan opsi menu Upload file dan Download file Cloud Shell. Lihat Mengelola file dengan Cloud Shell.
  • Bertukar file menggunakan bucket Cloud Storage. Lihat Upload dan download.
  • Gunakan solusi penyimpanan file seperti Filestore atau NetApp Cloud Volumes Service untuk membuat folder bersama. Lihat Solusi berbagi file.

Untuk mengaktifkan koneksi SSH antara instance utama dan sekunder, ikuti langkah-langkah berikut. Langkah-langkah ini mengasumsikan bahwa Anda menggunakan kunci SSH yang dihasilkan oleh template Deployment Manager untuk SAP.

  1. Di VM host utama:

    1. Menghubungkan ke VM melalui SSH.

    2. Beralih ke root:

      $ sudo su -
    3. Konfirmasi bahwa kunci SSH ada:

      # ls -l /root/.ssh/

      Anda akan melihat file kunci id_rsa seperti pada contoh berikut:

      -rw-r--r-- 1 root root  569 May  4 23:07 authorized_keys
      -rw------- 1 root root 2459 May  4 23:07 id_rsa
      -rw-r--r-- 1 root root  569 May  4 23:07 id_rsa.pub
    4. Perbarui metadata VM utama dengan informasi tentang kunci SSH untuk VM sekunder.

      # gcloud compute instances add-metadata SECONDARY_VM_NAME \
      --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \
      --zone SECONDARY_VM_ZONE
    5. Pastikan kunci SSH disiapkan dengan benar dengan membuka koneksi SSH dari sistem utama ke sistem sekunder:

      # ssh SECONDARY_VM_NAME
  2. Di VM host sekunder:

    1. Gunakan SSH untuk terhubung ke VM

    2. Beralih ke root:

      $ sudo su -
    3. Konfirmasi bahwa kunci SSH ada:

      # ls -l /root/.ssh/

      Anda akan melihat file kunci id_rsa seperti pada contoh berikut:

      -rw-r--r-- 1 root root  569 May  4 23:07 authorized_keys
      -rw------- 1 root root 2459 May  4 23:07 id_rsa
      -rw-r--r-- 1 root root  569 May  4 23:07 id_rsa.pub
    4. Update metadata VM sekunder dengan informasi tentang kunci SSH untuk VM utama.

      # gcloud compute instances add-metadata PRIMARY_VM_NAME \
      --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \
      --zone PRIMARY_VM_ZONE
      # 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_VM_NAME

Menyiapkan penyimpanan file bersama dan mengonfigurasi direktori bersama

Anda perlu menyiapkan solusi berbagi file NFS yang menyediakan penyimpanan file bersama dengan ketersediaan tinggi yang dapat diakses oleh kedua node cluster HA Anda. Kemudian, buat direktori di kedua node yang dipetakan ke penyimpanan file bersama. Software cluster ini memastikan bahwa direktori yang sesuai hanya dipasang pada instance yang benar.

Menyiapkan solusi berbagi file tidak dibahas dalam panduan ini. Untuk mengetahui petunjuk cara menyiapkan sistem berbagi file, lihat petunjuk yang diberikan oleh vendor solusi yang Anda pilih. Jika memilih menggunakan Filestore untuk solusi berbagi file, sebaiknya gunakan Filestore tingkat Enterprise. Untuk mempelajari cara membuat instance Filestore, lihat Membuat instance.

Untuk informasi tentang solusi berbagi file yang tersedia di Google Cloud, lihat Opsi penyimpanan bersama untuk sistem HA SAP di Google Cloud.

Untuk mengonfigurasi direktori bersama:

  1. Jika Anda belum menyiapkan solusi penyimpanan file bersama NFS dengan ketersediaan tinggi, lakukan sekarang.

  2. instal penyimpanan bersama NFS di kedua server untuk konfigurasi awal.

    ~> sudo mkdir /mnt/nfs
    ~> sudo mount -t nfs NFS_PATH /mnt/nfs

    Ganti NFS_PATH dengan jalur ke solusi berbagi file NFS. Contoh, 10.49.153.26:/nfs_share_nw_ha.

  3. Dari salah satu server, buat direktori untuk sapmnt, direktori transpor pusat, dan direktori khusus instance. Jika Anda menggunakan stack Java, ganti "ASCS" dengan "SCS" sebelum menggunakan perintah berikut dan contoh lainnya:

    ~> sudo mkdir /mnt/nfs/sapmntSID
    ~> sudo mkdir /mnt/nfs/usrsap{trans,SIDASCSASCS_INSTANCE_NUMBER,SIDERSERS_INSTANCE_NUMBER}

    Jika Anda menggunakan penyiapan Simple Mount, jalankan perintah berikut:

    ~> sudo mkdir /mnt/nfs/sapmntSID
    ~> sudo mkdir /mnt/nfs/usrsap{trans,SID}

    Ganti kode berikut:

    • SID: ID sistem SAP (SID). Gunakan huruf besar untuk huruf apa pun. Contoh, AHA.
    • ASCS_INSTANCE_NUMBER: nomor instance sistem ASCS. Contoh, 00.
    • ERS_INSTANCE_NUMBER: nomor instance sistem ERS. Contoh, 10.
  4. Di kedua server, buat titik pemasangan yang diperlukan:

    ~> sudo mkdir -p /sapmnt/SID
    ~> sudo mkdir -p /usr/sap/trans
    ~> sudo mkdir -p /usr/sap/SID/ASCSASCS_INSTANCE_NUMBER
    ~> sudo mkdir -p /usr/sap/SID/ERSERS_INSTANCE_NUMBER

    Jika Anda menggunakan penyiapan Simple Mount, jalankan perintah berikut:

    ~> sudo mkdir -p /sapmnt/SID
    ~> sudo mkdir -p /usr/sap/trans
    ~> sudo mkdir -p /usr/sap/SID
  5. Konfigurasi autofs untuk memasang direktori file bersama yang umum saat direktori file pertama kali diakses. Pemasangan direktori ASCSASCS_INSTANCE_NUMBER dan ERSERS_INSTANCE_NUMBER dikelola oleh software cluster, yang akan Anda konfigurasi pada langkah berikutnya.

    Sesuaikan opsi NFS dalam perintah sesuai kebutuhan untuk solusi berbagi file Anda.

    Di kedua server, konfigurasikan autofs:

    ~> echo "/- /etc/auto.sap" | sudo tee -a /etc/auto.master
    ~> NFS_OPTS="-rw,relatime,vers=3,hard,proto=tcp,timeo=600,retrans=2,mountvers=3,mountport=2050,mountproto=tcp"
    ~> echo "/sapmnt/SID ${NFS_OPTS} NFS_PATH/sapmntSID" | sudo tee -a /etc/auto.sap
    ~> echo "/usr/sap/trans ${NFS_OPTS} NFS_PATH/usrsaptrans" | sudo tee -a /etc/auto.sap

    Untuk informasi tentang autofs, lihat autofs - cara kerjanya.

    Jika Anda menggunakan penyiapan Pemasangan Sederhana, jalankan perintah berikut:

    ~> echo "/- /etc/auto.sap" | sudo tee -a /etc/auto.master
    ~> NFS_OPTS="-rw,relatime,vers=3,hard,proto=tcp,timeo=600,retrans=2,mountvers=3,mountport=2050,mountproto=tcp"
    ~> echo "/sapmnt/SID ${NFS_OPTS}/sapmnt" | sudo tee -a /etc/auto.sap
    ~> echo "/usr/sap/trans ${NFS_OPTS}/usrsaptrans" | sudo tee -a /etc/auto.sap
    ~> echo "/usr/sap/SID  ${NFS_OPTS}/usrsapSID" | sudo tee -a /etc/auto.sap
  6. Di kedua server, mulai layanan autofs:

    ~> sudo systemctl enable autofs
    ~> sudo systemctl restart autofs
    ~> sudo automount -v
  7. Picu autofs untuk memasang direktori bersama dengan mengakses setiap direktori menggunakan perintah cd. Contoh:

    ~> cd /sapmnt/SID
    ~> cd /usr/sap/trans
    

    Jika Anda menggunakan penyiapan Pemasangan Sederhana, jalankan perintah berikut:

    ~> cd /sapmnt/SID
    ~> cd /usr/sap/trans
    ~> cd /usr/sap/SID
  8. Setelah Anda mengakses semua direktori, berikan perintah df -Th untuk mengonfirmasi bahwa direktori telah terpasang.

    ~> df -Th | grep FILE_SHARE_NAME

    Ganti FILE_SHARE_NAME dengan nama solusi berbagi file NFS. Contoh, nfs_share_nw_ha.

    Anda akan melihat titik pemasangan dan direktori yang mirip dengan contoh berikut:

    10.49.153.26:/nfs_share_nw_ha              nfs      1007G   76M  956G   1% /mnt/nfs
    10.49.153.26:/nfs_share_nw_ha/usrsaptrans  nfs      1007G   76M  956G   1% /usr/sap/trans
    10.49.153.26:/nfs_share_nw_ha/sapmntAHA    nfs      1007G   76M  956G   1% /sapmnt/AHA

    Jika menggunakan penyiapan Pemasangan Sederhana, Anda akan melihat titik pemasangan dan direktori yang mirip dengan contoh berikut:

    10.49.153.26:/nfs_share_nw_ha              nfs      1007G   76M  956G   1% /mnt/nfs
    10.49.153.26:/nfs_share_nw_ha/usrsaptrans  nfs      1007G   76M  956G   1% /usr/sap/trans
    10.49.153.26:/nfs_share_nw_ha/sapmntAHA    nfs      1007G   76M  956G   1% /sapmnt/AHA
    10.49.153.26:/nfs_share_nw_ha/usrsapAHA   nfs      1007G   76M  956G   1% /usr/sap/AHA

Mengonfigurasi dukungan failover Cloud Load Balancing

Layanan Load Balancer Jaringan passthrough internal dengan dukungan failover akan merutekan traffic ASCS dan ERS ke instance aktif masing-masing dalam cluster SAP NetWeaver. Load Balancer Jaringan passthrough internal menggunakan alamat IP (VIP) virtual, layanan backend, grup instance, dan health check untuk mengarahkan traffic dengan tepat.

Mencadangkan alamat IP untuk IP virtual

Untuk cluster ketersediaan tinggi SAP NetWeaver, Anda perlu membuat dua VIP, yang terkadang disebut sebagai alamat IP mengambang. Satu VIP mengikuti instance SAP Central Services (SCS) yang aktif, sementara yang lain mengikuti instance Server Replikasi Antrean (ERS). Load balancing merutekan traffic yang dikirim ke setiap VIP ke VM yang saat ini menghosting instance aktif komponen ASCS atau ERS dari VIP.

  1. Buka Cloud Shell:

    Buka Cloud Shell

  2. Cadangkan alamat IP untuk IP virtual ASCS dan untuk VIP ERS. Untuk ASCS, alamat IP adalah alamat IP yang digunakan aplikasi untuk mengakses SAP NetWeaver. Untuk ERS, alamat IP adalah alamat IP yang digunakan untuk replikasi Server Antrean. Jika Anda menghapus flag --addresses, alamat IP dalam subnet yang ditentukan akan dipilih untuk Anda:

    ~ gcloud compute addresses create ASCS_VIP_NAME \
      --region CLUSTER_REGION --subnet CLUSTER_SUBNET \
      --addresses ASCS_VIP_ADDRESS
    
    ~ gcloud compute addresses create ERS_VIP_NAME \
      --region CLUSTER_REGION --subnet CLUSTER_SUBNET \
      --addresses ERS_VIP_ADDRESS

    Ganti kode berikut:

    • ASCS_VIP_NAME: menentukan nama untuk alamat IP virtual instance ASCS. Contoh: ascs-aha-vip
    • CLUSTER_REGION: menentukan region Google Cloud tempat cluster Anda berada. Misalnya, us-central1
    • CLUSTER_SUBNET: menentukan subnetwork yang digunakan dengan cluster Anda. Contoh: example-sub-network-sap
    • ASCS_VIP_ADDRESS: secara opsional, tentukan alamat IP untuk IP virtual ASCS dalam notasi CIDR. Contoh: 10.1.0.2
    • ERS_VIP_NAME: menentukan nama untuk alamat IP virtual instance ERS. Contoh: ers-aha-vip
    • ERS_VIP_ADDRESS: secara opsional, tentukan alamat IP untuk IP virtual ERS dalam notasi CIDR. Contoh: 10.1.0.4

    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.1.0.2
    addressType: INTERNAL
    creationTimestamp: '2022-04-04T15:04:25.872-07:00'
    description: ''
    id: '555067171183973766'
    kind: compute#address
    name: ascs-aha-vip
    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/ascs-aha-vip
    status: RESERVED
    subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-sub-network-sap

Tentukan nama host untuk alamat VIP di /etc/hosts

Tentukan nama host untuk setiap alamat VIP, lalu tambahkan alamat IP dan nama host untuk VM dan VIP ke file /etc/hosts di setiap VM.

Nama host VIP tidak dikenal di luar VM kecuali jika Anda juga menambahkannya ke layanan DNS. Menambahkan entri ini ke file /etc/hosts lokal akan melindungi cluster Anda dari gangguan apa pun terhadap layanan DNS.

Update Anda pada file /etc/hosts akan terlihat seperti contoh berikut:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.0.113 nw-ha-vm-2.us-central1-c.c.example-project-123456.internal nw-ha-vm-2
10.1.0.2   ascs-aha-vip
10.1.0.4   ers-aha-vip
10.1.0.114 nw-ha-vm-1.us-central1-b.c.example-project-123456.internal nw-ha-vm-1  # Added by Google
169.254.169.254 metadata.google.internal  # Added by Google

Membuat health check Cloud Load Balancing

Buat health check: satu untuk instance ASCS yang aktif dan satu untuk ERS yang aktif.

  1. Di Cloud Shell, buat health check. Untuk menghindari bentrok dengan layanan lain, tetapkan nomor port untuk instance ASCS dan ERS dalam rentang pribadi, 49152-65535. Nilai interval pemeriksaan dan waktu tunggu dalam perintah berikut sedikit lebih panjang daripada nilai defaultnya, sehingga dapat meningkatkan toleransi failover selama peristiwa migrasi langsung Compute Engine. Anda dapat menyesuaikan nilainya, jika perlu:

    1. ~ gcloud compute health-checks create tcp ASCS_HEALTH_CHECK_NAME \
      --port=ASCS_HEALTHCHECK_PORT_NUM --proxy-header=NONE --check-interval=10 --timeout=10 \
      --unhealthy-threshold=2 --healthy-threshold=2
    2. ~ gcloud compute health-checks create tcp ERS_HEALTH_CHECK_NAME \
      --port=ERS_HEALTHCHECK_PORT_NUM --proxy-header=NONE --check-interval=10 --timeout=10 \
      --unhealthy-threshold=2 --healthy-threshold=2
  2. Konfirmasi pembuatan setiap health check:

    ~ gcloud compute health-checks describe HEALTH_CHECK_NAME

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    checkIntervalSec: 10
    creationTimestamp: '2021-05-12T15:12:21.892-07:00'
    healthyThreshold: 2
    id: '1981070199800065066'
    kind: compute#healthCheck
    name: ascs-aha-health-check-name
    selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/scs-aha-health-check-name
    tcpHealthCheck:
      port: 60000
      portSpecification: USE_FIXED_PORT
      proxyHeader: NONE
    timeoutSec: 10
    type: TCP
    unhealthyThreshold: 2

Membuat aturan firewall untuk health check

Jika belum melakukannya, tentukan aturan firewall untuk port dalam rentang pribadi yang mengizinkan akses ke VM host Anda dari rentang IP yang digunakan oleh health check Cloud Load Balancing, 35.191.0.0/16 dan 130.211.0.0/22. Untuk mengetahui informasi selengkapnya tentang aturan firewall untuk load balancer, 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.

  2. Buat aturan firewall yang menggunakan tag jaringan 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:ASCS_HEALTHCHECK_PORT_NUM,tcp:ERS_HEALTHCHECK_PORT_NUM

    Contoh:

    gcloud compute firewall-rules create  nw-ha-cluster-health-checks \
    --network=example-network \
    --action=ALLOW \
    --direction=INGRESS \
    --source-ranges=35.191.0.0/16,130.211.0.0/22 \
    --target-tags=allow-health-check \
    --rules=tcp:60000,tcp:60010

Membuat grup instance Compute Engine

Anda perlu membuat grup instance di setiap zona yang berisi VM node cluster dan menambahkan VM di zona tersebut ke grup instance.

  1. Di Cloud Shell, buat grup instance utama dan tambahkan VM utama ke dalamnya:

    1. ~ gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE
    2. ~ gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \
      --zone=PRIMARY_ZONE \
      --instances=PRIMARY_VM_NAME
  2. Di Cloud Shell, buat grup instance sekunder dan tambahkan VM sekunder ke dalamnya:

    1. ~ gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE
    2. ~ gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \
      --zone=SECONDARY_ZONE \
      --instances=SECONDARY_VM_NAME
  3. 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
    sap-aha-primary-instance-group    us-central1-b  example-network-sap  example-project-123456  No       1
    sap-aha-secondary-instance-group  us-central1-c  example-network-sap  example-project-123456  No       1
    

Mengonfigurasi layanan backend

Membuat dua layanan backend, satu untuk ASCS dan satu untuk ERS. Tambahkan kedua grup instance ke setiap layanan backend, dan tetapkan grup instance yang berlawanan sebagai grup instance failover di setiap layanan backend. Terakhir, buat aturan penerusan dari VIP ke layanan backend.

  1. Di Cloud Shell, buat layanan backend dan grup failover untuk ASCS:

    1. Buat layanan backend untuk ASCS:

      ~ gcloud compute backend-services create ASCS_BACKEND_SERVICE_NAME \
         --load-balancing-scheme internal \
         --health-checks ASCS_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 ASCS:

      ~ gcloud compute backend-services add-backend ASCS_BACKEND_SERVICE_NAME \
        --instance-group PRIMARY_IG_NAME \
        --instance-group-zone PRIMARY_ZONE \
        --region CLUSTER_REGION
    3. Tambahkan grup instance sekunder sebagai grup instance failover untuk layanan backend ASCS:

      ~ gcloud compute backend-services add-backend ASCS_BACKEND_SERVICE_NAME \
        --instance-group SECONDARY_IG_NAME \
        --instance-group-zone SECONDARY_ZONE \
        --failover \
        --region CLUSTER_REGION
  2. Di Cloud Shell, buat layanan backend dan grup failover untuk ERS:

    1. Buat layanan backend untuk ERS:

      ~ gcloud compute backend-services create ERS_BACKEND_SERVICE_NAME \
      --load-balancing-scheme internal \
      --health-checks ERS_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 sekunder ke layanan backend ERS:

      ~ gcloud compute backend-services add-backend ERS_BACKEND_SERVICE_NAME \
        --instance-group SECONDARY_IG_NAME \
        --instance-group-zone SECONDARY_ZONE \
        --region CLUSTER_REGION
    3. Tambahkan grup instance utama sebagai grup instance failover untuk layanan backend ERS:

      ~ gcloud compute backend-services add-backend ERS_BACKEND_SERVICE_NAME \
        --instance-group PRIMARY_IG_NAME \
        --instance-group-zone PRIMARY_ZONE \
        --failover \
        --region CLUSTER_REGION
  3. Atau, pastikan bahwa layanan backend berisi grup instance seperti yang diharapkan:

    ~ gcloud compute backend-services describe BACKEND_SERVICE_NAME \
     --region=CLUSTER_REGION

    Anda akan melihat output yang mirip dengan contoh berikut untuk layanan backend ASCS. Untuk ERS, failover: true akan muncul pada grup instance utama:

    backends:
    - balancingMode: CONNECTION
      group: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instanceGroups/sap-aha-primary-instance-group
    - balancingMode: CONNECTION
      failover: true
      group: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group
    connectionDraining:
      drainingTimeoutSec: 0
    creationTimestamp: '2022-04-06T10:58:37.744-07:00'
    description: ''
    failoverPolicy:
      disableConnectionDrainOnFailover: true
      dropTrafficIfUnhealthy: true
      failoverRatio: 1.0
    fingerprint: s4qMEAyhrV0=
    healthChecks:
    - https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/ascs-aha-health-check-name
    id: '6695034709671438882'
    kind: compute#backendService
    loadBalancingScheme: INTERNAL
    name: ascs-aha-backend-service-name
    protocol: TCP
    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/backendServices/ascs-aha-backend-service-name
    sessionAffinity: NONE
    timeoutSec: 30
  4. Di Cloud Shell, buat aturan penerusan untuk layanan backend ASCS dan ERS:

    1. Buat aturan penerusan dari VIP ASCS ke layanan backend ASCS:

      ~ gcloud compute forwarding-rules create ASCS_FORWARDING_RULE_NAME \
      --load-balancing-scheme internal \
      --address ASCS_VIP_ADDRESS \
      --subnet CLUSTER_SUBNET \
      --region CLUSTER_REGION \
      --backend-service ASCS_BACKEND_SERVICE_NAME \
      --ports ALL
    2. Buat aturan penerusan dari VIP ERS ke layanan backend ERS:

      ~ gcloud compute forwarding-rules create ERS_FORWARDING_RULE_NAME \
      --load-balancing-scheme internal \
      --address ERS_VIP_ADDRESS \
      --subnet CLUSTER_SUBNET \
      --region CLUSTER_REGION \
      --backend-service ERS_BACKEND_SERVICE_NAME \
      --ports ALL

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 socat

  2. Di VM utama, tetapkan VIP ke kartu jaringan eth0 untuk sementara:

    ip addr add VIP_ADDRESS dev eth0
  3. Pada VM utama, mulai proses socat untuk memproses selama 60 detik pada port health check ASCS:

    $ timeout 60s socat - TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,fork

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

    ~ gcloud compute backend-services get-health ASCS_BACKEND_SERVICE_NAME \
      --region CLUSTER_REGION

    Anda akan melihat output yang mirip dengan contoh berikut untuk ASCS:

    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instanceGroups/sap-aha-primary-instance-group
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule
        forwardingRuleIp: 10.1.0.90
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instances/nw-ha-vm-1
        ipAddress: 10.1.0.89
        port: 80
      kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule
        forwardingRuleIp: 10.1.0.90
        healthState: UNHEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/nw-ha-vm-2
        ipAddress: 10.1.0.88
        port: 80
      kind: compute#backendServiceGroupHealth
  5. Menghapus VIP dari antarmuka eth0:

    ip addr del VIP_ADDRESS dev eth0
  6. Ulangi langkah-langkah untuk ERS, dengan mengganti nilai variabel ASCS dengan nilai ERS.

Menguji load balancer menggunakan port 22

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

Untuk menggunakan port 22 untuk sementara, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Health check Compute Engine:

    Buka Health checks

  2. Klik nama health check Anda.

  3. Klik Edit.

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

  5. Klik Simpan dan tunggu satu atau dua menit.

  6. Di Cloud Shell, setelah menunggu beberapa detik hingga health check mendeteksi pemroses, periksa kondisi grup instance backend 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-b/instanceGroups/sap-aha-primary-instance-group
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule
        forwardingRuleIp: 10.1.0.85
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-b/instances/nw-ha-vm-1
        ipAddress: 10.1.0.79
        port: 80
      kind: compute#backendServiceGroupHealth
    ---
    backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/sap-aha-secondary-instance-group
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/forwardingRules/scs-aha-forwarding-rule
        forwardingRuleIp: 10.1.0.85
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/nw-ha-vm-2
        ipAddress: 10.1.0.78
        port: 80
      kind: compute#backendServiceGroupHealth
  7. Setelah selesai, ubah nomor port health check kembali ke nomor port asli.

Menginstal pemroses untuk health check

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

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

Pada setiap host dalam cluster, instal pemroses dengan menyelesaikan langkah-langkah berikut:

  1. Sebagai root, instal pemroses TCP sederhana. Petunjuk ini menginstal dan menggunakan HAProxy sebagai pemroses.

    # yum install haproxy
  2. Salin dan ganti nama file konfigurasi haproxy.cfg default untuk menjadikannya file template bagi beberapa instance haproxy:

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

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

  4. Buat file konfigurasi haproxy.cfg untuk instance ASCS. Contoh:

    # vi /etc/haproxy/haproxy-SIDscs.cfg

    Ganti SID dengan ID sistem SAP (SID). Gunakan huruf besar untuk huruf apa pun. Contoh, AHA.

  5. Dalam file konfigurasi ASCS haproxy-SIDscs.cfg, sisipkan konfigurasi berikut dan ganti ASCS_HEALTHCHECK_PORT_NUM dengan nomor port yang Anda tentukan saat membuat health check Compute Engine untuk ASCS 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 *:ASCS_HEALTHCHECK_PORT_NUM
  6. Buat file konfigurasi haproxy.cfg untuk instance ERS. Contoh:

    # vi /etc/haproxy/haproxy-SIDers.cfg
  7. Dalam file konfigurasi ERS haproxy-SIDers.cfg, sisipkan konfigurasi berikut dan ganti ERS_HEALTHCHECK_PORT_NUM dengan nomor port yang Anda tentukan saat membuat health check Compute Engine untuk ERS 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 *:ERS_HEALTHCHECK_PORT_NUM
  8. Muat ulang layanan systemd:

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

     # systemctl start haproxy
     # systemctl status haproxy
     # systemctl | grep haproxy

    Status yang ditampilkan akan menampilkan haproxy.service sebagai active (running).

    ● haproxy.service - HAProxy Load Balancer
       Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)
       Active: active (running) since Sun 2022-04-10 16:48:10 UTC; 2 days ago
     Main PID: 1079 (haproxy)
        Tasks: 2 (limit: 100996)
       Memory: 5.1M
       CGroup: /system.slice/haproxy.service
               ├─1079 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
               └─1083 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
    
    Apr 10 16:48:10 dru-hanw-ascs systemd[1]: Starting HAProxy Load Balancer...
    Apr 10 16:48:10 dru-hanw-ascs systemd[1]: Started HAProxy Load Balancer.
  10. Ulangi langkah sebelumnya pada setiap host di cluster.

Menyiapkan Pacemaker

Prosedur berikut mengonfigurasi implementasi RHEL cluster Pacemaker di VM Compute Engine untuk SAP NetWeaver.

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

Untuk informasi dari SAP tentang penginstalan dan konfigurasi RHEL, lihat:

Mengonfigurasi paket cluster dan firewall OS yang diperlukan di kedua host

Sebagai root pada host utama dan sekunder, instal dan update paket cluster yang diperlukan, konfigurasikan hacluster, dan konfigurasikan layanan firewall OS.

  1. Instal paket cluster yang diperlukan berikut ini:

    # yum install pcs pacemaker
    # yum install fence-agents-gce
    # yum install resource-agents-gcp
    # yum install resource-agents-sap
    # yum install sap-cluster-connector
  2. Update paket yang diinstal:

    # yum update -y
  3. Setel sandi untuk pengguna hacluster, yang diinstal sebagai bagian dari paket cluster:

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

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

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

    # systemctl start pcsd.service
    # systemctl enable pcsd.service
  7. 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.

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_VM_NAME SECONDARY_VM_NAME

    RHEL 7

    # pcs cluster auth PRIMARY_VM_NAME SECONDARY_VM_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_VM_NAME SECONDARY_VM_NAME

    RHEL 7

    # pcs cluster setup --name CLUSTER_NAME PRIMARY_VM_NAME SECONDARY_VM_NAME

Mengupdate file konfigurasi Corosync

Langkah-langkah berikut akan menetapkan nilai cluster yang direkomendasikan untuk Corosync. Jika file konfigurasi Corosync, /etc/corosync/corosync.conf, belum ada atau kosong, Anda dapat menggunakan file contoh di direktori /etc/corosync/ sebagai dasar untuk konfigurasi Anda.

  1. Buka file corosync.conf untuk mengedit:

    # vi /etc/corosync/corosync.conf
  2. Di bagian totem file corosync.conf, tetapkan parameter dalam contoh kutipan berikut untuk nilai yang ditampilkan. Beberapa parameter mungkin sudah ditetapkan ke nilai yang benar:

    RHEL 8

    totem {
    ...
      transport: knet
      token: 20000
      token_retransmits_before_loss_const: 10
      join: 60
      max_messages: 20
    ...
    }

    RHEL 7

    totem {
    ...
      transport: udpu
      token: 20000
      token_retransmits_before_loss_const: 10
      join: 60
      max_messages: 20
    ...
    }
  3. Sinkronkan konfigurasi ke server kedua Anda:

    RHEL 8 dan yang lebih baru

    # pcs cluster sync corosync

    RHEL 7

    # pcs cluster sync
  4. Dari VM utama, aktifkan dan mulai cluster

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

    # corosync-cmapctl
  6. Periksa status cluster:

    # pcs status

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    Cluster name: nwha
    
    WARNINGS:
    No stonith devices and stonith-enabled is not false
    
    Cluster Summary:
    * Stack: corosync
    * Current DC: nw-ha-vm-2 (version 2.0.5-9.el8_4.3-ba59be7122) - partition with quorum
    * 2 nodes configured
    * 0 resource instances configured
    
    Node List:
    * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
    * No resources
    
    Daemon Status:
    corosync: active/enabled
    pacemaker: active/enabled
    pcsd: active/enabled

Mengonfigurasi resource cluster untuk infrastruktur

Anda perlu menentukan resource Pacemaker untuk infrastruktur cluster berikut:

  • Perangkat pagar, yang mencegah skenario split brain
  • Direktori ASCS dan ERS dalam sistem file bersama
  • Health check
  • Para VIP
  • Komponen ASCS dan ERS

Anda menentukan resource untuk perangkat pagar, sistem file bersama, health check, dan VIP terlebih dahulu. Kemudian Anda menginstal SAP NetWeaver. Setelah SAP NetWeaver diinstal, akhirnya Anda dapat menentukan resource cluster untuk komponen ASCS dan ERS.

Menyiapkan pagar

Anda dapat menyiapkan pagar dengan menentukan resource cluster dengan agen fence_gce untuk setiap VM host.

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

Membuat resource perangkat pagar

Untuk setiap VM dalam cluster, buat resource cluster untuk perangkat pagar agar cluster dapat memulai ulang VM. Perangkat pagar untuk VM harus berjalan pada VM yang berbeda, sehingga Anda mengonfigurasi lokasi resource cluster untuk dijalankan di VM apa pun, kecuali VM yang dapat dimulai ulang.

  1. Pada host utama sebagai root, buat resource cluster untuk perangkat pagar untuk VM utama:

    # pcs stonith create FENCING_RESOURCE_PRIMARY_VM fence_gce \
        port="PRIMARY_VM_NAME" \
        zone="PRIMARY_ZONE" \
        project="CLUSTER_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"
  2. Konfigurasikan lokasi perangkat pagar untuk VM utama sehingga hanya aktif di VM sekunder:

    # pcs constraint location FENCING_RESOURCE_PRIMARY_VM avoids PRIMARY_VM_NAME
  3. Pada host sekunder sebagai root, buat resource cluster untuk perangkat pagar untuk VM sekunder:

    # pcs stonith create FENCING_RESOURCE_SECONDARY_VM fence_gce \
        port="SECONDARY_VM_NAME" \
        zone="SECONDARY_ZONE" \
        project="CLUSTER_PROJECT_ID" \
        pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \
        op monitor interval="300s" timeout="120s" \
        op start interval="0" timeout="60s"
  4. Konfigurasikan lokasi perangkat pagar untuk VM sekunder sehingga perangkat tersebut hanya aktif di VM utama:

    # pcs constraint location FENCING_RESOURCE_SECONDARY_VM avoids SECONDARY_VM_NAME

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

Membuat resource sistem file

Tentukan resource cluster untuk direktori ASCS dan ERS dalam sistem file bersama.

  1. Konfigurasikan resource sistem file untuk direktori ASCS.

    # pcs resource create ASCS_FILE_SYSTEM_RESOURCE Filesystem \
        device="NFS_PATH/usrsapSIDASCSASCS_INSTANCE_NUMBER" \
        directory="/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER" \
        fstype=nfs force_unmount=safe \
        --group ASCS_RESOURCE_GROUP \
        op start interval=0 timeout=60 \
        op stop interval=0 timeout=120 \
        op monitor interval=200 timeout=40

    Ganti kode berikut:

    • ASCS_FILE_SYSTEM_RESOURCE: menentukan nama resource cluster untuk sistem file ASCS.
    • NFS_PATH: menentukan jalur direktori ke sistem file NFS.
    • SID: menentukan ID sistem (SID). Gunakan huruf besar untuk setiap huruf.
    • ASCS_INSTANCE_NUMBER: menentukan nomor instance ASCS.
    • ASCS_RESOURCE_GROUP: menentukan nama grup unik untuk resource cluster ASCS. Anda dapat memastikan keunikan dengan menggunakan konvensi seperti "SID_ASCSinstance_number_group". Contoh, nw8_ASCS00_group

      Karena grup belum ada, Pacemaker membuat grup sekarang. Saat membuat resource ASCS lainnya, Anda menambahkannya ke grup ini.

  2. Mengonfigurasi resource sistem file untuk direktori ERS.

    # pcs resource create ERS_FILE_SYSTEM_RESOURCE Filesystem \
        device="NFS_PATH/usrsapSIDERSERS_INSTANCE_NUMBER" \
        directory="/usr/sap/SID/ERSERS_INSTANCE_NUMBER" \
        fstype=nfs force_unmount=safe \
        --group ERS_RESOURCE_GROUP \
        op start interval=0 timeout=60 \
        op stop interval=0 timeout=120 \
        op monitor interval=200 timeout=40

    Ganti kode berikut:

    • ERS_FILE_SYSTEM_RESOURCE: menentukan nama untuk resource sistem file.
    • NFS_PATH: menentukan jalur direktori ke sistem file NFS.
    • SID: menentukan ID sistem (SID). Gunakan huruf besar untuk setiap huruf.
    • ERS_INSTANCE_NUMBER: menentukan nomor instance ERS.
    • ERS_RESOURCE_GROUP: menentukan nama grup unik untuk resource cluster ERS. Anda dapat memastikan keunikan dengan menggunakan konvensi seperti "SID_ERSinstance_number_group". Contoh, nw8_ERS10_group

      Karena grup belum ada, Pacemaker membuat grup sekarang. Saat membuat materi ERS lain, Anda menambahkannya ke grup ini.

Membuat resource alamat IP virtual

Tentukan resource cluster untuk alamat VIP.

  1. Jika perlu mencari alamat VIP, Anda dapat menggunakan:

    • gcloud compute addresses describe ASCS_VIP_NAME
      --region=CLUSTER_REGION --format="value(address)"
    • gcloud compute addresses describe ERS_VIP_NAME
      --region=CLUSTER_REGION --format="value(address)"
  2. Membuat resource cluster untuk VIP ASCS dan ERS.

    # pcs resource create ASCS_VIP_RESOURCE IPaddr2 \
        ip=ASCS_VIP_ADDRESS cidr_netmask=32 nic=eth0 \
        op monitor interval=3600 timeout=60 \
        --group ASCS_RESOURCE_GROUP
    # pcs resource create ERS_VIP_RESOURCE IPaddr2 \
        ip=ERS_VIP_ADDRESS cidr_netmask=32 nic=eth0 \
        op monitor interval=3600 timeout=60 \
        --group ERS_RESOURCE_GROUP

Membuat resource health check

  1. Konfigurasikan resource cluster untuk health check ASCS:

    # pcs resource create _HEALTHCHECK_SCS service:haproxy@SIDascs \
       op monitor interval=10s timeout=20s \
       --group ASCS_RESOURCE_GROUP
  2. Konfigurasikan resource cluster untuk health check ERS:

    # pcs resource create _HEALTHCHECK_ERS service:haproxy@SIDers \
       op monitor interval=10s timeout=20s \
       --group ERS_RESOURCE_GROUP

Menetapkan default cluster tambahan

  1. Tetapkan properti cluster tambahan:

    # pcs resource defaults resource-stickiness=1
    # pcs resource defaults migration-threshold=3

Melihat resource yang ditentukan

Tampilkan resource cluster yang sudah Anda tetapkan sejauh ini untuk memastikan resource tersebut sudah benar.

  1. Tampilkan status cluster:

    # pcs status

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    Cluster name: nwha
    Cluster Summary:
      * Stack: corosync
      * Current DC: nw-ha-vm-1 (version 2.0.5-9.el8_4.3-ba59be7122) - partition with quorum
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
      * fence-nw-ha-vm-2    (stonith:fence_gce):     Started nw-ha-vm-1
      * fence-nw-ha-vm-1    (stonith:fence_gce):     Started nw-ha-vm-2
      * Resource Group: nw8_ascs00_group:
        * nw8_vip_ascs00    (ocf::heartbeat:IPaddr2):    Started nw-ha-vm-1
        * nw8_healthcheck_scs   (service:haproxy@nw8scs):    Started nw-ha-vm-1
        * nw8_fs_ascs00 (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
      * Resource Group: nw8_ers10_group:
        * nw8_vip_ers10 (ocf::heartbeat:IPaddr2):    Started nw-ha-vm-2
        * nw8_healthcheck_ers   (service:haproxy@nw8ers):    Started nw-ha-vm-2
        * nw8_fs_ers10  (ocf::heartbeat:Filesystem):     Started nw-ha-vm-2
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled
    

Menginstal ASCS dan ERS

Bagian berikut hanya membahas persyaratan dan rekomendasi khusus untuk menginstal SAP NetWeaver di Google Cloud.

Untuk mengetahui petunjuk penginstalan selengkapnya, lihat dokumentasi SAP NetWeaver.

Menyiapkan penginstalan

Untuk memastikan konsistensi di seluruh cluster dan menyederhanakan penginstalan, sebelum Anda menginstal komponen ASCS dan ERS SAP NetWeaver, tentukan pengguna, grup, dan izin, lalu setel server sekunder dalam mode standby.

  1. Keluarkan cluster dari mode pemeliharaan:

    # sudo pcs property set maintenance-mode="false"

  2. Pada kedua server sebagai root, masukkan perintah berikut, dengan menentukan ID pengguna dan grup yang sesuai untuk lingkungan Anda:

    # groupadd -g GID_SAPINST sapinst
    # groupadd -g GID_SAPSYS sapsys
    # useradd -u UID_SIDADM SID_LCadm -g sapsys
    # usermod -a -G sapinst SID_LCadm
    # useradd -u UID_SAPADM sapadm -g sapinst
    
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS
    # chown SID_LCadm:sapsys /sapmnt/SID -R
    # chown SID_LCadm:sapsys /usr/sap/trans -R
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS -R
    # chown SID_LCadm:sapsys /usr/sap/SID -R

    Jika Anda menggunakan penyiapan Pemasangan Sederhana, jalankan perintah berikut, di kedua server sebagai root. Tentukan ID pengguna dan grup yang sesuai untuk lingkungan Anda.

    # groupadd -g GID_SAPINST sapinst
    # groupadd -g GID_SAPSYS sapsys
    # useradd -u UID_SIDADM SID_LCadm -g sapsys
    # usermod -a -G sapinst SID_LCadm
    # useradd -u UID_SAPADM sapadm -g sapinst
    
    # chown SID_LCadm:sapsys /usr/sap/SID
    # chown SID_LCadm:sapsys /sapmnt/SID -R
    # chown SID_LCadm:sapsys /usr/sap/trans -R
    # chown SID_LCadm:sapsys /usr/sap/SID -R
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS

    Ganti kode berikut:

    • GID_SAPINST: menentukan ID grup Linux untuk alat penyediaan SAP.
    • GID_SAPSYS: menentukan ID grup Linux untuk pengguna SAPSYS.
    • UID_SIDADM: menentukan ID pengguna Linux untuk administrator sistem SAP (SID).
    • SID_LC: menentukan ID sistem (SID). Gunakan huruf kecil untuk setiap huruf.
    • UID_SAPADM: menentukan ID pengguna untuk Agen Host SAP.
    • SID: menentukan ID sistem (SID). Gunakan huruf besar untuk setiap huruf.

    Misalnya, gambar berikut menunjukkan skema penomoran GID dan UID praktis:

    Group sapinst      1001
    Group sapsys       1002
    Group dbhshm       1003
    
    User  en2adm       2001
    User  sapadm       2002
    User  dbhadm       2003

Menginstal komponen ASCS

  1. Di server sekunder, masukkan perintah berikut untuk menyetel server sekunder dalam mode standby:

    # pcs node standby

    Menempatkan server sekunder dalam mode standby akan menggabungkan semua resource cluster di server utama, sehingga dapat menyederhanakan penginstalan.

  2. Pastikan server sekunder berada dalam mode standby:

    # pcs status

    Outputnya mirip dengan contoh berikut:

    Cluster name: nwha
       Cluster Summary:
         * Stack: corosync
         * Current DC: nw-ha-vm-1 (version 2.0.5-9.el8_4.3-ba59be7122) - partition with quorum
         * 2 nodes configured
         * 8 resource instances configured
    
       Node List:
         * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
       Full List of Resources:
         * fence-nw-ha-vm-2  (stonith:fence_gce):     Started nw-ha-vm-1
         * fence-nw-ha-vm-1  (stonith:fence_gce):     Stopped
         * Resource Group: nw8_ascs00_group:
           * nw8_vip_ascs00  (ocf::heartbeat:IPaddr2):    Started nw-ha-vm-1
           * nw8_healthcheck_scs (service:haproxy@nw8scs):    Started nw-ha-vm-1
           * nw8_fs_ascs00   (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
         * Resource Group: nw8_ers10_group:
           * nw8_vip_ers10   (ocf::heartbeat:IPaddr2):    Started nw-ha-vm-1
           * nw8_healthcheck_ers (service:haproxy@nw8ers):    Started nw-ha-vm-1
           * nw8_fs_ers10    (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
    
       Daemon Status:
         corosync: active/enabled
    
  3. Pada server utama sebagai pengguna root, ubah direktori ke direktori penginstalan sementara, seperti /tmp, untuk menginstal instance ASCS dengan menjalankan SAP Software Provider Manager (SWPM).

    • Untuk mengakses antarmuka web SWPM, Anda memerlukan sandi untuk pengguna root. Jika kebijakan IT Anda tidak mengizinkan administrator SAP memiliki akses ke sandi root, Anda dapat menggunakan SAPINST_REMOTE_ACCESS_USER.

    • Saat Anda memulai SWPM, gunakan parameter SAPINST_USE_HOSTNAME untuk menentukan nama host virtual yang Anda tentukan untuk alamat VIP ASCS di file /etc/hosts.

      Contoh:

      cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-scs
    • Di halaman konfirmasi SWPM terakhir, pastikan nama host virtual sudah benar.

  4. Setelah konfigurasi selesai, keluarkan VM sekunder dari mode standby:

    # pcs node unstandby

Menginstal komponen ERS

  1. Di server utama sebagai root atau SID_LCadm, hentikan layanan ASCS.

    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function Stop"
    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function StopService"
  2. Di server utama, masukkan perintah berikut untuk menyetel server utama ke mode standby:

    # pcs node standby

    Menempatkan server utama dalam mode standby akan menggabungkan semua resource cluster di server sekunder, sehingga menyederhanakan penginstalan.

  3. Pastikan server utama berada dalam mode standby:

    # pcs status

  4. Di server sekunder sebagai pengguna root, ubah direktori Anda ke direktori penginstalan sementara, seperti /tmp, untuk menginstal instance ERS dengan menjalankan SAP Software Provider Manager (SWPM).

    • Gunakan pengguna dan sandi yang sama untuk mengakses SWPM yang Anda gunakan saat menginstal komponen ASCS.

    • Saat Anda memulai SWPM, gunakan parameter SAPINST_USE_HOSTNAME untuk menentukan nama host virtual yang Anda tentukan untuk alamat VIP ERS di file /etc/hosts.

      Contoh:

      cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-ers
    • Di halaman konfirmasi SWPM terakhir, pastikan nama host virtual sudah benar.

  5. Alihkan VM utama dari mode standby agar keduanya aktif:

    # pcs node unstandby

Mengonfigurasi layanan SAP

Anda harus mengonfirmasi bahwa layanan telah dikonfigurasi dengan benar, memeriksa setelan di profil ASCS dan ERS, lalu menambahkan pengguna SID_LCadm ke grup pengguna haclient.

Mengonfirmasi entri layanan SAP

  1. Di kedua server, konfirmasi bahwa file /usr/sap/sapservices Anda berisi entri untuk layanan ASCS dan ERS. Untuk melakukannya, Anda dapat menggunakan integrasi systemV atau systemd.

    Anda dapat menambahkan entri yang tidak ada menggunakan perintah sapstartsrv dengan opsi pf=PROFILE_OF_THE_SAP_INSTANCE dan -reg.

    Untuk informasi selengkapnya tentang integrasi ini, lihat Catatan SAP berikut:

    systemV

    Berikut adalah contoh entri untuk layanan ASCS dan ERS dalam file /usr/sap/sapservices saat Anda menggunakan integrasi systemV:

    # LD_LIBRARY_PATH=/usr/sap/hostctrl/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
    /usr/sap/hostctrl/exe/sapstartsrv \
    pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
    -D -u SID_LCadm
    /usr/sap/hostctrl/exe/sapstartsrv \
    pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
    -D -u SID_LCadm

    systemd

    1. Pastikan file /usr/sap/sapservices Anda berisi entri untuk layanan ASCS dan ERS. Berikut adalah contoh tampilan entri ini dalam file /usr/sap/sapservices saat Anda menggunakan integrasi systemd:

      systemctl --no-ask-password start SAPSID_ASCS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_SID_LCascs
      systemctl --no-ask-password start SAPSID_ERS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_SID_LCers
    2. Nonaktifkan integrasi systemd di instance ASCS dan ERS:

      # systemctl disable SAPSID_ASCS_INSTANCE_NUMBER.service
      # systemctl stop SAPSID_ASCS_INSTANCE_NUMBER.service
      # systemctl disable SAPSID_ERS_INSTANCE_NUMBER.service
      # systemctl stop SAPSID_ERS_INSTANCE_NUMBER.service
    3. Pastikan integrasi systemd dinonaktifkan:

      # systemctl list-unit-files | grep sap

      Output yang mirip dengan contoh berikut berarti integrasi systemd dinonaktifkan. Perhatikan bahwa beberapa layanan, seperti saphostagent dan saptune, diaktifkan, dan beberapa layanan dinonaktifkan.

      SAPSID_ASCS_INSTANCE_NUMBER.service disabled
      SAPSID_ERS_INSTANCE_NUMBER.service disabled
      saphostagent.service enabled
      sapinit.service generated
      saprouter.service disabled
      saptune.service enabled

Menghentikan layanan SAP

  1. Di server sekunder, hentikan layanan ERS:

    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function Stop"
    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function StopService"
  2. Di setiap server, validasikan bahwa semua layanan dihentikan:

    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function GetSystemInstanceList"
    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function GetSystemInstanceList"

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    GetSystemInstanceList
    FAIL: NIECONN_REFUSED (Connection refused), NiRawConnect failed in plugin_fopen()

Menonaktifkan mulai ulang layanan otomatis di SAP

Karena software cluster mengelola mulai ulang layanan SAP selama failover, untuk menghindari konflik, nonaktifkan kemampuan software SAP untuk memulai ulang layanan secara otomatis.

  1. Di kedua node, edit file /usr/sap/sapservices untuk menonaktifkan mulai ulang otomatis di software SAP dengan menambahkan karakter komentar, # di awal perintah sapstartsrv untuk komponen ASCS dan ERS.

    Contoh:

    #!/bin/sh
    
     #LD_LIBRARY_PATH=/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/SID/ASCSASCS_INSTANCE_NUMBER/exe/sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME -D -u SID_LCadm
     #LD_LIBRARY_PATH=/usr/sap/SID/ERSERS_INSTANCE_NUMBER/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/SID/ERSERS_INSTANCE_NUMBER/exe/sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME -D -u SID_LCadm
     

Mengedit profil ASCS dan ERS

  1. Di salah satu server, beralihlah ke direktori profil menggunakan salah satu perintah berikut:

    # cd /usr/sap/SID/SYS/profile
    # cd /sapmnt/SID/profile
  2. Jika perlu, Anda dapat menemukan nama file profil ASCS dan ERS dengan mencantumkan file dalam direktori profil atau menggunakan format berikut:

    SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME
    SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME
  3. Jika Anda menggunakan ENSA1, aktifkan fungsi keepalive dengan menetapkan hal berikut di profil ASCS:

    enque/encni/set_so_keepalive = true

    Untuk mengetahui informasi selengkapnya, lihat SAP Note 1410736 - TCP/IP: menyiapkan interval keepalive.

  4. Jika perlu, edit profil ASCS dan ERS untuk mengubah perilaku startup Antrean Server dan Server Replikasi Antrean.

    ENSA1

    Di bagian "Mulai server Antrean SAP" pada profil ASCS, jika Anda melihat Restart_Program_NN, ubah "Restart" menjadi "Start", seperti yang ditunjukkan pada contoh berikut.

    Start_Program_01 = local $(_EN) pf=$(_PF)

    Di bagian "Mulai server replikasi antrean" pada profil ERS, jika Anda melihat Restart_Program_NN, ubah "Restart" menjadi "Start", seperti yang ditunjukkan pada contoh berikut.

    Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)

    ENSA2

    Di bagian "Mulai server Antrean SAP" pada profil ASCS, jika Anda melihat Restart_Program_NN, ubah "Restart" menjadi "Start", seperti yang ditunjukkan pada contoh berikut.

    Start_Program_01 = local $(_ENQ) pf=$(_PF)

    Di bagian "Mulai replikator antrean" pada profil ERS, jika Anda melihat Restart_Program_NN, ubah "Restart" menjadi "Start", sebagai yang ditunjukkan pada contoh berikut.

    Start_Program_00 = local $(_ENQR) pf=$(_PF) ...

Mengonfigurasi resource cluster untuk ASCS dan ERS

  1. Sebagai root dari salah satu server, tempatkan cluster dalam mode pemeliharaan:

    # pcs property set maintenance-mode="true"
  2. Pastikan cluster dalam mode pemeliharaan:

    # pcs status
  3. Buat resource cluster untuk layanan ASCS dan ERS:

    ENSA1

    • Buat resource cluster untuk instance ASCS. Nilai InstanceName adalah nama profil instance yang dihasilkan SWPM saat Anda menginstal ASCS.

      # pcs resource create ASCS_INSTANCE_RESOURCE SAPInstance \
          InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
          START_PROFILE=/sapmnt/SID/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
          AUTOMATIC_RECOVER=false meta resource-stickiness=5000 migration-threshold=1 \
          failure-timeout=60  --group ASCS_RESOURCE_GROUP \
          op monitor interval=20 on-fail=restart timeout=60 \
          op start interval=0 timeout=600 \
          op stop interval=0 timeout=600
      
      # pcs resource meta ASCS_RESOURCE_GROUP resource-stickiness=3000
      
    • Buat resource cluster untuk instance ERS. Nilai InstanceName adalah nama profil instance yang dihasilkan SWPM saat Anda menginstal ERS. Parameter IS_ERS=true memberi tahu Pacemaker untuk menetapkan flag runsersSID ke 1 pada node tempat ERS aktif.

      # pcs resource create ERS_INSTANCE_RESOURCE SAPInstance \
          InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
          START_PROFILE=/sapmnt/SID/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
          AUTOMATIC_RECOVER=false IS_ERS=true --group ERS_RESOURCE_GROUP \
          op monitor interval=20 on-fail=restart timeout=60 \
          op start interval=0 timeout=600 \
          op stop interval=0 timeout=600
      

    ENSA2

    • Buat resource cluster untuk instance ASCS. Nilai InstanceName adalah nama profil instance yang dihasilkan SWPM saat Anda menginstal ASCS.

      # pcs resource create ASCS_INSTANCE_RESOURCE SAPInstance \
          InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
          START_PROFILE=/sapmnt/SID/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
          AUTOMATIC_RECOVER=false meta resource-stickiness=5000 \
          --group ASCS_RESOURCE_GROUP \
          op monitor interval=20 on-fail=restart timeout=60 \
          op start interval=0 timeout=600 \
          op stop interval=0 timeout=600
      
      # pcs resource meta ASCS_RESOURCE_GROUP resource-stickiness=3000
      
    • Buat resource cluster untuk instance ERS. Nilai InstanceName adalah nama profil instance yang dihasilkan SWPM saat Anda menginstal ERS.

      # pcs resource create ERS_INSTANCE_RESOURCE SAPInstance \
          InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
          START_PROFILE=/sapmnt/SID/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
          AUTOMATIC_RECOVER=false IS_ERS=true --group ERS_RESOURCE_GROUP \
          op monitor interval=20 on-fail=restart timeout=60 \
          op start interval=0 timeout=600 \
          op stop interval=0 timeout=600
      

Mengonfigurasi batasan lokasi dan pengurutan

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

  1. Tentukan batasan urutan awal:

ENSA1

  1. Buat batasan kolokasi yang mencegah resource ASCS berjalan di server yang sama dengan resource ERS:

    # pcs constraint colocation add ERS_RESOURCE_GROUP with \
        ASCS_RESOURCE_GROUP -5000
    
  2. Konfigurasikan ASCS untuk melakukan failover ke server tempat ERS berjalan, seperti yang ditentukan dengan tanda runsersSID sama dengan 1:

    # pcs constraint location ASCS_INSTANCE_RESOURCE \
        rule score=2000 runs_ers_SID eq 1
  3. Konfigurasikan ASCS untuk dimulai sebelum ERS berpindah ke server lain setelah failover:

    # pcs constraint order start ASCS_RESOURCE_GROUP then \
        stop ERS_RESOURCE_GROUP symmetrical=false kind=Optional
    

ENSA2

  1. Buat batasan kolokasi yang mencegah resource ASCS berjalan di server yang sama dengan resource ERS:

    # pcs constraint colocation add ERS_RESOURCE_GROUP  with \
        ASCS_RESOURCE_GROUP -5000
    
  2. Konfigurasikan ASCS untuk dimulai sebelum ERS berpindah ke server lain setelah failover:

    # pcs constraint order start ASCS_RESOURCE_GROUP then \
        stop ERS_RESOURCE_GROUP symmetrical=false kind=Optional
    
  1. Periksa batasan:

    # pcs constraint

    Anda akan melihat output yang mirip dengan berikut ini:

    Location Constraints:
      Resource: ascs-aha-instance
        Constraint: location-ascs-instance
          Rule: score=2000
            Expression: runs_ers_HKN eq 1
      Resource: fence-nw-ha-vm-1
        Disabled on: nw-ha-vm-1 (score:-INFINITY)
      Resource: fence-nw-ha-vm-2
        Disabled on: nw-ha-vm-2 (score:-INFINITY)
    Ordering Constraints:
      start ascs-group then stop ers-group (kind:Optional) (non-symmetrical)
    Colocation Constraints:
      ascs-group with ers-group (score:-5000)
    Ticket Constraints:
  2. Sebagai root dari salah satu server, nonaktifkan mode pemeliharaan cluster:

    # pcs property set maintenance-mode="false"

Mengonfigurasi konektor cluster Red Hat untuk SAP

Pada setiap host di cluster, konfigurasikan sapstartsrv Layanan Start SAP untuk berkomunikasi dengan software cluster pacemaker melalui antarmuka HA.

  1. Tambahkan pengguna administratif SAP ke grup haclient:

    usermod -a -G haclient SID_LCadm
  2. Edit profil instance SAP dengan menambahkan baris berikut ke akhir setiap profil. Profil ini dapat ditemukan di direktori /sapmnt/SID/profiles.

    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_cluster_connector
  3. Jika resource instance ASCS dan ERS saat ini sedang berjalan di cluster, nonaktifkan resource tersebut:

    pcs resource disable ERS_INSTANCE_RESOURCE
    pcs resource disable ASCS_INSTANCE_RESOURCE
  4. Hentikan layanan di host ASCS:

    sapcontrol -nr ASCS_INSTANCE_NUMBER -function StopService
  5. Hentikan layanan di host ERS:

    sapcontrol -nr ERS_INSTANCE_NUMBER -function StopService
  6. Aktifkan resource:

    pcs resource enable ERS_INSTANCE_RESOURCE
    pcs resource enable ASCS_INSTANCE_RESOURCE
  7. Ulangi langkah sebelumnya pada setiap host di cluster.

Untuk mengetahui informasi selengkapnya dari Red Hat, lihat Cara mengonfigurasi halib SAP untuk resource SAPInstance pada RHEL 7 dan 8.

Menginstal Server Database dan Aplikasi pada host di luar cluster

Dalam konfigurasi ketersediaan tinggi, sebaiknya instal server database dan aplikasi pada host yang berbeda dengan host ASCS dan ERS di cluster.

Dengan menggunakan host terpisah untuk setiap server, Anda mengurangi kompleksitas, mengurangi risiko kegagalan yang memengaruhi beberapa server, dan Anda dapat menyesuaikan ukuran setiap Compute Engine dengan setiap jenis server.

Dengan begitu, Anda dapat memilih ukuran mesin tersertifikasi yang paling sesuai, menghindari kegagalan, dan mengurangi kompleksitas.

Penginstalan server database dan aplikasi tidak dibahas dalam panduan ini.

Untuk mengetahui informasi tentang cara menginstal server database, lihat:

Memvalidasi dan menguji cluster

Bagian ini menunjukkan cara menjalankan pengujian berikut:

  • Memeriksa error konfigurasi
  • Konfirmasi bahwa resource ASCS dan ERS beralih server dengan benar selama failover
  • Pastikan kunci dipertahankan
  • Simulasikan peristiwa pemeliharaan Compute Engine untuk memastikan bahwa migrasi langsung tidak memicu failover

Memeriksa konfigurasi cluster

  1. Sebagai root di salah satu server, periksa node tempat resource Anda berjalan:

    # pcs status

    Pada contoh berikut, resource ASCS berjalan di server nw-ha-vm-2 dan resource ERS berjalan di server nw-ha-vm-1.

    Stack: corosync
      Current DC: nw-ha-vm-1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
      Last updated: Wed Apr 13 05:21:21 2022
      Last change: Wed Apr 13 05:21:18 2022 by hacluster via crmd on nw-ha-vm-2
    
      2 nodes configured
      10 resource instances configured
    
      Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
      Full list of resources:
    
      fence-nw-ha-vm-1     (stonith:fence_gce):    Started nw-ha-vm-2
      fence-nw-ha-vm-2     (stonith:fence_gce):    Started nw-ha-vm-1
       Resource Group: ascs-group
           ascs-file-system   (ocf::heartbeat:Filesystem):    Started nw-ha-vm-2
           ascs-vip   (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-2
           ascs-healthcheck   (service:haproxy@AHAascs):      Started nw-ha-vm-2
           ascs-aha-instance      (ocf::heartbeat:SAPInstance):   Started nw-ha-vm-2
       Resource Group: ers-group
           ers-file-system    (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
           ers-vip    (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
           ers-healthcheck    (service:haproxy@AHAers):       Started nw-ha-vm-1
           ers-aha-instance       (ocf::heartbeat:SAPInstance):   Started nw-ha-vm-1
    
      Migration Summary:
      * Node nw-ha-vm-1:
      * Node nw-ha-vm-2:
  2. Beralih ke pengguna SID_LCadm:

    # su - SID_LCadm
  3. Periksa konfigurasi cluster. Untuk INSTANCE_NUMBER, tentukan nomor instance dari instance ASCS atau ERS yang aktif di server tempat Anda memasukkan perintah:

    > sapcontrol -nr INSTANCE_NUMBER -function HAGetFailoverConfig

    HAActive harus berupa TRUE, seperti yang ditunjukkan dalam contoh berikut:

    HAGetFailoverConfig
    
    14.04.2022 17:25:45
    HAGetFailoverConfig
    OK
    HAActive: TRUE
    HAProductVersion: Pacemaker
    HASAPInterfaceVersion: sap_cluster_connector
    HADocumentation: https://github.com/ClusterLabs/sap_cluster_connector
    HAActiveNode:
    HANodes:

  4. Sebagai SID_LCadm, periksa apakah ada error dalam konfigurasi:

    > sapcontrol -nr INSTANCE_NUMBER -function HACheckConfig

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    14.04.2022 21:43:39
    HACheckConfig
    OK
    state, category, description, comment
    SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 0 ABAP instances detected
    SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server
    SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server
    SUCCESS, SAP STATE, SCS instance running, SCS instance status ok
    SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (vip-ascs_NWT_00), SAPInstance includes is-ers patch
    SUCCESS, SAP CONFIGURATION, Enqueue replication (vip-ascs_NWT_00), Enqueue replication enabled
    SUCCESS, SAP STATE, Enqueue replication state (vip-ascs_NWT_00), Enqueue replication active
    SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (vip-ers_NWT_10), SAPInstance includes is-ers patch

  5. Di server tempat ASCS aktif, seperti SID_LCadm, simulasikan failover:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function HAFailoverToNode ""
  6. Sebagai root, jika mengikuti failover menggunakan crm_mon, Anda akan melihat ASCS berpindah ke server lain, ERS berhenti di server tersebut, lalu ERS berpindah ke server yang sebelumnya digunakan ASCS untuk berjalan.

Menyimulasikan failover

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

Anda dapat menyimulasikan kegagalan dengan berbagai cara, termasuk:

  • shutdown -r (di node aktif)
  • ip link set eth0 down
  • echo c > /proc/sysrq-trigger

Petunjuk ini menggunakan ip link set eth0 down untuk membuat antarmuka jaringan menjadi offline, karena antarmuka tersebut memvalidasi failover serta fencing.

  1. Cadangkan sistem Anda.

  2. Sebagai root pada host dengan instance SCS yang aktif, buat antarmuka jaringan menjadi offline:

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

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

     Stack: corosync
      Current DC: nw-ha-vm-1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
      Last updated: Wed Apr 13 05:21:21 2022
      Last change: Wed Apr 13 05:21:18 2022 by hacluster via crmd on nw-ha-vm-2
    
      2 nodes configured
      10 resource instances configured
    
      Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
      Full list of resources:
    
      fence-nw-ha-vm-1     (stonith:fence_gce):    Started nw-ha-vm-2
      fence-nw-ha-vm-2     (stonith:fence_gce):    Started nw-ha-vm-1
       Resource Group: ascs-group
           ascs-file-system   (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
           ascs-vip   (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
           ascs-healthcheck   (service:haproxy@AHAascs):      Started nw-ha-vm-1
           ascs-aha-instance      (ocf::heartbeat:SAPInstance):   Started nw-ha-vm-1
       Resource Group: ers-group
           ers-file-system    (ocf::heartbeat:Filesystem):    Started nw-ha-vm-2
           ers-vip    (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-2
           ers-healthcheck    (service:haproxy@AHAers):       Started nw-ha-vm-2
           ers-aha-instance       (ocf::heartbeat:SAPInstance):   Started nw-ha-vm-2
    
      Migration Summary:
      * Node nw-ha-vm-1:
      * Node nw-ha-vm-2:

Konfirmasi entri kunci dipertahankan

Untuk mengonfirmasi entri kunci dipertahankan di seluruh failover, pertama-tama pilih tab untuk versi Enqueue Server Anda dan ikuti prosedur untuk membuat entri kunci, menyimulasikan failover, dan mengonfirmasi bahwa entri kunci tersebut dipertahankan setelah ASCS diaktifkan lagi.

ENSA1

  1. Sebagai SID_LCadm, di server tempat ERS aktif, buat entri kunci dengan menggunakan program enqt:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 11 NUMBER_OF_LOCKS
  2. Sebagai SID_LCadm, di server tempat ASCS aktif, verifikasi bahwa entri kunci telah didaftarkan:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Jika membuat 10 kunci, Anda akan melihat output yang mirip dengan contoh berikut:

    locks_now: 10
  3. Sebagai SID_LCadm, di server tempat ERS aktif, mulai fungsi pemantauan, OpCode=20, dari program enqt:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 20 1 1 9999

    Contoh:

    > enqt pf=/sapmnt/AHA/profile/AHA_ERS10_vh-ers-aha 20 1 1 9999
  4. Jika ASCS aktif, mulai ulang server.

    Di server pemantauan, saat Pacemaker menghentikan ERS untuk memindahkannya ke server lain, Anda akan melihat output yang mirip dengan berikut ini.

    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
  5. Saat monitor enqt berhenti, keluar dari monitor dengan memasukkan Ctrl + c.

  6. Secara opsional, sebagai root di salah satu server, pantau failover cluster:

    # crm_mon
  7. Sebagai SID_LCadm, setelah Anda mengonfirmasi bahwa kunci telah dipertahankan, lepaskan kunci:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 12 NUMBER_OF_LOCKS
  8. Sebagai SID_LCadm, di server tempat ASCS aktif, verifikasi bahwa entri kunci telah dihapus:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

ENSA2

  1. Sebagai SID_LCadm, di server tempat ASCS aktif, buat entri kunci dengan menggunakan program enq_adm:

    > enq_admin --set_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME
  2. Sebagai SID_LCadm, di server tempat ASCS aktif, verifikasi bahwa entri kunci telah didaftarkan:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Jika membuat 10 kunci, Anda akan melihat output yang mirip dengan contoh berikut:

    locks_now: 10
  3. Jika ERS aktif, pastikan entri kunci telah direplikasi:

    > sapcontrol -nr ERS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Jumlah kunci yang ditampilkan harus sama dengan yang ada di instance ASCS.

  4. Jika ASCS aktif, mulai ulang server.

  5. Secara opsional, sebagai root di salah satu server, pantau failover cluster:

    # crm_mon
  6. Sebagai SID_LCadm, di server tempat ASCS dimulai ulang, pastikan entri kunci dipertahankan:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now
  7. Sebagai SID_LCadm, pada server tempat ERS aktif, setelah Anda mengonfirmasi bahwa kunci dipertahankan, lepaskan kunci:

    > enq_admin --release_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME
  8. Sebagai SID_LCadm, di server tempat ASCS aktif, verifikasi bahwa entri kunci telah dihapus:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Anda akan melihat output yang mirip dengan contoh berikut:

    locks_now: 0

Menyimulasikan peristiwa pemeliharaan Compute Engine

Simulasikan peristiwa pemeliharaan Compute Engine untuk memastikan bahwa migrasi langsung tidak memicu failover.

Nilai waktu tunggu dan interval yang digunakan dalam petunjuk ini memperhitungkan durasi migrasi langsung. Jika Anda menggunakan nilai yang lebih pendek dalam konfigurasi cluster, risiko migrasi langsung dapat memicu failover lebih besar.

Guna menguji toleransi cluster Anda terhadap migrasi langsung:

  1. Pada node utama, picu peristiwa pemeliharaan yang disimulasikan menggunakan perintah gcloud CLI berikut:

    $ gcloud compute instances simulate-maintenance-event PRIMARY_VM_NAME
  2. Pastikan node utama tidak berubah:

    $ pcs status

Mengevaluasi beban kerja SAP NetWeaver Anda

Guna mengotomatiskan pemeriksaan validasi berkelanjutan untuk beban kerja dengan ketersediaan tinggi SAP NetWeaver yang berjalan di Google Cloud, Anda dapat menggunakan Workload Manager.

Dengan Workload Manager, Anda dapat otomatis memindai dan mengevaluasi beban kerja dengan ketersediaan tinggi SAP NetWeaver 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 oleh Workload Manager untuk mengevaluasi beban kerja dengan ketersediaan tinggi SAP NetWeaver 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

Untuk memecahkan masalah konfigurasi ketersediaan tinggi untuk SAP NetWeaver, lihat Memecahkan masalah konfigurasi ketersediaan tinggi untuk SAP.

Kumpulkan informasi diagnostik untuk cluster ketersediaan tinggi SAP NetWeaver

Jika Anda memerlukan bantuan untuk menyelesaikan masalah dengan cluster ketersediaan tinggi untuk SAP NetWeaver, kumpulkan informasi diagnostik yang diperlukan dan hubungi Layanan Pelanggan Cloud.

Untuk mengumpulkan informasi diagnostik, lihat Cluster ketersediaan tinggi di 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:

Melakukan tugas pasca-deployment

Sebelum menggunakan sistem SAP NetWeaver, sebaiknya cadangkan sistem HA SAP NetWeaver baru Anda.

Untuk mengetahui informasi selengkapnya, lihat Panduan pengoperasian SAP NetWeaver.

Langkah berikutnya

Untuk informasi selengkapnya tentang ketersediaan tinggi, SAP NetWeaver, dan Google Cloud, lihat referensi berikut: