Bagikan melalui


Memasang SAP NetWeaver HA pada kluster failover Windows dan disk bersama untuk instans SAP ASCS/SCS di Azure

Artikel ini menjelaskan cara memasang dan mengonfigurasi sistem SAP dengan ketersediaan tinggi di Azure dengan menggunakan kluster failover Windows Server dan disk bersama kluster untuk mengkluster instans SAP ASCS/SCS. Seperti yang dijelaskan dalam Panduan arsitektur: Mengkluster instans SAP ASCS/SCS pada kluster failover Windows dengan menggunakan disk bersama kluster, ada dua alternatif untuk disk bersama kluster:

Prasyarat

Sebelum Anda memulai penginstalan, tinjau dokumen-dokumen ini:

Kami tidak akan menjelaskan pengaturan DBMS di artikel ini karena penyiapan bervariasi tergantung pada sistem DBMS yang Anda gunakan. Kami berasumsi bahwa masalah ketersediaan tinggi dengan DBMS ditangani dengan fungsionalitas yang didukung vendor DBMS yang berbeda untuk Azure. Contohnya, Grup Ketersediaan AlwaysOn atau pencerminan database untuk SQL Server dan Oracle Data Guard untuk database Oracle. Skenario ketersediaan tinggi untuk DBMS tidak tercakup dalam artikel ini.

Tidak ada pertimbangan khusus saat layanan DBMS yang berbeda berinteraksi dengan konfigurasi SAP ASCS atau SCS terkluster di Azure.

Catatan

Prosedur penginstalan sistem SAP NetWeaver ABAP, sistem Java, dan sistem ABAP+Java hampir identik. Perbedaan yang paling signifikan adalah bahwa sistem SAP ABAP memiliki satu instance ASCS. Sistem SAP Java memiliki satu instance SCS. Sistem SAP ABAP+Java memiliki satu instans ASCS dan satu instans SCS yang berjalan dalam grup kluster failover Microsoft yang sama. Setiap perbedaan penginstalan untuk setiap tumpukan penginstalan SAP NetWeaver secara eksplisit disebutkan. Anda dapat berasumsi bahwa sisa langkah-langkahnya sama.

Memasang SAP dengan instans ASCS/SCS dengan ketersediaan tinggi

Penting

Jika Anda menggunakan SIOS untuk menyajikan disk bersama, jangan letakkan file halaman Anda di volume cermin SIOS DataKeeper. Anda dapat meninggalkan file halaman Anda di drive sementara D dari komputer virtual Azure, yang merupakan default. Jika belum ada, pindahkan file halaman Windows ke drive D komputer virtual Azure Anda.

memasang SAP dengan instans ASCS/SCS dengan ketersediaan tinggi melibatkan tugas-tugas ini:

  • Membuat nama host virtual untuk instans SAP ASCS/SCS terkluster.
  • Memasang SAP pada simpul kluster pertama.
  • Mengubah profil SAP instans ASCS/SCS.
  • Menambahkan port probe.
  • Membuka port probe firewall Windows.

Membuat nama host virtual untuk instans SAP ASCS/SCS terklaster

  1. Di manajer DNS Windows, buat entri DNS untuk nama host virtual instans ASCS/SCS.

    Penting

    Alamat IP yang Anda tetapkan ke nama host virtual instans ASCS/SCS harus sama dengan alamat IP yang Anda tetapkan ke Azure Load Balancer.

    Figure 1: Define the DNS entry for the SAP ASCS/SCS cluster virtual name and TCP/IP address

    Tentukan entri DNS untuk nama virtual kluster SAP ASCS/SCS dan alamat TCP/IP

  2. Jika menggunakan SAP Enqueue Replication Server 2, yang juga merupakan instans terkluster, maka Anda perlu menentukan nama host virtual untuk ERS2 juga di DNS.

    Penting

    Alamat IP yang Anda tetapkan ke nama host virtual instans ERS2 harus sama dengan alamat IP kedua yang Anda tetapkan ke Azure Load Balancer.

    Figure 1A: Define the DNS entry for the SAP ASCS/SCS cluster virtual name and TCP/IP address

    Tentukan entri DNS untuk nama virtual kluster SAP ERS2 dan alamat TCP/IP

  3. Untuk menentukan alamat IP yang ditetapkan ke nama host virtual, pilih Pengelola DNS>Domain.

    Figure 2: New virtual name and TCP/IP address for SAP ASCS/SCS cluster configuration

    Nama virtual dan alamat TCP/IP baru untuk konfigurasi kluster SAP ASCS/SCS

Pasang simpul klaster pertama SAP

  1. Jalankan opsi node kluster pertama pada node kluster A. Pilih:

    • Sistem ABAP: Nomor instans ASCS 00
    • Sistem Java: Nomor instans SCS01
    • Sistem ABAP+Java: Nomor instans ASCS 00 dan instans SCS nomor 01

    Penting

    Perlu diingat bahwa konfigurasi di aturan keseimbangan muatan dari penyeimbang muatan internal Azure (jika menggunakan SKU dasar) dan nomer instans yang dipilih harus sesuai.

  2. Ikuti prosedur penginstalan yang dijelaskan SAP. Pastikan di opsi mulai penginstalan "Node Kluster Pertama", untuk memilih "Disk Bersama Kluster" sebagai opsi konfigurasi.

Tip

