Bagikan melalui


Tutorial: Mengonfigurasi grup ketersediaan untuk SQL Server pada komputer virtual RHEL di Azure

Berlaku untuk: SQL Server di Azure VM

Catatan

Kami menggunakan SQL Server 2017 (14.x) dengan RHEL 7.6 dalam tutorial ini, tetapi dimungkinkan untuk menggunakan SQL Server 2019 (15.x) di RHEL 7 atau RHEL 8 untuk mengonfigurasi ketersediaan tinggi. Perintah untuk mengonfigurasi kluster Pacemaker dan sumber daya grup ketersediaan telah berubah di RHEL 8, dan Anda mungkin ingin melihat artikel Membuat sumber daya grup ketersediaan dan sumber daya RHEL 8 untuk informasi selengkapnya tentang perintah yang benar.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat grup sumber daya baru, set ketersediaan, dan komputer virtual Linux (komputer virtual)
  • Mengaktifkan ketersediaan tinggi (HA)
  • Membuat kluster Pacemaker
  • Mengonfigurasi agen anggar dengan membuat perangkat STONITH
  • Memasang SQL Server dan mssql-tools di RHEL
  • Mengonfigurasikan grup ketersediaan SQL Server Always On
  • Mengonfigurasikan sumber daya grup ketersediaan (AG) di kluster Pacemaker
  • Menguji kegagalan dan agen anggar

Tutorial ini menggunakan Azure CLI untuk menyebarkan sumber daya di Azure.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Prasyarat

  • Artikel ini memerlukan Azure CLI versi 2.0.30 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Buat grup sumber daya

Jika Anda memiliki lebih dari satu langganan, set langganan yang ingin Anda sebarkan sumber daya ini.

Gunakan perintah berikut untuk membuat grup sumber daya <resourceGroupName> di suatu wilayah. Ganti <resourceGroupName> dengan nama pilihan Anda. Kami menggunakan tutorial East US 2 ini. Untuk informasi selengkapnya, lihat Mulai Cepat berikut ini.

az group create --name <resourceGroupName> --location eastus2

Membuat set ketersediaan

Langkah selanjutnya adalah membuat kumpulan ketersediaan. Jalankan perintah berikut ini di Azure Cloud Shell, dan ganti <resourceGroupName> dengan nama grup sumber daya Anda. Pilih nama untuk <availabilitySetName>.

az vm availability-set create \
    --resource-group <resourceGroupName> \
    --name <availabilitySetName> \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

Anda akan mendapatkan hasil berikut setelah perintah selesai:

{
  "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/availabilitySets/<availabilitySetName>",
  "location": "eastus2",
  "name": "<availabilitySetName>",
  "platformFaultDomainCount": 2,
  "platformUpdateDomainCount": 2,
  "proximityPlacementGroup": null,
  "resourceGroup": "<resourceGroupName>",
  "sku": {
    "capacity": null,
    "name": "Aligned",
    "tier": null
  },
  "statuses": null,
  "tags": {},
  "type": "Microsoft.Compute/availabilitySets",
  "virtualMachines": []
}

Membuat komputer virtual RHEL di dalam set ketersediaan

Peringatan

Jika Anda memilih gambar RHEL Pay-As-You-Go (PAYG), dan mengonfigurasi ketersediaan tinggi (HA), Anda mungkin diharuskan untuk mendaftarkan langganan Anda. Ini dapat menyebabkan Anda membayar dua kali untuk langganan, karena Anda akan dikenakan biaya untuk langganan Microsoft Azure RHEL untuk VM, dan langganan Red Hat. Untuk informasi selengkapnya, lihat https://access.redhat.com/solutions/2458541 .

