Panduan konfigurasi manual cluster HA untuk SAP NetWeaver di SLES

Panduan ini menunjukkan cara men-deploy dan mengonfigurasi cluster ketersediaan tinggi (HA) SUSE Linux Enterprise Server (SLES) dengan performa yang dioptimalkan untuk sistem SAP NetWeaver.

Panduan ini mencakup langkah-langkah untuk:

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, lihat panduan deployment SAP NetWeaver khusus sistem operasi Anda.

Guna mengonfigurasi cluster HA untuk SAP HANA di Red Hat Enterprise Linux (RHEL), lihat panduan konfigurasi manual cluster HA untuk SAP NetWeaver di RHEL.

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 SLES. 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, baca Terraform: panduan konfigurasi cluster dengan ketersediaan tinggi (HA) untuk SAP NetWeaver di SLES.

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 SUSE 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 Create.

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-sles15sp3.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/sles-15-sp3-sap. 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 suse-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.iam.gserviceaccount.com

    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/sles-15-sp3-sap
    linuxImageProject: suse-sap-cloud
    usrsapSize: 15
    sapmntSize: 15
    swapSize: 24
    networkTag: cluster-ntwk-tag,allow-health-check
    serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com
- 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/sles-15-sp3-sap
    linuxImageProject: suse-sap-cloud
    usrsapSize: 15
    sapmntSize: 15
    swapSize: 24
    networkTag: cluster-ntwk-tag,allow-health-check
    serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com

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 pesan 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 Deployment Manager, 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.

Update Google Cloud CLI

Template Deployment Manager yang menginstal Google Cloud CLI pada VM selama deployment. Lakukan update pada gcloud CLI untuk memastikan bahwa ini mencakup semua update terbaru.

  1. Jalankan SSH ke VM utama.

  2. Update gcloud CLI:

    ~>  sudo gcloud components update
  3. Ikuti petunjuknya.

  4. Ulangi langkah-langkah tersebut pada VM sekunder.

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}

    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
  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 selengkapnya tentang autofs, lihat autof - cara kerjanya.

  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
    
  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 yang berikut ini:

    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

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. Anda tetap harus menginstal utilitas socat, karena Anda akan menggunakannya nanti saat mengonfigurasi resource cluster.

  1. Pada kedua VM host sebagai root, instal utilitas socat:

    # zypper 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.

Menyiapkan Pacemaker

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

Untuk informasi selengkapnya tentang cara mengonfigurasi cluster ketersediaan tinggi di SLES, lihat dokumentasi Ekstensi Ketersediaan Tinggi SUSE Linux Enterprise untuk versi SLES Anda.

Instal paket cluster yang diperlukan

  1. Sebagai root pada host utama dan sekunder, download paket cluster yang diperlukan berikut ini:

    • Pola ha_sles:

      # zypper install -t pattern ha_sles
    • Paket sap-suse-cluster-connector:

      # zypper install -y sap-suse-cluster-connector
    • Jika Anda belum menginstalnya, utilitas socat:

      # zypper install -y socat

  2. Pastikan agen ketersediaan tinggi terbaru telah dimuat:

    # zypper se -t patch SUSE-SLE-HA

Lakukan inisialisasi, konfigurasi, dan mulai cluster pada VM utama

Lakukan inisialisasi cluster dengan menggunakan skrip SUSE ha-cluster-init. Kemudian, Anda perlu mengedit file konfigurasi Corosync dan menyinkronkannya dengan node sekunder. Setelah memulai cluster, tetapkan default dan properti cluster tambahan menggunakan perintah crm.

