Windows yük devretme kümesine SAP NetWeaver HA yükleme ve Azure'da SAP ASCS/SCS örneği için paylaşılan disk

Bu makalede, SAP ASCS/SCS örneğini kümeleme için Windows Server yük devretme kümesi ve küme paylaşılan diski kullanarak Azure'da yüksek kullanılabilirlik sap sisteminin nasıl yükleneceği ve yapılandırıldığı açıklanır. Mimari kılavuzunda açıklandığı gibi: Küme paylaşılan diski kullanarak Windows yük devretme kümesinde SAP ASCS/SCS örneğini kümeleyin, küme paylaşılan diski için iki alternatif vardır:

Önkoşullar

Yüklemeye başlamadan önce şu belgeleri gözden geçirin:

Bu makalede DBMS kurulumu açıklanmaktadır çünkü kurulumlar kullandığınız DBMS sistemine bağlı olarak değişiklik gösterir. DBMS ile ilgili yüksek kullanılabilirlik sorunlarının farklı DBMS satıcılarının Azure için desteklediği işlevlerle giderildiğini varsayıyoruz. Sql Server için Always On veya veritabanı yansıtma ve Oracle veritabanları için Oracle Data Guard örnek olarak verilebilir. DBMS için yüksek kullanılabilirlik senaryoları bu makalede ele alınmamıştır.

Farklı DBMS hizmetleri Azure'da kümelenmiş bir SAP ASCS veya SCS yapılandırmasıyla etkileşime geçtiğinde dikkat edilmesi gereken özel bir nokta yoktur.

Not

SAP NetWeaver ABAP sistemleri, Java sistemleri ve ABAP+Java sistemlerinin yükleme yordamları neredeyse aynıdır. En önemli fark, SAP ABAP sisteminin bir ASCS örneğine sahip olmasıdır. SAP Java sisteminde bir SCS örneği vardır. SAP ABAP+Java sisteminde aynı Microsoft yük devretme kümesi grubunda çalışan bir ASCS örneği ve bir SCS örneği vardır. Her SAP NetWeaver yükleme yığını için tüm yükleme farkları açıkça belirtilir. Kalan adımların aynı olduğunu varsayabilirsiniz.

SAP'yi yüksek kullanılabilirlikli bir ASCS/SCS örneğiyle yükleme

Önemli

Paylaşılan diski sunmak için SIOS kullanıyorsanız, sayfa dosyanızı SIOS DataKeeper yansıtılmış birimlerine yerleştirmeyin. Sayfa dosyanızı varsayılan olan azure sanal makinesinin geçici D sürücüsünde bırakabilirsiniz. Henüz orada değilse, Windows sayfa dosyasını Azure sanal makinenizin D sürücüsüne taşıyın.

SAP'yi yüksek kullanılabilirlikli bir ASCS/SCS örneğiyle yüklemek şu görevleri içerir:

  • Kümelenmiş SAP ASCS/SCS örneği için bir sanal konak adı oluşturun.
  • SAP'yi ilk küme düğümüne yükleyin.
  • ASCS/SCS örneğinin SAP profilini değiştirin.
  • Yoklama bağlantı noktası ekleyin.
  • Windows güvenlik duvarı yoklaması bağlantı noktasını açın.

Kümelenmiş SAP ASCS/SCS örneği için sanal konak adı oluşturma

  1. Windows DNS yöneticisinde ASCS/SCS örneğinin sanal ana bilgisayar adı için bir DNS girdisi oluşturun.

    Önemli

    ASCS/SCS örneğinin sanal ana bilgisayar adına atadığınız IP adresi, Azure Load Balancer'a atadığınız IP adresiyle aynı olmalıdır.

    Şekil 1: SAP ASCS/SCS kümesi sanal adı ve TCP/IP adresi için DNS girdisini tanımlama

    SAP ASCS/SCS kümesi sanal adı ve TCP/IP adresi için DNS girdisini tanımlama

  2. Aynı zamanda kümelenmiş örnek olan yeni SAP Enqueue Çoğaltma Sunucusu 2'yi kullanıyorsanız, DNS'de de ERS2 için bir sanal ana bilgisayar adı ayırmanız gerekir.

    Önemli

    ERS2 örneğinin sanal ana bilgisayar adına atadığınız IP adresi, Azure Load Balancer'a atadığınız ikinci IP adresi olmalıdır.

    Şekil 1A: SAP ASCS/SCS kümesi sanal adı ve TCP/IP adresi için DNS girdisini tanımlama

    SAP ERS2 kümesi sanal adı ve TCP/IP adresi için DNS girdisini tanımlama

  3. Sanal ana bilgisayar adına atanan IP adresini tanımlamak için DNS Yöneticisi>Etki Alanı'nı seçin.

    Şekil 2: SAP ASCS/SCS küme yapılandırması için yeni sanal ad ve TCP/IP adresi

    SAP ASCS/SCS küme yapılandırması için yeni sanal ad ve TCP/IP adresi

