Ketersediaan tinggi untuk NFS pada Azure VM pada SUSE Linux Enterprise Server
Catatan
Sebaiknya sebarkan salah satu layanan NFS pihak pertama Azure: NFS pada volume Azure Files atau NFS ANF untuk menyimpan data bersama dalam sistem SAP yang sangat tersedia. Ketahuilah, bahwa kami membatalkan penekanan arsitektur referensi SAP, menggunakan kluster NFS.
Artikel ini menjelaskan cara menerapkan komputer virtual, mengonfigurasi komputer virtual, memasang kerangka kerja kluster, dan memasang server NFS yang sangat tersedia yang dapat digunakan untuk menyimpan data bersama dari sistem SAP yang sangat tersedia. Panduan ini menjelaskan cara menyiapkan server NFS yang sangat tersedia yang digunakan oleh dua sistem SAP, NW1 dan NW2. Nama-nama sumber daya (misalnya komputer virtual, jaringan virtual) dalam contoh mengasumsikan bahwa Anda telah menggunakan server file SAP templat dengan awalan sumber daya prod.
Catatan
Artikel ini berisi referensi ke istilah yang tidak lagi digunakan Microsoft. Saat istilah dihapus dari perangkat lunak, kami akan menghapusnya dari artikel ini.
Baca terlebih dahulu makalah dan Catatan SAP berikut
Catatan SAP 1928533, yang memiliki:
- Daftar ukuran Azure komputer virtual yang didukung untuk penyebaran perangkat lunak SAP
- Informasi kapasitas penting untuk ukuran Azure komputer virtual
- Perangkat lunak SAP yang didukung, sistem operasi (OS), dan kombinasi database
- Versi kernel SAP yang diperlukan untuk Windows dan Linux di Microsoft Azure
Catatan SAP 2015553 mencantumkan prasyarat untuk penyebaran perangkat lunak SAP yang didukung SAP di Azure.
Catatan SAP 2205917 telah menyarankan pengaturan OS untuk SUSE Linux Enterprise Server untuk Aplikasi SAP
Catatan SAP 1944799 memiliki Panduan SAP Hana untuk SUSE Linux Enterprise Server untuk Aplikasi SAP
Catatan SAP 2178632 memiliki informasi rinci tentang semua metrik pemantauan yang dilaporkan untuk SAP pada Azure.
SAP Note 2191498 memiliki versi Agen Host SAP yang diperlukan untuk Linux di Azure.
Catatan SAP 2243692 memiliki informasi tentang lisensi SAP di Linux pada Azure.
Catatan SAP 1984787 memiliki informasi umum tentang SUSE Linux Enterprise Server 12.
Catatan SAP 1999351 memiliki informasi pemecahan masalah tambahan untuk Azure Enhanced Monitoring Extension untuk SAP.
SAP Community WIKI memiliki semua SAP Note yang diperlukan untuk Linux.
Microsoft Azure Virtual Machines perencanaan dan penerapan untuk SAP di Linux
Microsoft Azure Virtual Machines penyebaran untuk SAP di Linux (artikel ini)
Panduan praktik terbaik SUSE Linux Enterprise Server for SAP Applications 12 SP5
Catatan Rilis SUSE Linux Enterprise Server for SAP Applications 12 SP5
Gambaran Umum
Untuk mencapai ketersediaan tinggi, SAP NetWeaver memerlukan server NFS. Server NFS dikonfigurasi dalam kluster terpisah dan dapat digunakan oleh beberapa sistem SAP.
Server NFS menggunakan nama host virtual khusus dan alamat IP virtual untuk setiap sistem SAP yang menggunakan server NFS ini. Pada Azure, penyeimbang muatan diperlukan untuk menggunakan alamat IP virtual. Konfigurasi yang disajikan menunjukkan penyeimbang beban dengan:
- Alamat IP frontend 10.0.0.4 untuk NW1
- Alamat IP frontend 10.0.0.5 untuk NW2
- Menyelidiki port 61000 untuk NW1
- Menyelidiki port 61001 untuk NW2
Siapkan server NFS yang sangat tersedia
Sebarkan Linux secara manual melalui portal Microsoft Azure
Dokumen ini mengasumsikan bahwa Anda telah menyebarkan grup sumber daya, Azure Virtual Network, dan subnet.
Sebarkan dua komputer virtual untuk server NFS. Pilih gambar SLES yang sesuai yang didukung dengan sistem SAP Anda. Anda dapat menyebarkan VM di salah satu opsi ketersediaan - set skala, zona ketersediaan, atau set ketersediaan.
Mengonfigurasi load balancer Azure
Ikuti panduan buat load balancer untuk mengonfigurasi load balancer standar untuk ketersediaan tinggi server NFS. Selama konfigurasi load balancer, pertimbangkan poin berikut.
- Konfigurasi IP Frontend: Buat dua IP frontend. Pilih jaringan virtual dan subnet yang sama dengan server NFS Anda.
- Kumpulan Backend: Buat kumpulan backend dan tambahkan VM server NFS.
- Aturan masuk: Buat dua aturan penyeimbangan beban, satu untuk NW1 dan satu lagi untuk NW2. Ikuti langkah yang sama untuk kedua aturan penyeimbangan beban.
- Alamat IP frontend: Pilih IP frontend
- Kumpulan backend: Pilih kumpulan backend
- Periksa "Port ketersediaan tinggi"
- Protokol: TCP
- Pemeriksaan Kesehatan: Buat pemeriksaan kesehatan dengan detail di bawah ini (berlaku untuk NW1 dan NW2)
- Protokol: TCP
- Port: [misalnya: 61000 untuk NW1, 61001 untuk NW2]
- Interval: 5
- Ambang Probe: 2
- Batas waktu diam (menit): 30
- Periksa "Aktifkan IP Mengambang"
Catatan
Nomor properti konfigurasi pemeriksaan kesehatanOfProbes, atau dikenal sebagai "Ambang tidak sehat" di Portal, tidak dihormati. Jadi untuk mengontrol jumlah pemeriksaan berturut-turut yang berhasil atau gagal, atur properti "probeThreshold" ke 2. Saat ini tidak dimungkinkan untuk mengatur properti ini menggunakan portal Azure, jadi gunakan perintah Azure CLI atau PowerShell.
Catatan
Ketika VM tanpa alamat IP publik ditempatkan di kumpulan backend internal (tanpa alamat IP publik) penyeimbang beban Azure Standar, tidak akan ada konektivitas internet keluar, kecuali ada konfigurasi tambahan untuk memungkinkan perutean ke titik akhir publik. Untuk detail tentang cara mencapai konektivitas keluar lihat Publik titik akhir konektivitas untuk Virtual Machines menggunakan Azure Standard Load Balancer dalam SAP ketersediaan tinggi skenario.
Penting
- Jangan aktifkan stempel waktu TCP pada Azure VM yang ditempatkan di belakang Azure Load Balancer. Mengaktifkan tanda waktu TCP akan menyebabkan pemeriksaan kesehatan gagal. Set
net.ipv4.tcp_timestamps
parameter ke0
. Untuk detailnya, lihat Pemeriksaan kesehatan Load Balancer. - Untuk mencegah saptune mengubah nilai yang diatur
net.ipv4.tcp_timestamps
secara manual dari0
kembali ke1
, Anda harus memperbarui versi saptune ke 3.1.1 atau yang lebih tinggi. Untuk detail selengkapnya, lihat saptune 3.1.1 – Apakah Saya Perlu Memperbarui?.
Buat kluster Pacemaker
Ikuti langkah-langkah dalam Menyiapkan Pacemaker di SUSE Linux Enterprise Server pada Azure untuk membuat kluster Pacemaker dasar untuk server NFS ini.
Konfigurasikan server NFS
Item berikut diawali dengan [A] - berlaku untuk semua simpul, [1] - hanya berlaku untuk simpul 1 atau [2] - hanya berlaku untuk simpul 2.
[A] Mengatur resolusi nama host
Anda dapat menggunakan server DNS atau memodifikasi /etc/hosts pada semua simpul. Contoh ini menunjukkan cara menggunakan file /etc/hosts. Ganti alamat IP dan nama host dalam perintah berikut
sudo vi /etc/hosts
Sisipkan baris berikut ke /etc/hosts. Ubah alamat IP dan nama host agar sesuai dengan lingkungan Anda
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] Aktifkan server NFS
Buat entri ekspor NFS root
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] Pasang komponen drbd
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] Buat partisi untuk perangkat drbd
Daftarkan semua disk data yang tersedia
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
Buat partisi untuk setiap disk data
sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun0' sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun1'
[A] Buat konfigurasi LVM
Cantumkan semua partisi yang tersedia
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
Buat volume LVM untuk setiap partisi
sudo pvcreate /dev/disk/azure/scsi1/lun0-part1 sudo vgcreate vg-NW1-NFS /dev/disk/azure/scsi1/lun0-part1 sudo lvcreate -l 100%FREE -n NW1 vg-NW1-NFS sudo pvcreate /dev/disk/azure/scsi1/lun1-part1 sudo vgcreate vg-NW2-NFS /dev/disk/azure/scsi1/lun1-part1 sudo lvcreate -l 100%FREE -n NW2 vg-NW2-NFS
[A] Konfigurasikan drbd
sudo vi /etc/drbd.conf
Pastikan bahwa file drbd.conf berisi dua baris berikut
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
Ubah konfigurasi drbd global
sudo vi /etc/drbd.d/global_common.conf
Tambahkan entri berikut ke bagian penghandel dan net.
global { usage-count no; } common { handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh"; split-brain "/usr/lib/drbd/notify-split-brain.sh root"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; } startup { wfc-timeout 0; } options { } disk { md-flushes yes; disk-flushes yes; c-plan-ahead 1; c-min-rate 100M; c-fill-target 20M; c-max-rate 4G; } net { after-sb-0pri discard-younger-primary; after-sb-1pri discard-secondary; after-sb-2pri call-pri-lost-after-sb; protocol C; tcp-cork yes; max-buffers 20000; max-epoch-size 20000; sndbuf-size 0; rcvbuf-size 0; } }
[A] Buat perangkat drbd NFS
sudo vi /etc/drbd.d/NW1-nfs.res
Masukkan konfigurasi untuk perangkat drbd baru dan keluar
resource NW1-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } }
sudo vi /etc/drbd.d/NW2-nfs.res
Masukkan konfigurasi untuk perangkat drbd baru dan keluar
resource NW2-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } }
Buat perangkat drbd dan mulai
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] Lewati sinkronisasi awal
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] Set simpul utama
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] Tunggu hingga perangkat drbd baru disinkronkan
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] Buat sistem file pada perangkat drbd
sudo mkfs.xfs /dev/drbd0 sudo mkdir /srv/nfs/NW1 sudo chattr +i /srv/nfs/NW1 sudo mount -t xfs /dev/drbd0 /srv/nfs/NW1 sudo mkdir /srv/nfs/NW1/sidsys sudo mkdir /srv/nfs/NW1/sapmntsid sudo mkdir /srv/nfs/NW1/trans sudo mkdir /srv/nfs/NW1/ASCS sudo mkdir /srv/nfs/NW1/ASCSERS sudo mkdir /srv/nfs/NW1/SCS sudo mkdir /srv/nfs/NW1/SCSERS sudo umount /srv/nfs/NW1 sudo mkfs.xfs /dev/drbd1 sudo mkdir /srv/nfs/NW2 sudo chattr +i /srv/nfs/NW2 sudo mount -t xfs /dev/drbd1 /srv/nfs/NW2 sudo mkdir /srv/nfs/NW2/sidsys sudo mkdir /srv/nfs/NW2/sapmntsid sudo mkdir /srv/nfs/NW2/trans sudo mkdir /srv/nfs/NW2/ASCS sudo mkdir /srv/nfs/NW2/ASCSERS sudo mkdir /srv/nfs/NW2/SCS sudo mkdir /srv/nfs/NW2/SCSERS sudo umount /srv/nfs/NW2
[A] Siapkan deteksi split-brain drbd
Ketika menggunakan drbd untuk menyinkronkan data dari satu host ke host lain, sesuatu yang biasa disebut split-brain dapat terjadi. Split-brain adalah skenario di mana kedua simpul kluster mempromosikan perangkat drbd menjadi yang utama dan tidak sinkron. Situasi ini mungkin jarang terjadi, tetapi Anda masih ingin menangani dan menyelesaikan split-brain secepat mungkin. Oleh karena itu, penting untuk mendapat pemberitahuan ketika terjadi split-brain.
Baca dokumentasi drbd resmi tentang cara mengatur pemberitahuan split-brain.
Pemulihan otomatis dari skenario split-brain mungkin dapat terjadi. Untuk informasi selengkapnya, baca Otomatis split-brain pemulihan kebijakan
Konfigurasikan Kerangka Kerja Kluster
[1] Tambahkan perangkat drbd NFS untuk sistem SAP NW1 ke konfigurasi kluster
Penting
Pengujian terbaru mengungkapkan situasi di mana netcat berhenti merespons permintaan karena backlog dan keterbatasannya dalam menangani satu koneksi saja. Sumber daya netcat berhenti mendengarkan permintaan Azure Load Balancer dan IP floating menjadi tidak tersedia.
Untuk kluster Pacemaker yang ada, kami pernah menyarankan untuk mengganti netcat dengan socat. Saat ini kami menyarankan untuk menggunakan agen sumber daya azure-lb yang merupakan bagian dari agen sumber daya paket dengan persyaratan versi paket berikut:- Untuk SLES 12 SP4/SP5, versi setidaknya harus resource-agents-4.3.018.a7fb5035-3.30.1.
- Untuk SLES 15/15 SP1, versi harus setidaknya agen sumber daya-4.3.0184.6ee15eb2-4.13.1.
Perhatikan bahwa perubahan akan memerlukan waktu henti singkat.
Untuk kluster Pacemaker yang ada, jika konfigurasi sudah diubah untuk menggunakan socat seperti yang dijelaskan di Azure Load-Balancer Deteksi Pengerasan, tidak ada persyaratan untuk segera beralih ke agen sumber daya azure-lb.sudo crm configure rsc_defaults resource-stickiness="200" # Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW1_nfs \ ocf:linbit:drbd \ params drbd_resource="NW1-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW1_nfs drbd_NW1_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW1_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd0 \ directory=/srv/nfs/NW1 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive nfsserver systemd:nfs-server \ op monitor interval="30s" sudo crm configure clone cl-nfsserver nfsserver sudo crm configure primitive exportfs_NW1 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW1" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=1 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW1_nfs IPaddr2 \ params ip=10.0.0.4 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW1_nfs azure-lb port=61000 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW1_nfs \ fs_NW1_sapmnt exportfs_NW1 nc_NW1_nfs vip_NW1_nfs sudo crm configure order o-NW1_drbd_before_nfs inf: \ ms-drbd_NW1_nfs:promote g-NW1_nfs:start sudo crm configure colocation col-NW1_nfs_on_drbd inf: \ g-NW1_nfs ms-drbd_NW1_nfs:Master
[1] Tambahkan perangkat drbd NFS untuk sistem SAP NW2 ke konfigurasi kluster
# Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW2_nfs \ ocf:linbit:drbd \ params drbd_resource="NW2-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW2_nfs drbd_NW2_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW2_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd1 \ directory=/srv/nfs/NW2 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive exportfs_NW2 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW2" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=2 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW2_nfs IPaddr2 \ params ip=10.0.0.5 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW2_nfs azure-lb port=61001 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW2_nfs \ fs_NW2_sapmnt exportfs_NW2 nc_NW2_nfs vip_NW2_nfs sudo crm configure order o-NW2_drbd_before_nfs inf: \ ms-drbd_NW2_nfs:promote g-NW2_nfs:start sudo crm configure colocation col-NW2_nfs_on_drbd inf: \ g-NW2_nfs ms-drbd_NW2_nfs:Master
crossmnt
opsi dalamexportfs
sumber daya kluster hadir dalam dokumentasi kami untuk kompatibilitas mundur dengan versi SLES yang lebih lama.[1] Nonaktifkan mode pemeliharaan
sudo crm configure property maintenance-mode=false
Langkah berikutnya
- Instal SAP ASCS dan database
- Perencanaan dan implementasi Azure Virtual Machine untuk SAP
- Penerapan Azure Virtual Machine untuk SAP
- Penyebaran Microsoft Azure Virtual Machines DBMS untuk SAP
- Untuk mempelajari cara menetapkan ketersediaan tinggi dan merencanakan pemulihan bencana SAP Hana di VM Azure, lihat Ketersediaan Tinggi SAP Hana di Microsoft Azure Virtual Machines (VM)