Membuat file konfigurasi Corosync

  1. Buat file konfigurasi Corosync di host utama:

    1. Dengan menggunakan editor teks pilihan Anda, buat file berikut:

      /etc/corosync/corosync.conf
    2. Pada file corosync.conf di host utama, tambahkan konfigurasi berikut, yang mengganti teks variabel miring dengan nilai Anda:

      totem {
       version: 2
       secauth: off
       crypto_hash: sha1
       crypto_cipher: aes256
       cluster_name: hacluster
       clear_node_high_bit: yes
       token: 20000
       token_retransmits_before_loss_const: 10
       join: 60
       max_messages:  20
       transport: udpu
       interface {
         ringnumber: 0
         Bindnetaddr: STATIC_IP_OF_THIS_HOST
         mcastport: 5405
         ttl: 1
       }
      }
      logging {
       fileline:  off
       to_stderr: no
       to_logfile: no
       logfile: /var/log/cluster/corosync.log
       to_syslog: yes
       debug: off
       timestamp: on
       logger_subsys {
         subsys: QUORUM
         debug: off
       }
      }
      nodelist {
       node {
         ring0_addr: THIS_HOST_NAME
         nodeid: 1
       }
       node {
         ring0_addr: OTHER_HOST_NAME
         nodeid: 2
       }
      }
      quorum {
       provider: corosync_votequorum
       expected_votes: 2
       two_node: 1
      }

    Ganti kode berikut:

    • STATIC_IP_OF_THIS_HOST: menentukan alamat IP internal utama statis VM ini, seperti yang ditampilkan di bagian Antarmuka jaringan di Konsol Google Cloud atau seperti yang ditampilkan oleh gcloud compute instances describe VM_NAME singkat ini.
    • THIS_HOST_NAME: menentukan nama host VM ini.
    • OTHER_HOST_NAME: tentukan nama host VM lain dalam cluster.
  2. Buat file konfigurasi Corosync di host sekunder dengan mengulangi langkah-langkah yang sama dengan yang Anda gunakan untuk host utama. Kecuali untuk IP statis HDB pada properti Bindnetaddr dan urutan nama host dalam nodelist, nilai properti file konfigurasi sama untuk setiap host.

Menginisialisasi cluster

Untuk melakukan inisialisasi cluster:

  1. Pada host utama sebagai root, inisialisasi cluster menggunakan skrip ha-cluster-init SUSE. Perintah berikut memberi nama cluster dan membuat file konfigurasi corosync.conf: konfigurasikan, dan siapkan sinkronisasi antar-node cluster.

    # ha-cluster-init --name CLUSTER_NAME --yes --interface eth0 csync2
    # ha-cluster-init --name CLUSTER_NAME --yes --interface eth0 corosync
  2. Mulai Pacemaker di host utama:

    # systemctl enable pacemaker
    # systemctl start pacemaker

Tetapkan properti cluster tambahan

  1. Tetapkan properti cluster umum:

    # crm configure property stonith-timeout="300s"
    # crm configure property stonith-enabled="true"
    # crm configure rsc_defaults resource-stickiness="1"
    # crm configure rsc_defaults migration-threshold="3"
    # crm configure op_defaults timeout="600"

    Saat Anda menentukan resource cluster individual, nilai yang Anda tetapkan untuk resource-stickiness dan migration-threshold akan menggantikan nilai default yang Anda tetapkan di sini.

    Anda dapat melihat default resource, serta nilai untuk setiap resource yang ditentukan, dengan memasukkan crm config show.

Menggabungkan VM sekunder ke cluster

Dari terminal terbuka di VM utama, gabungkan dan mulai cluster di VM sekunder melalui SSH.

  1. Dari VM utama, jalankan opsi skrip ha-cluster-join berikut di VM sekunder melalui SSH. Jika telah mengonfigurasi cluster HA seperti yang dijelaskan oleh petunjuk ini, Anda dapat mengabaikan peringatan tentang perangkat watchdog.

    1. Jalankan opsi --interface eth0 csync2:

      # ssh SECONDARY_VM_NAME 'ha-cluster-join --cluster-node PRIMARY_VM_NAME --yes --interface eth0 csync2'
    2. Jalankan opsi ssh_merge:

      # ssh SECONDARY_VM_NAME 'ha-cluster-join --cluster-node PRIMARY_VM_NAME --yes ssh_merge'
    3. Jalankan opsi cluster:

      # ssh SECONDARY_VM_NAME 'ha-cluster-join --cluster-node PRIMARY_VM_NAME --yes cluster'
  2. Mulai Pacemaker di host sekunder:

    1. Aktifkan Pacemaker:

      # ssh SECONDARY_VM_NAME systemctl enable pacemaker
    2. Mulai Pacemaker:

      # ssh SECONDARY_VM_NAME systemctl start pacemaker
  3. Di salah satu host sebagai root, pastikan cluster menunjukkan kedua node:

    # crm_mon -s

    Anda akan melihat output yang mirip dengan berikut ini:

    CLUSTER OK: 2 nodes online, 0 resource instances configured