SAP ilk küme düğümünü yükleme

  1. A küme düğümünde ilk küme düğümü seçeneğini yürütür. Aşağıdakileri seçin:

    • ABAP sistemi: ASCS örnek numarası 00
    • Java sistemi: SCS örnek numarası 01
    • ABAP+Java sistemi: ASCS örnek numarası 00 ve SCS örnek numarası 01

    Önemli

    Azure iç yük dengeleyici yük dengeleme kurallarındaki yapılandırmanın (Temel SKU kullanılıyorsa) ve seçili SAP örnek numaralarının eşleşmesi gerektiğini unutmayın.

  2. SAP tarafından açıklanan yükleme yordamını izleyin. "İlk Küme Düğümü" yüklemesini başlat seçeneğinde yapılandırma seçeneği olarak "Küme Paylaşılan Diski" seçeneğini belirlediğinizden emin olun.

İpucu

SAP yükleme belgelerinde ilk ASCS/SCS küme düğümünü yükleme işlemi açıklanmaktadır.

ASCS/SCS örneğinin SAP profilini değiştirme

Enqueue Çoğaltma Sunucusu 1'iniz varsa, aşağıda açıklandığı gibi SAP profil parametresini enque/encni/set_so_keepalive ekleyin. Profil parametresi, SAP iş işlemleri ile sıra sunucusu arasındaki bağlantıların çok uzun süre boşta kaldığında kapanmasını engeller. SAP parametresi ERS2 için gerekli değildir.

  1. ERS1 kullanıyorsanız bu profil parametresini SAP ASCS/SCS örnek profiline ekleyin.

    enque/encni/set_so_keepalive = true
    

    Hem ERS1 hem de ERS2 için işletim sistemi parametrelerinin keepalive SAP not 1410736'de açıklandığı gibi ayarlandığından emin olun.

  2. SAP profili parametre değişikliklerini uygulamak için SAP ASCS/SCS örneğini yeniden başlatın.

Yoklama bağlantı noktası ekleme

Küme yapılandırmasının tamamının Azure Load Balancer ile çalışmasını sağlamak için iç yük dengeleyicinin yoklama işlevini kullanın. Azure iç yük dengeleyicisi genellikle gelen iş yükünü katılan sanal makineler arasında eşit olarak dağıtır.

Ancak, yalnızca bir örnek etkin olduğundan bu bazı küme yapılandırmalarında çalışmaz. Diğer örnek pasiftir ve iş yükünden hiçbirini kabullenemez. Yoklama işlevi, Azure iç yük dengeleyici hangi örneğin etkin olduğunu algıladığında ve yalnızca etkin örneği hedeflediğinde yardımcı olur.

Önemli

Bu örnek yapılandırmada ProbePort 620Nr olarak ayarlanmıştır. 00 numaralı SAP ASCS örneği için 620 00'dir. Yapılandırmayı SAP örnek numaralarınızla VE SAP SID'nizle eşleşecek şekilde ayarlamanız gerekir.

Yoklama bağlantı noktası eklemek için bu PowerShell Modülünü küme VM'lerinden birinde çalıştırın:

  • SAP ASC/SCS Örneği söz konusu olduğunda

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
    
  • Kümelenmiş ERS2 kullanılıyorsa. Kümelenmediğinden ERS1 için yoklama bağlantı noktasını yapılandırmaya gerek yoktur.

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62001 -IsSAPERSClusteredInstance $True
    