Untuk menghindari "ditagih ganda", gunakan gambar RHEL HA saat membuat VM Azure. Gambar yang ditawarkan sebagai gambar RHEL-HA juga merupakan gambar PAYG dengan repo HA yang diaktifkan sebelumnya.

  1. Dapatkan daftar gambar komputer virtual yang menawarkan RHEL dengan ketersediaan tinggi:

    az vm image list --all --offer "RHEL-HA"
    

    Anda akan melihat hasil berikut ini:

    [
      {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "7.4",
    "urn": "RedHat:RHEL-HA:7.4:7.4.2019062021",
    "version": "7.4.2019062021"
       },
       {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "7.5",
    "urn": "RedHat:RHEL-HA:7.5:7.5.2019062021",
    "version": "7.5.2019062021"
        },
        {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "7.6",
    "urn": "RedHat:RHEL-HA:7.6:7.6.2019062019",
    "version": "7.6.2019062019"
         },
         {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "8.0",
    "urn": "RedHat:RHEL-HA:8.0:8.0.2020021914",
    "version": "8.0.2020021914"
         },
         {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "8.1",
    "urn": "RedHat:RHEL-HA:8.1:8.1.2020021914",
    "version": "8.1.2020021914"
          },
          {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "80-gen2",
    "urn": "RedHat:RHEL-HA:80-gen2:8.0.2020021915",
    "version": "8.0.2020021915"
           },
           {
    "offer": "RHEL-HA",
    "publisher": "RedHat",
    "sku": "81_gen2",
    "urn": "RedHat:RHEL-HA:81_gen2:8.1.2020021915",
    "version": "8.1.2020021915"
           }
    ]
    

    Untuk tutorial ini, kami memilih gambar RedHat:RHEL-HA:7.6:7.6.2019062019 untuk contoh RHEL 7 dan memilih RedHat:RHEL-HA:8.1:8.1.2020021914 untuk contoh RHEL 8.

    Anda juga dapat memilih SQL Server 2019 (15.x) yang telah diinstal sebelumnya pada gambar RHEL8-HA. Untuk mendapatkan daftar gambar ini, jalankan perintah berikut:

    az vm image list --all --offer "sql2019-rhel8"
    

    Anda akan melihat hasil berikut ini:

    [
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "enterprise",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200317",
          "version": "15.0.200317"
       },
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "enterprise",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200512",
          "version": "15.0.200512"
       },
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "sqldev",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200317",
          "version": "15.0.200317"
       },
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "sqldev",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200512",
          "version": "15.0.200512"
       },
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "standard",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200317",
          "version": "15.0.200317"
       },
       {
          "offer": "sql2019-rhel8",
          "publisher": "MicrosoftSQLServer",
          "sku": "standard",
          "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200512",
          "version": "15.0.200512"
       }
    ]
    

    Jika Anda menggunakan salah satu gambar di atas untuk membuat komputer virtual, itu memiliki SQL Server 2019 (15.x) yang telah diinstal sebelumnya. Lompati bagian Pasang SQL Server dan mssql-tools seperti yang dijelaskan dalam artikel ini.

    Penting

    Nama komputer harus kurang dari 15 karakter untuk menyiapkan grup ketersediaan. Nama pengguna tidak boleh berisi karakter huruf besar, dan kata sandi harus memiliki lebih dari 12 karakter.

  2. Kami ingin membuat 3 komputer virtual dalam set ketersediaan. Ganti nilai-nilai ini dalam perintah berikut:

    • <resourceGroupName>
    • <VM-basename>
    • <availabilitySetName>
    • <VM-Size> - Contohnya adalah "Standard_D16_v3"
    • <username>
    • <adminPassword>
    for i in `seq 1 3`; do
           az vm create \
             --resource-group <resourceGroupName> \
             --name <VM-basename>$i \
             --availability-set <availabilitySetName> \
             --size "<VM-Size>"  \
             --image "RedHat:RHEL-HA:7.6:7.6.2019062019" \
             --admin-username "<username>" \
             --admin-password "<adminPassword>" \
             --authentication-type all \
             --generate-ssh-keys
    done
    

Perintah di atas membuat VM, dan membuat jaringan virtual default untuk VM tersebut. Untuk informasi selengkapnya tentang konfigurasi yang berbeda, lihat artikel membuat az vm.

Anda akan mendapatkan hasil yang mirip dengan yang berikut setelah perintah selesai untuk setiap komputer virtual:

{
  "fqdns": "",
  "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<VM1>",
  "location": "eastus2",
  "macAddress": "<Some MAC address>",
  "powerState": "VM running",
  "privateIpAddress": "<IP1>",
  "publicIpAddress": "",
  "resourceGroup": "<resourceGroupName>",
  "zones": ""
}

Penting

Gambar default yang dibuat dengan perintah di atas membuat disk OS 32GB secara default. Anda berpotensi kehabisan ruang dengan penginstalan default ini. Anda dapat menggunakan parameter berikut yang ditambahkan ke az vm create perintah di atas untuk membuat disk OS dengan 128GB sebagai contoh: --os-disk-size-gb 128.

Anda kemudian dapat konfigurasikan Logical Volume Manager (LVM) jika Anda perlu memperluas volume folder yang sesuai untuk mengakomodasi penginstalan Anda.

Pengujian koneksi ke komputer virtual yang telah dibuat

Sambungkan ke komputer virtual1 atau komputer virtual lainnya menggunakan perintah berikut ini di Azure Cloud Shell. Jika Anda tidak dapat menemukan IP VM Anda, ikuti Mulai Cepat ini di Azure Cloud Shell.

ssh <username>@publicipaddress

Jika koneksi berhasil, Anda akan melihat output berikut yang mewakili terminal Linux:

[<username>@<VM1> ~]$

Ketik exit untuk meninggalkan sesi SSH.

Aktifkan Ketersediaan Tinggi

Penting

Untuk menyelesaikan bagian tutorial ini, Anda harus memiliki langganan RHEL dan Add-on Ketersediaan Tinggi. Jika Anda menggunakan gambar yang direkomendasikan di bagian sebelumnya, Anda tidak perlu mendaftarkan langganan lain.

Sambungkan ke setiap simpul VM dan ikuti panduan ini untuk mengaktifkan KETERSEDIAAN TINGGI. Untuk informasi selengkapnya, lihat mengaktifkan langganan ketersediaan tinggi untuk RHEL.

Tip

Akan lebih mudah jika Anda membuka sesi SSH ke masing-masing komputer virtual secara bersamaan karena perintah yang sama perlu dijalankan pada setiap komputer virtual di seluruh artikel.