Mengonfigurasi resource cluster untuk infrastruktur

Tentukan resource yang dikelola Pacemaker di cluster ketersediaan tinggi. Anda perlu menentukan resource untuk komponen 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

Tentukan resource untuk komponen ASCS dan ERS secara lebih lambat daripada resource lainnya, karena Anda perlu menginstal SAP NetWeaver terlebih dahulu.

Mengaktifkan mode pemeliharaan

  1. Pada salah satu host sebagai root, tempatkan cluster dalam mode pemeliharaan:

    # crm configure property maintenance-mode="true"
  2. Konfirmasi mode pemeliharaan:

    # crm status

    Output harus menunjukkan bahwa pengelolaan resource dinonaktifkan, seperti ditunjukkan pada contoh berikut:

    Cluster Summary:
    * Stack: corosync
    * Current DC: nw-ha-vm-1 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
    * Last updated: Fri May 14 15:26:08 2021
    * Last change:  Thu May 13 19:02:33 2021 by root via cibadmin on nw-ha-vm-1
    * 2 nodes configured
    * 0 resource instances configured
    
                *** Resource management is DISABLED ***
    The cluster will not attempt to start, stop or recover services
    
    Node List:
    * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
    * No resources

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 yang dapat memulai ulang VM tersebut. 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:

    # crm configure primitive FENCING_RESOURCE_PRIMARY_VM stonith:fence_gce \
      op monitor interval="300s" timeout="120s" \
      op start interval="0" timeout="60s" \
      params port="PRIMARY_VM_NAME" zone="PRIMARY_ZONE" \
      project="CLUSTER_PROJECT_ID" \
      pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
  2. Konfigurasikan lokasi perangkat pagar untuk VM utama sehingga hanya aktif di VM sekunder:

    # crm configure location FENCING_LOCATION_NAME_PRIMARY_VM \
      FENCING_RESOURCE_PRIMARY_VM -inf: "PRIMARY_VM_NAME"
  3. Konfirmasi konfigurasi yang baru dibuat:

    # crm config show related:FENCING_RESOURCE_PRIMARY_VM

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    primitive FENCING_RESOURCE_PRIMARY_VM stonith:fence_gce \
            op monitor interval=300s timeout=120s \
            op start interval=0 timeout=60s \
            params PRIMARY_VM_NAME zone=PRIMARY_ZONE project=CLUSTER_PROJECT_ID pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
    location FENCING_RESOURCE_PRIMARY_VM FENCING_RESOURCE_PRIMARY_VM -inf: PRIMARY_VM_NAME
  4. Pada host utama sebagai root, buat resource cluster perangkat pagar untuk VM sekunder:

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

    # crm configure location FENCING_LOCATION_NAME_SECONDARY_VM \
      FENCING_RESOURCE_SECONDARY_VM -inf: "SECONDARY_VM_NAME"
  6. Konfirmasi konfigurasi yang baru dibuat:

    # crm config show related:FENCING_RESOURCE_SECONDARY_VM

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    primitive FENCING_RESOURCE_SECONDARY_VM stonith:fence_gce \
            op monitor interval=300s timeout=120s \
            op start interval=0 timeout=60s \
            params SECONDARY_VM_NAME zone=SECONDARY_ZONE project=CLUSTER_PROJECT_ID pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
    location FENCING_RESOURCE_SECONDARY_VM FENCING_RESOURCE_SECONDARY_VM -inf: 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