İşlevin Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource kodu şöyle görünür:

 function Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource {

 <#
 .SYNOPSIS 
 Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer Health Probe Port on 'SAP $SAPSID IP' cluster resource.

 .DESCRIPTION
 Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer Health Probe Port on 'SAP $SAPSID IP' cluster resource.
 It will also restart SAP Cluster group (default behavior), to activate the changes. 

 You need to run it on one of the SAP ASCS/SCS Windows cluster nodes.

 Expectation is that SAP group is installed with official SWPM installation tool, which will set default expected naming convention for:
 - SAP Cluster Group:               'SAP $SAPSID'
 - SAP Cluster IP Address Resource: 'SAP $SAPSID IP' 

 .PARAMETER SAPSID 
 SAP SID - 3 characters staring with letter.

 .PARAMETER ProbePort 
 Azure Load Balancer Health Check Probe Port.

 .PARAMETER RestartSAPClusterGroup 
 Optional parameter. Default value is '$True', so SAP cluster group will be restarted to activate the changes.

 .PARAMETER IsSAPERSClusteredInstance 
 Optional parameter.Default value is '$False'.
 If set to $True , then handle clsutered new SAP ERS2 instance.

 .EXAMPLE 
 # Set probe port to 62000, on SAP cluster resource 'SAP AB1 IP', and restart the SAP cluster group 'SAP AB1', to activate the changes.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 

 .EXAMPLE 
 # Set probe port to 62000, on SAP cluster resource 'SAP AB1 IP'. SAP cluster group 'SAP AB1' IS NOT restarted, therefore changes are NOT active.
 # To activate the changes you need to manualy restart 'SAP AB1' cluster group.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -RestartSAPClusterGroup $False

 .EXAMPLE 
 # Set probe port to 62001, on SAP cluster resource 'SAP AB1 ERS IP'. SAP cluster group 'SAP AB1 ERS' IS restarted, to activate the changes.
 Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -IsSAPERSClusteredInstance $True

 #> 

     [CmdletBinding()]
     param(

         [Parameter(Mandatory=$True)]
         [ValidateNotNullOrEmpty()]  
         [ValidateLength(3,3)]      
         [string]$SAPSID,

         [Parameter(Mandatory=$True)]
         [ValidateNotNullOrEmpty()]        
         [int] $ProbePort,

         [Parameter(Mandatory=$False)] 
         [bool] $RestartSAPClusterGroup = $True,

         [Parameter(Mandatory=$False)] 
         [bool] $IsSAPERSClusteredInstance = $False
     )

     BEGIN{}

     PROCESS{
         try{                                      

             if($IsSAPERSClusteredInstance){
                 #Handle clustered SAP ERS Instance
                 $SAPClusterRoleName = "SAP $SAPSID ERS"
                 $SAPIPresourceName = "SAP $SAPSID ERS IP"            
             }else{
                 #Handle clustered SAP ASCS/SCS Instance
                 $SAPClusterRoleName = "SAP $SAPSID"
                 $SAPIPresourceName = "SAP $SAPSID IP"
             }

             $SAPIPResourceClusterParameters =  Get-ClusterResource $SAPIPresourceName | Get-ClusterParameter
             $IPAddress = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Address" }).Value
             $NetworkName = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Network" }).Value
             $SubnetMask = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "SubnetMask" }).Value
             $OverrideAddressMatch = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "OverrideAddressMatch" }).Value
             $EnableDhcp = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "EnableDhcp" }).Value
             $OldProbePort = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "ProbePort" }).Value

             $var = Get-ClusterResource | Where-Object {  $_.name -eq $SAPIPresourceName  }
             Write-Output "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:" 

             Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter

             Write-Output " "
             Write-Output "Current probe port property of the SAP cluster resource '$SAPIPresourceName' is '$OldProbePort'." 
             Write-Output " "
             Write-Output "Setting the new probe port property of the SAP cluster resource '$SAPIPresourceName' to '$ProbePort' ..." 
             Write-Output " "

             $var | Set-ClusterParameter -Multiple @{"Address"=$IPAddress;"ProbePort"=$ProbePort;"Subnetmask"=$SubnetMask;"Network"=$NetworkName;"OverrideAddressMatch"=$OverrideAddressMatch;"EnableDhcp"=$EnableDhcp}

             Write-Output " "

             if($RestartSAPClusterGroup){
                 Write-Output ""
                 Write-Output "Activating changes..." 

                 Write-Output " "
                 Write-Output "Taking SAP cluster IP resource '$SAPIPresourceName' offline ..."
                 Stop-ClusterResource -Name $SAPIPresourceName
                 sleep 5

                 Write-Output "Starting SAP cluster role '$SAPClusterRoleName' ..."
                 Start-ClusterGroup -Name $SAPClusterRoleName

                 Write-Output "New ProbePort parameter is active." 
                 Write-Output " "

                 Write-Output "New configuration parameters for SAP IP cluster resource '$SAPIPresourceName':" 
                 Write-Output " " 
                 Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
             }else
             {
                 Write-Output "SAP cluster role '$SAPClusterRoleName' is not restarted, therefore changes are not activated."
             }
         }
         catch{
            Write-Error  $_.Exception.Message
        }
     }
     END {}
 }