Jika Anda menyalin dan menempelkan beberapa sudo perintah, dan dimintai kata sandi, perintah tambahan tidak akan berjalan. Jalankan setiap perintah secara terpisah.

  1. Untuk membuka port firewall Pacemaker, jalankan perintah berikut pada setiap VM:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    
  2. Perbarui dan pasang paket Pacemaker pada semua simpul menggunakan perintah berikut:

    Catatan

    nmap diinstal sebagai bagian dari blok perintah ini sebagai alat untuk menemukan alamat IP yang tersedia di jaringan Anda. Anda tidak perlu menginstal nmap, tetapi akan berguna nanti dalam tutorial ini.

    sudo yum update -y
    sudo yum install -y pacemaker pcs fence-agents-all resource-agents fence-agents-azure-arm nmap
    sudo reboot
    
  3. Set kata sandi untuk pengguna default yang dibuat saat memasang paket Pacemaker. Gunakan kata sandi yang sama pada semua simpul.

    sudo passwd hacluster
    
  4. Gunakan perintah berikut untuk membuka file host dan menyiapkan resolusi nama host. Untuk informasi selengkapnya, lihat Mengonfigurasi AG pada mengonfigurasi file host.

    sudo vi /etc/hosts
    

    Di editor vi, masukkan i untuk menyisipkan teks, dan pada baris kosong, tambahkan IP Privat dari komputer virtual terkait. Kemudian tambahkan nama komputer virtual setelah spasi di samping IP. Setiap baris harus memiliki entri terpisah.

    <IP1> <VM1>
    <IP2> <VM2>
    <IP3> <VM3>
    

    Penting

    Kami menyarankan agar Anda menggunakan alamat IP Privat Anda dalam contoh sebelumnya. Menggunakan alamat IP Publik dalam konfigurasi ini akan menyebabkan penyetelan gagal dan kami tidak menyarankan untuk mengekspos komputer virtual Anda ke jaringan eksternal.

    Untuk keluar dari editor vi, pertama-tama tekan kunci Esc, dan kemudian masukkan perintah :wq untuk menulis file dan berhenti.

Membuat kluster Pacemaker

Di bagian ini, Anda mengaktifkan dan memulai layanan pcsd, lalu mengonfigurasi kluster. Untuk SQL Server di Linux, sumber daya kluster tidak dibuat secara otomatis. Anda perlu mengaktifkan dan membuat sumber daya Pacemaker secara manual. Untuk informasi selengkapnya, lihat artikel tentang mengonfigurasi instans kluster failover untuk RHEL.

Mengaktifkan dan memulai layanan pcsd dan Pacemaker

  1. Jalankan perintah pada semua simpul. Perintah ini memungkinkan simpul untuk bergabung kembali dengan kluster setelah setiap simpul dimulai ulang.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  2. Hapus konfigurasi kluster yang ada dari semua simpul. Jalankan perintah berikut:

    sudo pcs cluster destroy
    sudo systemctl enable pacemaker
    
  3. Pada simpul utama, jalankan perintah berikut untuk siapkan kluster.

    • Saat menjalankan pcs cluster auth perintah untuk mengautentikasi node kluster, Anda akan dimintai kata sandi. Masukkan kata sandi untuk pengguna hacluster yang dibuat sebelumnya.

    RHEL7

    sudo pcs cluster auth <VM1> <VM2> <VM3> -u hacluster
    sudo pcs cluster setup --name az-hacluster <VM1> <VM2> <VM3> --token 30000
    sudo pcs cluster start --all
    sudo pcs cluster enable --all
    

    RHEL8

    Untuk RHEL 8, Anda perlu mengautentikasi simpul secara terpisah. Masukkan nama pengguna dan kata sandi secara manual untuk hacluster saat diminta.

    sudo pcs host auth <node1> <node2> <node3>
    sudo pcs cluster setup <clusterName> <node1> <node2> <node3>
    sudo pcs cluster start --all
    sudo pcs cluster enable --all
    
  4. Jalankan perintah berikut untuk memeriksa bahwa semua simpul sedang online.

    sudo pcs status
    

    RHEL 7

    Jika semua simpul online, Anda akan melihat output yang mirip dengan contoh berikut:

    Cluster name: az-hacluster
    
    WARNINGS:
    No stonith devices and stonith-enabled is not false
    
    Stack: corosync
    Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
    Last updated: Fri Aug 23 18:27:57 2019
    Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2>
    
    3 nodes configured
    0 resources configured
    
    Online: [ <VM1> <VM2> <VM3> ]
    
    No resources
    
    Daemon Status:
          corosync: active/enabled
          pacemaker: active/enabled
          pcsd: active/enabled
    

    RHEL 8

    Cluster name: az-hacluster
    
    WARNINGS:
    No stonith devices and stonith-enabled is not false
    
    Cluster Summary:
      * Stack: corosync
      * Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
      * Last updated: Fri Aug 23 18:27:57 2019
      * Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2>
      * 3 nodes configured
      * 0 resource instances configured
    
    Node List:
      * Online: [ <VM1> <VM2> <VM3> ]
    
    Full List of Resources:
      * No resources
    
    Daemon Status:
      * corosync: active/enabled
      * pacemaker: active/enabled
      * pcsd: active/enabled
    
  5. Set pilihan yang diharapkan di kluster langsung menjadi 3. Perintah ini hanya memengaruhi kluster langsung, dan tidak mengubah file konfigurasi.

    Pada semua simpul, tetapkan pilihan suara yang diharapkan dengan perintah berikut:

    sudo pcs quorum expected-votes 3
    

Mengonfigurasi agen anggar

Untuk mengonfigurasi agen anggar, instruksi berikut dimodifikasi untuk tutorial ini. Untuk informasi selengkapnya, lihat membuat perangkat STONITH.

Periksa versi Azure Fence Agent untuk memastikan bahwa azure Fence Agent diperbarui. Gunakan perintah berikut:

