SUSE Linux Enterprise Server'da Azure VM'lerinde NFS için yüksek kullanılabilirlik
Not
Paylaşılan verileri yüksek oranda kullanılabilir bir SAP sisteminde depolamak için Azure birinci taraf NFS hizmetlerinden birini dağıtmanızı öneririz: Azure Dosyalar üzerinde NFS veya NFS ANF birimleri. NFS kümelerini kullanarak SAP başvuru mimarilerini vurgulamadığımıza dikkat edin.
Bu makalede, sanal makinelerin nasıl dağıtılacağı, sanal makinelerin nasıl yapılandırılacağı, küme çerçevesinin nasıl yükleneceği ve yüksek oranda kullanılabilir bir SAP sisteminin paylaşılan verilerini depolamak için kullanılabilecek yüksek oranda kullanılabilir bir NFS sunucusunun nasıl yükleneceği açıklanmaktadır. Bu kılavuzda, NW1 ve NW2 olmak üzere iki SAP sistemi tarafından kullanılan yüksek oranda kullanılabilir bir NFS sunucusunun nasıl ayarlanacağı açıklanmaktadır. Örnekteki kaynakların (örneğin sanal makineler, sanal ağlar) adları, SAP dosya sunucusu şablonunu kaynak ön eki eklenmiş olarak kullandığınızı varsayar.
Not
Bu makale, Microsoft'un artık kullanmadığını ifade eden başvurular içerir. Koşullar yazılımdan kaldırıldığında, bunları bu makaleden kaldıracağız.
Önce aşağıdaki SAP Notlarını ve kağıtlarını okuyun
SAP Not 1928533, şunlara sahiptir:
- SAP yazılımının dağıtımı için desteklenen Azure VM boyutlarının listesi
- Azure VM boyutları için önemli kapasite bilgileri
- Desteklenen SAP yazılımı, işletim sistemi (OS) ve veritabanı birleşimleri
- Microsoft Azure'da Windows ve Linux için gerekli SAP çekirdek sürümü
SAP Not 2015553 , Azure'da SAP tarafından desteklenen SAP yazılım dağıtımları için önkoşulları listeler.
SAP Not 2205917 SAP Uygulamaları için SUSE Linux Enterprise Server işletim sistemi ayarlarını önermiştir
SAP Not 1944799 SAP Uygulamaları için SUSE Linux Enterprise Server için SAP HANA Yönergeleri vardır
SAP Not 2178632 , Azure'da SAP için bildirilen tüm izleme ölçümleri hakkında ayrıntılı bilgiler içerir.
SAP Not 2191498 , Azure'da Linux için gerekli SAP Konak Aracısı sürümüne sahiptir.
SAP Not 2243692 , Azure'da Linux üzerinde SAP lisanslama hakkında bilgi içerir.
SAP Not 1984787 SUSE Linux Enterprise Server 12 hakkında genel bilgiler içerir.
SAP Not 1999351 , SAP için Azure Gelişmiş İzleme Uzantısı için ek sorun giderme bilgileri içerir.
SAP Community WIKI'de Linux için tüm gerekli SAP Notları bulunur.
Linux üzerinde SAP için Azure Sanal Makineler planlama ve uygulama
Linux üzerinde SAP için Azure Sanal Makineler dağıtımı (bu makale)
SAP Uygulamaları için SUSE Linux Enterprise Server 12 SP5 en iyi yöntemler kılavuzları
SAP Uygulamaları için SUSE Linux Enterprise Server 12 SP5 Sürüm Notları
Genel bakış
Yüksek kullanılabilirlik elde etmek için SAP NetWeaver bir NFS sunucusu gerektirir. NFS sunucusu ayrı bir kümede yapılandırılır ve birden çok SAP sistemi tarafından kullanılabilir.
NFS sunucusu, bu NFS sunucusunu kullanan her SAP sistemi için ayrılmış bir sanal konak adı ve sanal IP adresleri kullanır. Azure'da sanal IP adresi kullanmak için yük dengeleyici gerekir. Sunulan yapılandırmada aşağıdakilerle bir yük dengeleyici gösterilir:
- NW1 için ön uç IP adresi 10.0.0.4
- NW2 için ön uç IP adresi 10.0.0.5
- NW1 için yoklama bağlantı noktası 61000
- NW2 için yoklama bağlantı noktası 61001
Yüksek oranda kullanılabilir bir NFS sunucusu ayarlama
Azure portalı aracılığıyla Linux'ı el ile dağıtma
Bu belgede zaten bir kaynak grubu, Azure Sanal Ağ ve alt ağ dağıttığınız varsayılır.
NFS sunucuları için iki sanal makine dağıtın. SAP sisteminizde desteklenen uygun bir SLES görüntüsü seçin. Vm'yi kullanılabilirlik seçeneklerinden herhangi birinde (ölçek kümesi, kullanılabilirlik alanı veya kullanılabilirlik kümesi) dağıtabilirsiniz.
Azure yük dengeleyiciyi yapılandırma
NFS sunucusu yüksek kullanılabilirliği için standart yük dengeleyici yapılandırmak için yük dengeleyici oluşturma kılavuzunu izleyin. Yük dengeleyici yapılandırması sırasında aşağıdaki noktaları göz önünde bulundurun.
- Ön uç IP Yapılandırması: İki ön uç IP'si oluşturun. NFS sunucunuzla aynı sanal ağı ve alt ağı seçin.
- Arka Uç Havuzu: Arka uç havuzu oluşturun ve NFS sunucusu VM'leri ekleyin.
- Gelen kuralları: Biri NW1, diğeri NW2 için olan iki yük dengeleme kuralı oluşturun. Her iki yük dengeleme kuralı için de aynı adımları izleyin.
- Ön uç IP adresi: Ön uç IP'lerini seçin
- Arka uç havuzu: Arka uç havuzunu seçin
- "Yüksek kullanılabilirlik bağlantı noktaları" seçeneğini denetleyin
- Protokol: TCP
- Durum Yoklaması: Aşağıdaki ayrıntılarla sistem durumu araştırması oluşturun (hem NW1 hem de NW2 için geçerlidir)
- Protokol: TCP
- Bağlantı noktası: [örneğin: NW1 için 61000, NW2 için 61001]
- Aralık: 5
- Yoklama Eşiği: 2
- Boşta kalma zaman aşımı (dakika): 30
- "Kayan IP'yi Etkinleştir" seçeneğini işaretleyin
Not
Portalda "İyi durumda olmayan eşik" olarak bilinen durum yoklaması yapılandırma özelliği numarasıOfProbes'a uyulmaz. Bu nedenle başarılı veya başarısız ardışık yoklama sayısını denetlemek için "probeThreshold" özelliğini 2 olarak ayarlayın. Şu anda Azure portalını kullanarak bu özelliği ayarlamak mümkün olmadığından Azure CLI veya PowerShell komutunu kullanın.
Not
Genel IP adresleri olmayan VM'ler iç (genel IP adresi yok) Standart Azure yük dengeleyicinin arka uç havuzuna yerleştirildiğinde, genel uç noktalarına yönlendirmeye izin vermek için ek yapılandırma yapılmadığı sürece giden İnternet bağlantısı olmaz. Giden bağlantı elde etme hakkında ayrıntılı bilgi için bkz. SAP yüksek kullanılabilirlik senaryolarında Azure Standart Load Balancer kullanarak Sanal Makineler için genel uç nokta bağlantısı.
Önemli
- Azure Load Balancer'ın arkasına yerleştirilen Azure VM'lerinde TCP zaman damgalarını etkinleştirmeyin. TCP zaman damgalarının etkinleştirilmesi sistem durumu yoklamalarının başarısız olmasına neden olur. parametresini
net.ipv4.tcp_timestamps
olarak0
ayarlayın. Ayrıntılar için bkz . Load Balancer sistem durumu yoklamaları. - saptune'un el ile ayarlanan
net.ipv4.tcp_timestamps
değerini geri ile0
değiştirmesini önlemek için1
saptune sürümünü 3.1.1 veya üzeri bir sürüme güncelleştirmeniz gerekir. Daha fazla ayrıntı için bkz . saptune 3.1.1 – Güncelleştirmem Gerekiyor mu?.
Pacemaker kümesi oluşturma
Bu NFS sunucusu için temel bir Pacemaker kümesi oluşturmak için Azure'da SUSE Linux Enterprise Server'da Pacemaker'ı ayarlama makalesindeki adımları izleyin.
NFS sunucusunu yapılandırma
Aşağıdaki öğelere [A] - tüm düğümler için geçerlidir, [1] - yalnızca düğüm 1 veya [2] için geçerlidir - yalnızca düğüm 2 için geçerlidir.
[A] Konak adı çözümlemesi ayarlama
Bir DNS sunucusu kullanabilir veya tüm düğümlerde /etc/hosts dosyasını değiştirebilirsiniz. Bu örnekte /etc/hosts dosyasının nasıl kullanılacağı gösterilmektedir. Aşağıdaki komutlarda IP adresini ve ana bilgisayar adını değiştirin
sudo vi /etc/hosts
/etc/hosts öğesine aşağıdaki satırları ekleyin. IP adresini ve ana bilgisayar adını ortamınızla eşleşecek şekilde değiştirme
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] NFS sunucusunu etkinleştirme
Kök NFS dışarı aktarma girdisini oluşturma
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] Drbd bileşenlerini yükleme
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] Drbd cihazları için bölüm oluşturma
Tüm kullanılabilir veri disklerini listeleme
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
Her veri diski için bölümler oluşturma
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] LVM yapılandırmaları oluşturma
Kullanılabilir tüm bölümleri listeleme
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
Her bölüm için LVM birimleri oluşturma
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] Drbd'yi yapılandırma
sudo vi /etc/drbd.conf
drbd.conf dosyasının aşağıdaki iki satırı içerdiğinden emin olun
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
Genel drbd yapılandırmasını değiştirme
sudo vi /etc/drbd.d/global_common.conf
İşleyici ve net bölümüne aşağıdaki girdileri ekleyin.
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] NFS drbd cihazlarını oluşturma
sudo vi /etc/drbd.d/NW1-nfs.res
Yeni drbd cihazının yapılandırmasını ekleyin ve çıkın
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
Yeni drbd cihazının yapılandırmasını ekleyin ve çıkın
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; } }
Drbd cihazını oluşturma ve başlatma
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] İlk eşitlemeyi atla
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] Birincil düğümü ayarlama
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] Yeni drbd cihazları eşitlenene kadar bekleyin
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] Drbd cihazlarında dosya sistemleri oluşturma
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] Drbd bölünmüş beyin algılamayı ayarlama
Drbd kullanarak verileri bir konaktan diğerine eşitlerken bölünmüş beyin adı verilen bir durum oluşabilir. Bölünmüş beyin, her iki küme düğümünün de drbd cihazını birincil cihaz olarak yükselttiği ve eşitlenmemiş olduğu bir senaryodur. Nadir bir durum olabilir ama yine de bölünmüş bir beyni mümkün olan en hızlı şekilde idare etmek ve çözmek istiyorsunuz. Bu nedenle bölünmüş bir beyin gerçekleştiğinde bildirim almak önemlidir.
Bölünmüş beyin bildirimi ayarlama hakkındaki resmi drbd belgelerini okuyun.
Bölünmüş bir beyin senaryosundan otomatik olarak kurtarmak da mümkündür. Daha fazla bilgi için bkz . Otomatik bölünmüş beyin kurtarma ilkeleri
Küme Çerçeveyi Yapılandırma
[1] SAP sistemi NW1 için NFS drbd cihazlarını küme yapılandırmasına ekleyin
Önemli
Son testlerde netcat'in yalnızca bir bağlantıyı işleme sınırlaması ve kapsam nedeniyle isteklere yanıt vermeyi durdurduğu durumlar ortaya çıktı. Netcat kaynağı Azure Load balancer isteklerini dinlemeyi durdurur ve kayan IP kullanılamaz duruma gelir.
Mevcut Pacemaker kümeleri için geçmişte netcat'i socat ile değiştirmenizi öneririz. Şu anda paket kaynak aracılarının parçası olan azure-lb kaynak aracısını aşağıdaki paket sürümü gereksinimleriyle kullanmanızı öneririz:- SLES 12 SP4/SP5 için, sürüm en az resource-agents-4.3.018.a7fb5035-3.30.1 olmalıdır.
- SLES 15/15 SP1 için, sürüm en az resource-agents-4.3.0184.6ee15eb2-4.13.1 olmalıdır.
Değişikliğin kısa bir kapalı kalma süresi gerektirdiğini unutmayın.
Mevcut Pacemaker kümelerinde yapılandırma, Azure Load-Balancer Algılama Sağlamlaştırma'da açıklandığı gibi socat kullanacak şekilde zaten değiştirildiyse, hemen azure-lb kaynak aracısına geçiş yapmanız gerekmez.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] SAP sistemi NW2 için NFS drbd cihazlarını küme yapılandırmasına ekleyin
# 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
Küme kaynaklarındakiexportfs
seçenek, eski SLES sürümleriyle geriye dönük uyumluluk için belgelerimizde yer alır.[1] Bakım modunu devre dışı bırakma
sudo crm configure property maintenance-mode=false
Sonraki adımlar
- SAP ASCS ve veritabanını yükleme
- SAP için Azure Sanal Makineler planlama ve uygulama
- SAP için Azure Sanal Makineler dağıtımı
- SAP için Azure Sanal Makineler DBMS dağıtımı
- Azure VM'lerinde SAP HANA'nın olağanüstü durum kurtarmasını planlama ve yüksek kullanılabilirlik oluşturma hakkında bilgi edinmek için bkz. Azure Sanal Makineler'de SAP HANA'nın Yüksek Kullanılabilirliği (VM'ler)