Windows güvenlik duvarı yoklama bağlantı noktasını açma

Her iki küme düğümünde de bir Windows güvenlik duvarı yoklaması bağlantı noktası açın. Windows güvenlik duvarı yoklaması bağlantı noktasını açmak için aşağıdaki betiği kullanın. Ortamınız için PowerShell değişkenlerini güncelleştirin.
ERS2 kullanıyorsanız, ERS2 yoklama bağlantı noktası için güvenlik duvarı bağlantı noktasını da açmanız gerekir.

  $ProbePort = 62000   # ProbePort of the Azure internal load balancer
  New-NetFirewallRule -Name AzureProbePort -DisplayName "Rule for Azure Probe Port" -Direction Inbound -Action Allow -Protocol TCP -LocalPort $ProbePort

Veritabanı örneğini yükleme

Veritabanı örneğini yüklemek için SAP yükleme belgelerinde açıklanan işlemi izleyin.

İkinci küme düğümünü yükleme

İkinci kümeyi yüklemek için SAP yükleme kılavuzunda açıklanan adımları izleyin.

SAP Birincil Uygulama Sunucusu'nu yükleme

PAS'yi barındırmak için belirlemiş olduğunuz sanal makineye Birincil Uygulama Sunucusu (PAS) örneği <SID-di-0'ı> yükleyin. Azure'da bağımlılık yoktur. SIOS kullanıyorsanız DataKeeper'a özgü ayar yoktur.

SAP Ek Uygulama Sunucusu'nu yükleme

SAP Application Server örneğini barındırmak için belirlemiş olduğunuz tüm sanal makinelere bir SAP Ek Uygulama Sunucusu (AAS) yükleyin.

SAP ASCS/SCS örneği yük devretmesini test edin

Ana hatlarıyla açıklanan yük devretme testleri için SAP ASCS'nin A düğümünde etkin olduğunu varsayıyoruz.

  1. SAP sisteminin A düğümünden B düğümüne başarıyla yük devretme gerçekleştirebildiğini doğrulayın SAP SID> küme grubunun A düğümünden küme düğümü B'ye yük devretmesini <başlatmak için bu seçeneklerden birini belirleyin:

    • Yük Devretme Kümelemesi Anketi
    • Yük Devretme Kümesi PowerShell
    $SAPSID = "PR1"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. Windows konuk işletim sistemindeki A küme düğümünü yeniden başlatın. Bu, SAP <SID> küme grubunun A düğümünden B düğümüne otomatik yük devretmesini başlatır.

  3. Azure portalından A küme düğümünü yeniden başlatın. Bu, SAP <SID> küme grubunun A düğümünden B düğümüne otomatik yük devretmesini başlatır.

  4. Azure PowerShell kullanarak A küme düğümünü yeniden başlatın. Bu, SAP <SID> küme grubunun A düğümünden B düğümüne otomatik yük devretmesini başlatır.

  5. Doğrulama

    • Yük devretme işleminden sonra SAP <SID> küme grubunun B küme düğümünde çalıştığını doğrulayın.

      Şekil 8: Yük Devretme Kümesi Yöneticisi'nde SAP <SID> küme grubu B küme düğümünde çalışıyor

      Yük Devretme Kümesi Yöneticisi'nde SAP <SID> küme grubu B küme düğümünde çalışıyor

    • Yük devretme sonrasında, paylaşılan diskin B küme düğümüne bağlandığını doğrulayın.

    • Yük devretmeden sonra, SIOS kullanıyorsanız SIOS DataKeeper'ın verileri küme düğümü B'de kaynak birim sürücüsü S'den A küme düğümündeki S birim sürücüsünü hedeflemek için çoğalttığını doğrulayın.

      Şekil 9: SIOS DataKeeper yerel birimi küme düğümü B'den A küme düğümüne çoğaltır

      SIOS DataKeeper yerel birimi küme düğümü B'den A küme düğümüne çoğaltır