sudo yum info fence-agents-azure-arm

Anda akan melihat output serupa dengan contoh di bawah ini.

Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
Name        : fence-agents-azure-arm
Arch        : x86_64
Version     : 4.2.1
Release     : 11.el7_6.8
Size        : 28 k
Repo        : installed
From repo   : rhel-ha-for-rhel-7-server-eus-rhui-rpms
Summary     : Fence agent for Azure Resource Manager
URL         : https://github.com/ClusterLabs/fence-agents
License     : GPLv2+ and LGPLv2+
Description : The fence-agents-azure-arm package contains a fence agent for Azure instances.

Mendaftarkan aplikasi baru di ID Microsoft Entra

Untuk mendaftarkan aplikasi baru di ID Microsoft Entra (sebelumnya Azure Active Directory), ikuti langkah-langkah berikut:

  1. Buka https://portal.azure.com.
  2. Buka panel Properti ID Microsoft Entra dan tuliskan Tenant ID.
  3. Pilih Pendaftaran aplikasi.
  4. Pilih Pendaftaran baru.
  5. Masukkan Nama seperti <resourceGroupName>-app. Untuk jenis akun yang didukung, pilih Akun hanya di direktori organisasi ini (hanya Microsoft - Penyewa tunggal).
  6. Pilih Web untuk URI Pengalihan, dan masukkan URL (misalnya, http://localhost) dan pilih Tambahkan. URL masuk dapat berupa URL yang valid. Setelah selesai, pilih Daftar.
  7. Pilih Sertifikat dan rahasia untuk pendaftaran Aplikasi baru Anda, lalu pilih Rahasia klien baru.
  8. Masukkan deskripsi untuk kunci baru (rahasia klien), lalu pilih Tambahkan.
  9. Tuliskan nilai rahasianya. Ini digunakan sebagai kata sandi untuk perwakilan layanan.
  10. Pilih Ikhtisar. Tuliskan ID Aplikasi. Ini digunakan sebagai nama pengguna (ID masuk dalam langkah-langkah berikut) dari perwakilan layanan.

Membuat peran kustom untuk agen anggar

Ikuti tutorial untuk Membuat peran kustom Azure menggunakan CLI Azure.

File JSON Anda akan terlihat seperti contoh berikut:

  • Ganti <username> dengan nama pilihan Anda. Hal ini untuk menghindari duplikasi saat membuat definisi peran ini.
  • Ganti <subscriptionId> dengan ID Langganan Azure Anda.
{
  "Name": "Linux Fence Agent Role-<username>",
  "Id": null,
  "IsCustom": true,
  "Description": "Allows to power-off and start virtual machines",
  "Actions": [
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/powerOff/action",
    "Microsoft.Compute/virtualMachines/start/action"
  ],
  "NotActions": [
  ],
  "AssignableScopes": [
    "/subscriptions/<subscriptionId>"
  ]
}

Untuk menambahkan peran, jalankan perintah berikut:

  • Ganti <filename> dengan nama file.
  • Jika Anda menjalankan perintah dari jalur selain folder tempat file disimpan, sertakan jalur folder file dalam perintah.
az role definition create --role-definition "<filename>.json"

Anda akan menemukan output berikut:

{
  "assignableScopes": [
    "/subscriptions/<subscriptionId>"
  ],
  "description": "Allows to power-off and start virtual machines",
  "id": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/roleDefinitions/<roleNameId>",
  "name": "<roleNameId>",
  "permissions": [
    {
      "actions": [
        "Microsoft.Compute/*/read",
        "Microsoft.Compute/virtualMachines/powerOff/action",
        "Microsoft.Compute/virtualMachines/start/action"
      ],
      "dataActions": [],
      "notActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "Linux Fence Agent Role-<username>",
  "roleType": "CustomRole",
  "type": "Microsoft.Authorization/roleDefinitions"
}

Menetapkan peran kustom untuk Kepala Sekolah Layanan

Tetapkan peran kustom Linux Fence Agent Role-<username> yang dibuat pada langkah terakhir ke Perwakilan layanan. Jangan gunakan peran Pemilik lagi.

  1. Buka https://portal.azure.com
  2. Buka panel Semua sumber daya
  3. Pilih komputer virtual dari simpul kluster pertama
  4. Pilih Kontrol akses (IAM)
  5. Pilih Tambahkan penetapan peran
  6. Pilih peran Linux Fence Agent Role-<username> dari daftar Peran
  7. Di daftar Pilih, masukkan nama aplikasi yang Anda buat sebelumnya,<resourceGroupName>-app
  8. Pilih Simpan
  9. Ulangi langkah-langkah ini untuk semua node kluster.

Membuat perangkat STONITH

Jalankan perintah berikut pada simpul 1:

  • Ganti <ApplicationID> dengan nilai ID dari pendaftaran aplikasi Anda.
  • Ganti <servicePrincipalPassword> nilai dengan dari rahasia klien.
  • Ganti <resourceGroupName> dengan grup sumber daya dari langganan Anda yang digunakan untuk tutorial ini.
  • Ganti <tenantID> dan <subscriptionId> dari Langganan Azure Anda.
sudo pcs property set stonith-timeout=900
sudo pcs stonith create rsc_st_azure fence_azure_arm login="<ApplicationID>" passwd="<servicePrincipalPassword>" resourceGroup="<resourceGroupName>" tenantId="<tenantID>" subscriptionId="<subscriptionId>" power_timeout=240 pcmk_reboot_timeout=900

Karena kami sudah menambahkan aturan ke firewall kami untuk memungkinkan layanan ketersediaan tinggi (--add-service=high-availability), tidak perlu membuka port firewall berikut pada semua simpul: 2224, 3121, 21064, 5405. Namun, jika Anda mengalami semua jenis masalah koneksi dengan KETERSEDIAAN TINGGI, gunakan perintah berikut untuk membuka port ini yang terkait dengan KETERSEDIAAN TINGGI.

Tip

Anda dapat secara opsional menambahkan semua port dalam tutorial ini sekaligus untuk menghemat waktu. Port yang perlu dibuka dijelaskan di bagian relevannya yang mengikuti. Jika Anda ingin menambahkan semua port sekarang, tambahkan port tambahan: 1433 dan 5022.

sudo firewall-cmd --zone=public --add-port=2224/tcp --add-port=3121/tcp --add-port=21064/tcp --add-port=5405/tcp --permanent
sudo firewall-cmd --reload

Memasang SQL Server dan mssql-tools

Catatan

Jika Anda telah membuat VM dengan SQL Server 2019 (15.x) yang telah diinstal sebelumnya pada RHEL8-HA maka Anda dapat melewati langkah-langkah di bawah ini untuk menginstal SQL Server dan mssql-tools dan memulai bagian Konfigurasikan Grup Ketersediaan setelah Anda menyiapkan kata sandi sa pada semua VM dengan menjalankan perintah sudo /opt/mssql/bin/mssql-conf set-sa-password pada semua VM.

Gunakan bagian di bawah ini untuk memasang SQL Server dan mssql-tools pada komputer virtual. Anda dapat memilih salah satu sampel di bawah ini untuk menginstal SQL Server 2017 (14.x) pada RHEL 7 atau SQL Server 2019 (15.x) di RHEL 8. Lakukan masing-masing tindakan ini pada semua simpul. Untuk informasi selengkapnya, lihat Memasang SQL Server pada komputer virtual Red Hat.

Menginstal SQL Server pada VM

Perintah berikut ini digunakan untuk memasang SQL Server:

RHEL 7 dengan SQL Server 2017

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha

RHEL 8 dengan SQL Server 2019

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha

Membuka port firewall 1433 untuk sambungan jarak jauh

Anda perlu membuka port 1433 pada VM untuk terhubung dari jarak jauh. Gunakan perintah berikut untuk membuka port 1433 di firewall setiap komputer virtual:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

Menginstal alat baris perintah SQL Server

Perintah berikut ini digunakan untuk memasang alat baris-perintah SQL Server. Untuk informasi selengkapnya, lihat memasang alat baris-perintah SQL Server.

RHEL 7

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
sudo yum install -y mssql-tools unixODBC-devel

RHEL 8

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
sudo yum install -y mssql-tools unixODBC-devel

Catatan

Untuk kenyamanan, tambahkan /opt/mssql-tools/bin/ ke variabel lingkungan JALUR Anda. Ini memungkinkan Anda untuk menjalankan alat tanpa menentukan jalur lengkap. Jalankan perintah berikut untuk memodifikasi PATH untuk sesi login dan sesi interaktif/non-login:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

Periksa status SQL Server

Setelah selesai dengan konfigurasi, Anda dapat memeriksa status SQL Server dan memverifikasi bahwa konfigurasi sedang berjalan:

systemctl status mssql-server --no-pager

Anda akan menemukan output berikut:

● mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-12-05 17:30:55 UTC; 20min ago
     Docs: https://learn.microsoft.com/sql/linux
 Main PID: 11612 (sqlservr)
   CGroup: /system.slice/mssql-server.service
           ├─11612 /opt/mssql/bin/sqlservr
           └─11640 /opt/mssql/bin/sqlservr

Mengonfigurasi grup ketersediaan

Gunakan langkah-langkah berikut untuk mengonfigurasi grup ketersediaan SQL Server Always On untuk komputer virtual Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi grup ketersediaan AlwaysOn SQL Server untuk ketersediaan tinggi di Linux.

Aktifkan Grup Ketersediaan AlwaysOn dan hidupkan ulang mssql-server

Aktifkan Grup Ketersediaan AlwaysOn pada setiap simpul yang menghosting instans SQL Server. Kemudian hidupkan ulang mssql-server. Jalankan skrip berikut:

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server

Membuat sertifikat

Saat ini kami tidak mendukung autentikasi AD ke titik akhir AG. Oleh karena itu, kita harus menggunakan sertifikat untuk enkripsi titik akhir AG.

  1. Sambungkan ke semua simpul menggunakan SQL Server Management Studio (SSMS) atau sqlcmd. Jalankan perintah berikut untuk mengaktifkan sesi AlwaysOn_health dan buat kunci master:

    Penting

    Jika Anda terhubung dari jarak jauh ke instans SQL Server, Anda harus membuka port 1433 di firewall Anda. Anda juga harus mengizinkan koneksi masuk ke port 1433 di NSG Anda untuk setiap komputer virtual. Untuk informasi selengkapnya, lihat Membuat aturan keamanan untuk membuat aturan keamanan masuk.

    • Ganti <Master_Key_Password> dengan kata sandi Anda sendiri.
    ALTER EVENT SESSION  AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON);
    GO
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Master_Key_Password>';
    
  2. Sambungkan ke replika utama menggunakan SSMS atau sqlcmd. Perintah berikut membuat sertifikat di /var/opt/mssql/data/dbm_certificate.cer dan kunci privat di var/opt/mssql/data/dbm_certificate.pvk pada replika SQL Server utama Anda:

    • Ganti <Private_Key_Password> dengan kata sandi Anda sendiri.
    CREATE CERTIFICATE dbm_certificate WITH SUBJECT = 'dbm';
    GO
    
    BACKUP CERTIFICATE dbm_certificate
       TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
       WITH PRIVATE KEY (
               FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
               ENCRYPTION BY PASSWORD = '<Private_Key_Password>'
           );
    GO
    

Keluar dari sesi sqlcmd dengan menjalankan exit perintah, dan kembali ke sesi SSH Anda.

Salin sertifikat ke replika sekunder dan buat sertifikat di server

  1. Salin dua file yang dibuat ke lokasi yang sama di semua server yang akan menghosting replika ketersediaan.

    Pada server utama, jalankan scp perintah berikut ini untuk menyalin sertifikat ke server target:

    • Ganti <username> dan <VM2> dengan nama pengguna dan nama VM target yang Anda gunakan.
    • Jalankan perintah ini untuk semua replika sekunder.

    Catatan

    Anda tidak perlu jalankan sudo -i, yang memberi Anda lingkungan akar. Anda hanya bisa menjalankan sudo perintah di depan setiap perintah seperti yang kami lakukan sebelumnya dalam tutorial ini.

    # The below command allows you to run commands in the root environment
    sudo -i
    
    scp /var/opt/mssql/data/dbm_certificate.* <username>@<VM2>:/home/<username>
    
  2. Pada server target, jalankan perintah berikut ini:

    • Ganti <username> dengan nama pengguna Anda.
    • Perintah mv memindahkan file atau direktori dari satu tempat ke tempat lain.
    • Perintah chown ini digunakan untuk mengubah pemilik dan grup file, direktori, atau tautan.
    • Jalankan perintah ini untuk semua replika sekunder.
    sudo -i
    mv /home/<username>/dbm_certificate.* /var/opt/mssql/data/
    cd /var/opt/mssql/data
    chown mssql:mssql dbm_certificate.*
    
  3. Skrip Transact-SQL berikut ini membuat sertifikat dari cadangan yang Anda buat pada replika SQL Server utama. Perbarui skrip dengan kata sandi yang kuat. Kata sandi dekripsi adalah kata sandi yang sama dengan yang Anda gunakan untuk membuat file .pvk di langkah sebelumnya. Untuk membuat sertifikat, jalankan skrip berikut menggunakan sqlcmd atau SSMS di semua server sekunder:

    CREATE CERTIFICATE dbm_certificate
        FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
        WITH PRIVATE KEY (
        FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
        DECRYPTION BY PASSWORD = '<Private_Key_Password>'
                );
    GO
    

Membuat titik akhir pencerminan database pada semua replika

Jalankan skrip berikut pada semua instans SQL Server menggunakan sqlcmd atau SSMS:

CREATE ENDPOINT [Hadr_endpoint]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
    ROLE = ALL,
    AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO

ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;
GO

Membuat grup ketersediaan

Sambungkan ke instans SQL Server yang menghosting replika utama menggunakan sqlcmd atau SSMS. Jalankan perintah berikut untuk membuat grup ketersediaan:

  • Ganti ag1 dengan nama Grup Ketersediaan yang diinginkan.
  • Ganti nilai <VM1>, <VM2>, dan <VM3> dengan nama instans SQL Server yang menghosting replika.
CREATE AVAILABILITY GROUP [ag1]
     WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
     FOR REPLICA ON
         N'<VM1>'
          WITH (
             ENDPOINT_URL = N'tcp://<VM1>:5022',
             AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
             FAILOVER_MODE = EXTERNAL,
             SEEDING_MODE = AUTOMATIC
             ),
         N'<VM2>'
          WITH (
             ENDPOINT_URL = N'tcp://<VM2>:5022',
             AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
             FAILOVER_MODE = EXTERNAL,
             SEEDING_MODE = AUTOMATIC
             ),
         N'<VM3>'
         WITH(
            ENDPOINT_URL = N'tcp://<VM3>:5022',
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            FAILOVER_MODE = EXTERNAL,
            SEEDING_MODE = AUTOMATIC
            );
GO

ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
GO

Membuat data masuk SQL Server untuk Pacemaker

Pada semua instans SQL Server, buat login SQL Server untuk Pacemaker. Transact-SQL berikut ini membuat login.

  • Ganti <password> dengan kata sandi kompleks Anda sendiri.
USE [master]
GO

CREATE LOGIN [pacemakerLogin] with PASSWORD= N'<password>';
GO

ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
GO

Pada semua instans SQL Server, simpan informasi masuk yang digunakan untuk login SQL Server.

  1. Buat file :

    sudo vi /var/opt/mssql/secrets/passwd
    
  2. Tambahkan baris berikut ke file :

    pacemakerLogin
    <password>
    

    Untuk keluar dari editor vi, pertama-tama tekan kunci Esc, dan kemudian masukkan perintah :wq untuk menulis file dan berhenti.

  3. Buat file hanya dapat dibaca oleh root:

    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 400 /var/opt/mssql/secrets/passwd
    

Bergabung dengan replika sekunder ke grup ketersediaan

  1. Untuk menggabungkan replika sekunder ke AG, Anda perlu membuka port 5022 pada firewall untuk semua server. Jalankan perintah berikut ini di sesi SSH Anda:

    sudo firewall-cmd --zone=public --add-port=5022/tcp --permanent
    sudo firewall-cmd --reload
    
  2. Pada replika sekunder Anda, jalankan perintah berikut untuk menggabungkan mereka ke AG:

    ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
    GO
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    GO
    
  3. Jalankan skrip Transact-SQL berikut pada replika utama dan setiap replika sekunder:

    GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin;
    GO
    
    GRANT VIEW SERVER STATE TO pacemakerLogin;
    GO
    
  4. Setelah replika sekunder digabungkan, Anda dapat melihatnya di SQL Server Management Studio Object Explorer dengan meluaskan simpul Always On High Availability:

    Cuplikan layar memperlihatkan replika ketersediaan utama dan sekunder.

Menambahkan database ke Grup Ketersediaan

Kami mengikuti artikel mengonfigurasi grup ketersediaan tentang menambahkan database.

Perintah Transact-SQL berikut digunakan dalam langkah ini. Jalankan perintah ini pada replika utama:

CREATE DATABASE [db1]; -- creates a database named db1
GO

ALTER DATABASE [db1] SET RECOVERY FULL; -- set the database in full recovery model
GO

BACKUP DATABASE [db1] -- backs up the database to disk
   TO DISK = N'/var/opt/mssql/data/db1.bak';
GO

ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1]; -- adds the database db1 to the AG
GO

Memverifikasi bahwa database dibuat di server sekunder

Pada setiap replika SQL Server sekunder, jalankan kueri berikut untuk melihat apakah database db1 dibuat dan berada dalam status DISINKRONKAN:

SELECT * FROM sys.databases WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;

Jika synchronization_state_desc daftar DISINKRONKAN untuk db1, ini berarti replika disinkronkan. Sekunder ditampilkan di db1 replika utama.

Membuat sumber daya grup ketersediaan di kluster Pacemaker

Kami mengikuti panduan untuk membuat sumber daya grup ketersediaan di kluster Pacemaker.

Catatan

Komunikasi bebas bias

Artikel ini berisi referensi ke istilah budak, istilah yang dianggap menyinggung Microsoft saat digunakan dalam konteks ini. Istilah muncul dalam artikel ini karena saat ini muncul di perangkat lunak. Ketika istilah dihapus dari perangkat lunak, kami akan menghapusnya dari artikel.

Membuat sumber daya kluster AG

  1. Gunakan salah satu perintah berikut berdasarkan lingkungan yang dipilih sebelumnya untuk membuat sumber daya ag_cluster dalam grup ketersediaan ag1.

    RHEL 7

    sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s master notify=true
    

    RHEL 8

    sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s promotable notify=true
    
  2. Pastikan sumber daya Anda online sebelum melanjutkan, menggunakan perintah berikut:

    sudo pcs resource
    

    Anda akan menemukan output berikut:

    RHEL 7

    [<username>@VM1 ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
    Masters: [ <VM1> ]
    Slaves: [ <VM2> <VM3> ]
    

    RHEL 8

    [<username>@VM1 ~]$ sudo pcs resource
    * Clone Set: ag_cluster-clone [ag_cluster] (promotable):
    * ag_cluster             (ocf::mssql:ag) :            Slave VMrhel3 (Monitoring)
    * ag_cluster             (ocf::mssql:ag) :            Master VMrhel1 (Monitoring)
    * ag_cluster             (ocf::mssql:ag) :            Slave VMrhel2 (Monitoring)
    

Membuat sumber daya IP virtual

  1. Gunakan alamat IP statik yang tersedia dari jaringan Anda untuk membuat sumber daya IP virtual. Anda dapat menemukannya menggunakan alat perintah nmap.

    nmap -sP <IPRange>
    # For example: nmap -sP 10.0.0.*
    # The above will scan for all IP addresses that are already occupied in the 10.0.0.x space.
    
  2. Atur properti berkemampuan stonith ke false:

    sudo pcs property set stonith-enabled=false
    
  3. Buat sumber daya IP virtual dengan menggunakan perintah berikut. Ganti <availableIP> dengan alamat IP yang tidak digunakan.

    sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<availableIP>
    

Menambahkan batasan

  1. Untuk memastikan bahwa alamat IP dan sumber daya AG berjalan pada simpul yang sama, batasan kolokasi harus dikonfigurasi. Jalankan perintah berikut:

    RHEL 7

    sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master
    

    RHEL 8

     sudo pcs constraint colocation add virtualip with master ag_cluster-clone INFINITY with-rsc-role=Master
    
  2. Buat batasan pemesanan untuk memastikan bahwa sumber daya AG sudah siap dan berjalan sebelum alamat IP. Sementara batasan kolokasi menyiratkan batasan pemesanan, ini menegakkannya.

    RHEL 7

    sudo pcs constraint order promote ag_cluster-master then start virtualip
    

    RHEL 8

    sudo pcs constraint order promote ag_cluster-clone then start virtualip
    
  3. Untuk memverifikasi batasan, jalankan perintah berikut:

    sudo pcs constraint list --full
    

    Anda akan menemukan output berikut:

    RHEL 7

    Location Constraints:
    Ordering Constraints:
          promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory)
    Colocation Constraints:
          virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY)
    Ticket Constraints:
    

    RHEL 8

    Location Constraints:
    Ordering Constraints:
            promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory)
    Colocation Constraints:
            virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY)
    Ticket Constraints:
    