Dokumentasi penginstalan SAP menjelaskan cara memasang node kluster ASCS /SCS pertama.

Memodifikasi profil SAP instans ASCS/SCS

Jika Anda memiliki Server Replikasi Antrean 1, tambahkan parameter profil SAP enque/encni/set_so_keepalive seperti yang dijelaskan di bawah ini. Parameter profil mencegah koneksi antara proses kerja SAP dan server enqueue menutup saat menganggur terlalu lama. Parameter SAP tidak diperlukan untuk ERS2.

  1. Tambahkan parameter profil ini ke profil instans SAP ASCS/SCS, jika menggunakan ERS1.

    enque/encni/set_so_keepalive = true
    

    Untuk ERS1 dan ERS2, pastikan bahwa keepalive parameter OS diatur seperti yang dijelaskan dalam Catatan SAP 1410736.

  2. Untuk menerapkan perubahan parameter profil SAP, mulai ulang instans SAP ASCS/SCS.

Menambahkan port penyelidikan

Gunakan fungsionalitas probe internal load balancer untuk membuat seluruh konfigurasi kluster berfungsi dengan Azure Load Balancer. Azure internal load balancer biasanya mendistribusikan beban kerja yang masuk secara merata antara komputer virtual yang berpartisipasi.

Akan tetapi, ini tidak akan berfungsi di beberapa konfigurasi kluster karena hanya satu instans yang aktif. Instans lainnya pasif dan tidak dapat menerima beban kerja apa pun. Fungsionalitas probe membantu saat Azure internal load balancer mendeteksi instans mana yang aktif, dan hanya menargetkan instans aktif.

Penting

Dalam konfigurasi contoh ini, ProbePort diatur ke 620Nr. Untuk instans SAP ASCS dengan nomor 00 itu adalah 62000. Anda harus menyesuaikan konfigurasi agar sesuai dengan nomor instans SAP dan SAP SID Anda.

Untuk menambahkan port pemeriksaan, jalankan Modul PowerShell ini pada salah satu VM klaster:

  • Dalam kasus Instans SAP ASC/SCS

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
    
  • Jika menggunakan ERS2, yang terkluster. Tidak perlu mengonfigurasi port pemeriksaan untuk ERS1, karena tidak terklaster.

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

Kode untuk fungsi Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource akan terlihat seperti:

 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 {}
 }

Buka port pemeriksaan firewall Windows

Buka port probe firewall Windows pada kedua node kluster. Gunakan skrip berikut ini untuk membuka port probe firewall Windows. Perbarui variabel PowerShell untuk lingkungan Anda.
Jika menggunakan ERS2, Anda juga perlu membuka port firewall untuk port probe ERS2.

  $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

Menginstal instans database

Untuk memasang instans database, ikuti proses yang dijelaskan dalam dokumentasi penginstalan SAP.

Menginstal node kluster kedua

Untuk memasang kluster kedua, ikuti langkah-langkah yang dijelaskan dalam panduan penginstalan SAP.

Menginstal Server Aplikasi Utama SAP

Pasang instans Server Aplikasi Utama (PAS) <SID>-di-0 pada mesin virtual yang telah ditetapkan sebagai host bagi PAS. Tidak ada dependensi pada Azure. Jika menggunakan SIOS, tidak ada pengaturan khusus DataKeeper.

Menginstal Server Aplikasi Tambahan SAP

Pasang SAP Additional Application Server (AAS) di semua komputer virtual yang telah Anda tetapkan untuk meng-host instans Server Aplikasi SAP.

Uji failover instans SAP ASCS/SCS

Untuk pengujian failover yang diuraikan, kami berasumsi bahwa SAP ASCS aktif pada simpul A.

  1. Verifikasi bahwa sistem SAP berhasil failover dari node A ke node B Pilih salah satu opsi untuk memulai failover grup kluster <SID> SAP dari kluster node A ke kluster node B:

    • Buka Pengelola Kluster Failover
    • PowerShell Kluster Failover
    $SAPSID = "PR1"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. Mulai ulang node kluster A dalam sistem operasi tamu Windows. Langkah ini menginisialisasi failover otomatis grup kluster SAP <SID> dari simpul A ke simpul B.

  3. Mulai ulang node kluster A dari portal Microsoft Azure. Langkah ini menginisialisasi failover otomatis grup kluster SAP <SID> dari simpul A ke simpul B.

  4. Mulai ulang node kluster A dengan menggunakan Azure PowerShell. Langkah ini menginisialisasi failover otomatis grup kluster SAP <SID> dari simpul A ke simpul B.

  5. Verifikasi

    • Setelah failover, verifikasi bahwa grup kluster SAP <SID> berjalan pada node kluster B.

      Figure 8: In Failover Cluster Manager, the SAP <SID> cluster group is running on cluster node B

      Pada Manajer Kluster Failover, grup kluster <SID> SAP berjalan pada kluster node B

    • Setelah failover, verifikasi disk bersama sekarang dipasang pada node kluster B.

    • Setelah failover, jika menggunakan SIOS, verifikasi bahwa SIOS DataKeeper sedang mereplikasi data dari drive S volume sumber pada node kluster B untuk menargetkan drive S volume pada node kluster A.

      Figure 9: SIOS DataKeeper replicates the local volume from cluster node B to cluster node A

      SIOS DataKeeper mereplikasi volume lokal dari node kluster B ke node kluster A