Aracılığıyla paylaş


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

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.

SAP NetWeaver Yüksek Kullanılabilirliğine genel bakış

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.

  1. Ön uç IP Yapılandırması: İki ön uç IP'si oluşturun. NFS sunucunuzla aynı sanal ağı ve alt ağı seçin.
  2. Arka Uç Havuzu: Arka uç havuzu oluşturun ve NFS sunucusu VM'leri ekleyin.
  3. 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 olarak 0ayarlayın. Ayrıntılar için bkz . Load Balancer sistem durumu yoklamaları.
  • saptune'un el ile ayarlanan net.ipv4.tcp_timestamps değerini geri ile 0 değiştirmesini önlemek için 1saptune 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.

  1. [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
    
  2. [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/
    
  3. [A] Drbd bileşenlerini yükleme

    sudo zypper install drbd drbd-kmp-default drbd-utils
    
  4. [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'
    
  5. [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
    
  6. [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;
         }
    }
    
  7. [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
    
  8. [1] İlk eşitlemeyi atla

    sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs
    sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
    
  9. [1] Birincil düğümü ayarlama

    sudo drbdadm primary --force NW1-nfs
    sudo drbdadm primary --force NW2-nfs
    
  10. [1] Yeni drbd cihazları eşitlenene kadar bekleyin

    sudo drbdsetup wait-sync-resource NW1-nfs
    sudo drbdsetup wait-sync-resource NW2-nfs
    
  11. [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
    
  12. [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. [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
    
  2. [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ındaki exportfs seçenek, eski SLES sürümleriyle geriye dönük uyumluluk için belgelerimizde yer alır.

  3. [1] Bakım modunu devre dışı bırakma

    sudo crm configure property maintenance-mode=false
    

Sonraki adımlar