Setelah membuat direktori sistem file bersama, Anda dapat menentukan resource cluster.

  1. Mengonfigurasi resource sistem file untuk direktori khusus instance.

    # crm configure primitive ASCS_FILE_SYSTEM_RESOURCE Filesystem \
    device="NFS_PATH/usrsapSIDASCSASCS_INSTANCE_NUMBER" \
    directory="/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER" fstype="nfs" \
    op start timeout=60s interval=0 \
    op stop timeout=60s interval=0 \
    op monitor interval=20s timeout=40s

    Ganti kode berikut:

    • ASCS_FILE_SYSTEM_RESOURCE: menentukan nama resource cluster untuk sistem file ASCS.
    • NFS_PATH: menentukan jalur ke sistem file NFS untuk ASCS.
    • SID: menentukan ID sistem (SID). Gunakan huruf besar untuk setiap huruf.
    • ASCS_INSTANCE_NUMBER: menentukan nomor instance ASCS.
    # crm configure primitive ERS_FILE_SYSTEM_RESOURCE Filesystem \
    device="NFS_PATH/usrsapSIDERSERS_INSTANCE_NUMBER" \
    directory="/usr/sap/SID/ERSERS_INSTANCE_NUMBER" fstype="nfs" \
    op start timeout=60s interval=0 \
    op stop timeout=60s interval=0 \
    op monitor interval=20s timeout=40s

    Ganti kode berikut:

    • ERS_FILE_SYSTEM_RESOURCE: menentukan nama resource cluster untuk sistem file ERS.
    • NFS_PATH: menentukan jalur ke sistem file NFS untuk ERS.
    • SID: menentukan ID sistem (SID). Gunakan huruf besar untuk setiap huruf.
    • ERS_INSTANCE_NUMBER: tentukan nomor instance ASCS.
  2. Konfirmasi konfigurasi yang baru dibuat:

    # crm configure show ASCS_FILE_SYSTEM_RESOURCE ERS_FILE_SYSTEM_RESOURCE

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    primitive ASCS_FILE_SYSTEM_RESOURCE Filesystem \
        params device="NFS_PATH/usrsapSIDASCSASCS_INSTANCE_NUMBER" directory="/usr/sap/SID/ASCSASCS_INSTANCE_NUMBER" fstype=nfs \
        op start timeout=60s interval=0 \
        op stop timeout=60s interval=0 \
        op monitor interval=20s timeout=40s
    primitive ERS_FILE_SYSTEM_RESOURCE Filesystem \
        params device="NFS_PATH/usrsapSIDERSERS_INSTANCE_NUMBER" directory="/usr/sap/SID/ERSERS_INSTANCE_NUMBER" fstype=nfs \
        op start timeout=60s interval=0 \
        op stop timeout=60s interval=0 \
        op monitor interval=20s timeout=40s

Membuat resource health check

  1. Konfigurasi resource cluster untuk health check ASCS dan ERS:

    # crm configure primitive ASCS_HEALTH_CHECK_RESOURCE anything \
      params binfile="/usr/bin/socat" \
      cmdline_options="-U TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \
      op monitor timeout=20s interval=10s \
      op_params depth=0
    # crm configure primitive ERS_HEALTH_CHECK_RESOURCE anything \
      params binfile="/usr/bin/socat" \
      cmdline_options="-U TCP-LISTEN:ERS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \
      op monitor timeout=20s interval=10s \
      op_params depth=0
  2. Konfirmasi konfigurasi yang baru dibuat:

    # crm configure show ERS_HEALTH_CHECK_RESOURCE ASCS_HEALTH_CHECK_RESOURCE

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    primitive ERS_HEALTH_CHECK_RESOURCE anything \
            params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:ASCS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \
            op monitor timeout=20s interval=10s \
            op_params depth=0
        primitive ASCS_HEALTH_CHECK_RESOURCE anything \
            params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:ERS_HEALTHCHECK_PORT_NUM,backlog=10,fork,reuseaddr /dev/null" \
            op monitor timeout=20s interval=10s \
            op_params depth=0

Membuat resource VIP

Tentukan resource cluster untuk alamat VIP.

  1. Jika perlu mencari alamat VIP numerik, 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.

    # crm configure primitive ASCS_VIP_RESOURCE IPaddr2 \
     params ip=ASCS_VIP_ADDRESS cidr_netmask=32 nic="eth0" \
     op monitor interval=3600s timeout=60s
    # crm configure primitive ERS_VIP_RESOURCE IPaddr2 \
     params ip=ERS_VIP_ADDRESS cidr_netmask=32 nic="eth0" \
     op monitor interval=3600s timeout=60s
  3. Konfirmasi konfigurasi yang baru dibuat:

    # crm configure show ASCS_VIP_RESOURCE ERS_VIP_RESOURCE

    Anda akan melihat output yang mirip dengan contoh berikut ini:

        primitive ASCS_VIP_RESOURCE IPaddr2 \
            params ip=ASCS_VIP_ADDRESS cidr_netmask=32 nic=eth0 \
            op monitor interval=3600s timeout=60s
        primitive ERS_VIP_RESOURCE IPaddr2 \
            params ip=ERS_VIP_RESOURCE cidr_netmask=32 nic=eth0 \
            op monitor interval=3600s timeout=60s