Aktifkan kembali stonith

Kami siap untuk pengujian. Aktifkan kembali stonith di kluster dengan menjalankan perintah berikut pada Simpul 1:

sudo pcs property set stonith-enabled=true

Periksa status kluster

Anda dapat memeriksa status sumber daya kluster Anda menggunakan perintah berikut:

[<username>@VM1 ~]$ sudo pcs status
Cluster name: az-hacluster
Stack: corosync
Current DC: <VM3> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
Last updated: Sat Dec  7 00:18:38 2019
Last change: Sat Dec  7 00:18:02 2019 by root via cibadmin on VM1

3 nodes configured
5 resources configured

Online: [ <VM1> <VM2> <VM3> ]

Full list of resources:

 Master/Slave Set: ag_cluster-master [ag_cluster]
     Masters: [ <VM2> ]
     Slaves: [ <VM1> <VM3> ]
 virtualip      (ocf::heartbeat:IPaddr2):       Started <VM2>
 rsc_st_azure   (stonith:fence_azure_arm):      Started <VM1>

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled

Menguji failover

Untuk memastikan bahwa konfigurasi telah berhasil sejauh ini, kami menguji failover. Untuk informasi selengkapnya, lihat Kegagalan Grup Ketersediaan AlwaysOn di Linux.

  1. Jalankan perintah berikut untuk mengalihkan kegagalan secara manual melalui replika utama ke <VM2>. Ganti <VM2> dengan nilai nama server Anda.

    RHEL 7

    sudo pcs resource move ag_cluster-master <VM2> --master
    

    RHEL 8

    sudo pcs resource move ag_cluster-clone <VM2> --master
    

    Anda juga dapat menentukan opsi tambahan sehingga batasan sementara yang dibuat untuk memindahkan sumber daya ke simpul yang diinginkan dinonaktifkan secara otomatis, dan Anda tidak perlu melakukan langkah 2 dan 3 dalam instruksi berikut.

    RHEL 7

    sudo pcs resource move ag_cluster-master <VM2> --master lifetime=30S
    

    RHEL 8

    sudo pcs resource move ag_cluster-clone <VM2> --master lifetime=30S
    

    Alternatif lain untuk mengotomatiskan langkah 2 dan 3, yang menghapus batasan sementara dalam perintah pemindahan sumber daya itu sendiri, adalah dengan menggabungkan beberapa perintah dalam satu baris.

    RHEL 7

    sudo pcs resource move ag_cluster-master <VM2> --master && sleep 30 && pcs resource clear ag_cluster-master
    

    RHEL 8

    sudo pcs resource move ag_cluster-clone <VM2> --master && sleep 30 && pcs resource clear ag_cluster-clone
    
  2. Jika Anda memeriksa batasan lagi, Anda akan melihat bahwa batasan lain ditambahkan karena failover manual:

    RHEL 7

    [<username>@VM1 ~]$ sudo pcs constraint list --full
    Location Constraints:
          Resource: ag_cluster-master
            Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-master)
    Ordering Constraints:
            promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory)
    Colocation Constraints:
            virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY)
    Ticket Constraints:
    

    RHEL 8

    [<username>@VM1 ~]$ sudo pcs constraint list --full
    Location Constraints:
          Resource: ag_cluster-master
            Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-clone)
    Ordering Constraints:
            promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory)
    Colocation Constraints:
            virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY)
    Ticket Constraints:
    
  3. Hapus batasan dengan ID cli-prefer-ag_cluster-master menggunakan perintah berikut:

    RHEL 7

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    

    RHEL 8

    sudo pcs constraint remove cli-prefer-ag_cluster-clone
    
  4. Periksa sumber daya kluster Anda menggunakan perintah sudo pcs resource, dan Anda akan melihat bahwa instans utama terjadi <VM2> sekarang.

    [<username>@<VM1> ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
         ag_cluster (ocf::mssql:ag):        FAILED <VM1> (Monitoring)
         Masters: [ <VM2> ]
         Slaves: [ <VM3> ]
    virtualip      (ocf::heartbeat:IPaddr2):       Started <VM2>
    [<username>@<VM1> ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
         Masters: [ <VM2> ]
         Slaves: [ <VM1> <VM3> ]
    virtualip      (ocf::heartbeat:IPaddr2):       Started <VM2>
    

Uji anggar

Anda dapat menguji pagar dengan menjalankan perintah berikut. Coba jalankan perintah di bawah ini dari <VM1> untuk <VM3>.

sudo pcs stonith fence <VM3> --debug

Catatan

Secara default, tindakan anggar membawa mematikan simpul dan kemudian menyala. Jika Anda hanya ingin membawa simpul offline, gunakan opsi --off di perintah.

Anda akan menemukan output berikut:

[<username>@<VM1> ~]$ sudo pcs stonith fence <VM3> --debug
Running: stonith_admin -B <VM3>
Return Value: 0
--Debug Output Start--
--Debug Output End--

Node: <VM3> fenced

Untuk informasi selengkapnya tentang pengujian perangkat anggar, lihat artikel Topi Merah berikut ini.

Langkah selanjutnya