Melihat resource yang ditentukan

  1. Untuk melihat semua resource yang telah Anda tetapkan sejauh ini, masukkan perintah berikut:

    # crm status

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    Stack: corosync
    Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum
    Last updated: Wed May 26 19:10:10 2021
    Last change: Tue May 25 23:48:35 2021 by root via cibadmin on nw-ha-vm-1
    
    2 nodes configured
    8 resource instances configured
    
                  *** Resource management is DISABLED ***
      The cluster will not attempt to start, stop or recover services
    
    Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full list of resources:
    
     fencing-rsc-nw-aha-vm-1        (stonith:fence_gce):    Stopped (unmanaged)
     fencing-rsc-nw-aha-vm-2        (stonith:fence_gce):    Stopped (unmanaged)
     filesystem-rsc-nw-aha-ascs      (ocf::heartbeat:Filesystem):    Stopped (unmanaged)
     filesystem-rsc-nw-aha-ers      (ocf::heartbeat:Filesystem):    Stopped (unmanaged)
     health-check-rsc-nw-ha-ascs     (ocf::heartbeat:anything):      Stopped (unmanaged)
     health-check-rsc-nw-ha-ers     (ocf::heartbeat:anything):      Stopped (unmanaged)
     vip-rsc-nw-aha-ascs     (ocf::heartbeat:IPaddr2):       Stopped (unmanaged)
     vip-rsc-nw-aha-ers     (ocf::heartbeat:IPaddr2):       Stopped (unmanaged)

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:

    # crm configure property 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

    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:

    # crm_standby -v on -N ${HOSTNAME};

    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:

    # crm status

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    Stack: corosync
     Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum
     Last updated: Thu May 27 17:45:16 2021
     Last change: Thu May 27 17:45:09 2021 by root via crm_attribute on nw-ha-vm-2
    
     2 nodes configured
     8 resource instances configured
    
     Node nw-ha-vm-2: standby
     Online: [ nw-ha-vm-1 ]
    
     Full list of resources:
    
      fencing-rsc-nw-aha-vm-1        (stonith:fence_gce):    Stopped
      fencing-rsc-nw-aha-vm-2        (stonith:fence_gce):    Started nw-ha-vm-1
      filesystem-rsc-nw-aha-scs      (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
      filesystem-rsc-nw-aha-ers      (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
      health-check-rsc-nw-ha-scs     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      health-check-rsc-nw-ha-ers     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      vip-rsc-nw-aha-scs     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
      vip-rsc-nw-aha-ers     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
    
  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:

    # crm_standby -v off -N ${HOSTNAME}; # On SECONDARY

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:

    # crm_standby -v on -N ${HOSTNAME};

    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:

    # crm 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:

    # crm_standby -v off -N ${HOSTNAME};

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 cara 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 tersebut 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 pada 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 bahwa integrasi systemd dinonaktifkan. Perlu diketahui bahwa beberapa layanan, seperti saphostagent dan saptune, diaktifkan, sedangkan 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

      Untuk informasi selengkapnya, lihat dokumen SUSE Menonaktifkan layanan systemd dari ASCS dan instance ERS SAP.

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:

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

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. Aktifkan paket sap-suse-cluster-connector dengan menambahkan baris berikut ke profil instance ASCS dan ERS:

    #-----------------------------------------------------------------------
    # SUSE HA library
    #-----------------------------------------------------------------------
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
  4. 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.

  5. 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) ...

Tambahkan pengguna sidadm ke grup pengguna haclient

Saat Anda menginstal sap-suse-cluster-connector, penginstalan tersebut membuat grup pengguna haclient. Agar pengguna SID_LCadm dapat menggunakan cluster, tambahkan ke grup pengguna haclient.

  1. Di kedua server, tambahkan pengguna SID_LCadm ke grup pengguna haclient:

    # usermod -aG haclient SID_LCadm

Mengonfigurasi resource cluster untuk ASCS dan ERS

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

    # crm configure property maintenance-mode="true"
  2. Pastikan bahwa pelanggan sedang dalam mode pemeliharaan:

    # crm status

    Jika cluster berada dalam mode pemeliharaan, statusnya akan mencakup baris berikut:

                  *** Resource management is DISABLED ***
    The cluster will not attempt to start, stop or recover services
  3. Buat resource cluster untuk layanan ASCS dan ERS:

    ENSA1

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

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60 \
           migration-threshold=1 priority=10
    2. 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.

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    3. Konfirmasi konfigurasi yang baru dibuat:

      # crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE

      Anda akan melihat output yang mirip dengan contoh berikut ini:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \
      meta priority=1000
      

    ENSA2

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

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60
    2. Buat resource cluster untuk instance ERS. Nilai InstanceName adalah nama profil instance yang dihasilkan SWPM saat Anda menginstal ERS.

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false IS_ERS=true
    3. Konfirmasi konfigurasi yang baru dibuat:

      # crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE

      Anda akan melihat output yang mirip dengan contoh berikut ini:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \
      

Mengonfigurasi grup resource dan batasan lokasi

  1. Kelompokkan resource ASCS dan ERS. Anda dapat menampilkan nama semua resource yang ditentukan sebelumnya dengan memasukkan perintah crm resource status:

    # crm configure group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE \
      ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE \
      ASCS_INSTANCE_RESOURCE \
      meta resource-stickiness=3000

    Ganti kode berikut:

    • ASCS_RESOURCE_GROUP: menentukan nama grup unik untuk resource cluster ASCS. Anda dapat memastikan keunikan dengan menggunakan konvensi seperti "SID_ASCSinstance number_group". Contoh, nw1_ASCS00_group
    • ASCS_FILE_SYSTEM_RESOURCE: menentukan nama resource cluster yang Anda tetapkan untuk sistem file ASCS sebelumnya.
    • ASCS_HEALTH_CHECK_RESOURCE: menentukan nama resource cluster yang Anda tetapkan untuk health check ASCS sebelumnya.
    • ASCS_VIP_RESOURCE: menentukan nama resource cluster yang Anda tentukan untuk ASCS VIP sebelumnya.
    • ASCS_INSTANCE_RESOURCE: menentukan nama resource cluster yang Anda tentukan untuk instance ASCS sebelumnya.
    # crm configure group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE \
      ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE \
      ERS_INSTANCE_RESOURCE

    Ganti kode berikut:

    • ERS_RESOURCE_GROUP: menentukan nama grup unik untuk resource cluster ERS. Anda dapat memastikan keunikan dengan menggunakan konvensi seperti "SID_ERSinstance number_group". Contoh: nw1_ERS10_group
    • ERS_FILE_SYSTEM_RESOURCE: menentukan nama resource cluster yang Anda tentukan untuk sistem file ERS sebelumnya.
    • ERS_HEALTH_CHECK_RESOURCE: menentukan nama resource cluster yang Anda tetapkan untuk health check ERS sebelumnya.
    • ERS_VIP_RESOURCE: menentukan nama resource cluster yang Anda tentukan untuk ERS VIP sebelumnya.
    • ERS_INSTANCE_RESOURCE: menentukan nama resource cluster yang Anda tentukan untuk instance ERS sebelumnya.
  2. Konfirmasi konfigurasi yang baru dibuat:

    # crm configure show type:group

    Anda akan melihat output yang mirip dengan contoh berikut ini:

    group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE ERS_INSTANCE_RESOURCE
    group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE ASCS_INSTANCE_RESOURCE \
            meta resource-stickiness=3000
  3. Buat batasan kolokasi:

    ENSA1

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

      # crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
    2. Konfigurasikan ASCS untuk melakukan failover ke server tempat ERS berjalan, seperti yang ditentukan dengan tanda runsersSID sama dengan 1:

      # crm configure location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \
      rule 2000: runs_ers_SID eq 1
    3. Konfigurasikan ASCS untuk dimulai sebelum ERS berpindah ke server lain setelah failover:

      # crm configure order ORD_SAP_SID_FIRST_START_ASCS \
       Optional: ASCS_INSTANCE_RESOURCE:start \
       ERS_INSTANCE_RESOURCE:stop symmetrical=false
    4. Konfirmasi konfigurasi yang baru dibuat:

      # crm configure show type:colocation type:location type:order

      Anda akan melihat output yang mirip dengan contoh berikut ini:

      order ORD_SAP_SID_FIRST_START_ASCS Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false
      colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
      location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \
      rule 2000: runs_ers_SID eq 1

    ENSA2

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

      # crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
    2. Konfigurasikan ASCS untuk dimulai sebelum ERS berpindah ke server lain setelah failover:

      # crm configure order ORD_SAP_SID_FIRST_START_ASCS \
       Optional: ASCS_INSTANCE_RESOURCE:start \
       ERS_INSTANCE_RESOURCE:stop symmetrical=false
    3. Konfirmasi konfigurasi yang baru dibuat:

      # crm configure show type:colocation type:order

      Anda akan melihat output yang mirip dengan contoh berikut ini:

      colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
      order ORD_SAP_SID_FIRST_START_ASCS  Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false
  4. Nonaktifkan mode pemeliharaan.

    # crm configure property maintenance-mode="false"

Memvalidasi dan menguji cluster Anda

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:

    # crm status

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

    Cluster Summary:
      * Stack: corosync
      * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Thu May 20 16:58:46 2021
      * Last change:  Thu May 20 16:57:31 2021 by ahaadm via crm_resource on nw-ha-vm-2
      * 2 nodes configured
      * 10 resource instances configured
    
    Node List:
      * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Active Resources:
      * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
      * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
      * Resource Group: ascs-aha-rsc-group-name:
        * filesystem-rsc-nw-aha-ascs (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
        * health-check-rsc-nw-ha-ascs        (ocf::heartbeat:anything):       Started nw-ha-vm-1
        * vip-rsc-nw-aha-ascs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
        * ascs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1
      * Resource Group: ers-aha-rsc-group-name:
        * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem):     Started nw-ha-vm-2
        * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-2
        * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
        * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started 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:

    20.05.2021 01:33:25
    HAGetFailoverConfig
    OK
    HAActive: TRUE
    HAProductVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2
    HASAPInterfaceVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2 (sap_suse_cluster_connector 3.1.2)
    HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/
    HAActiveNode: nw-ha-vm-1
    HANodes: nw-ha-vm-1, nw-ha-vm-2

  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:

    20.05.2021 01:37:19
    HACheckConfig
    OK
    state, category, description, comment
    SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 0 ABAP instances detected
    SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java 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 (vh-ascs-aha_AHA_00), SAPInstance includes is-ers patch
    SUCCESS, SAP CONFIGURATION, Enqueue replication (vh-ascs-aha_AHA_00), Enqueue replication enabled
    SUCCESS, SAP STATE, Enqueue replication state (vh-ascs-aha_AHA_00), Enqueue replication active

  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 crm status untuk mengonfirmasi bahwa host utama kini aktif di VM yang sebelumnya berisi host sekunder. Mulai ulang otomatis diaktifkan dalam cluster, sehingga host yang dihentikan akan memulai ulang dan mengambil peran host sekunder, seperti yang ditunjukkan dalam contoh berikut.

    Cluster Summary:
    * Stack: corosync
    * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
    * Last updated: Fri May 21 22:31:32 2021
    * Last change:  Thu May 20 20:36:36 2021 by ahaadm via crm_resource on nw-ha-vm-1
    * 2 nodes configured
    * 10 resource instances configured
    
    Node List:
    * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
    * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
    * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
    * Resource Group: scs-aha-rsc-group-name:
      * filesystem-rsc-nw-aha-scs (ocf::heartbeat:Filesystem):     Started nw-ha-vm-2
      * health-check-rsc-nw-ha-scs        (ocf::heartbeat:anything):       Started nw-ha-vm-2
      * vip-rsc-nw-aha-scs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
      * scs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-2
    * Resource Group: ers-aha-rsc-group-name:
      * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
      * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-1
      * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
      * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1

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:

    # crm 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 terkait cluster ketersediaan tinggi untuk SAP NetWeaver, kumpulkan informasi diagnostik yang diperlukan dan hubungi Cloud Customer Care.

Untuk mengumpulkan informasi diagnostik, lihat Cluster ketersediaan tinggi di informasi diagnostik SLES.

Support

Untuk masalah terkait infrastruktur atau layanan Google Cloud, hubungi Layanan Pelanggan. Anda dapat menemukan informasi kontak di Halaman Support Overview 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, mentransfer tiket tersebut ke komponen Google Cloud 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 selanjutnya

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