Bagikan melalui


Mengoperasikan instans kluster failover RHEL (FCI) untuk SQL Server

Berlaku untuk:SQL Server - Linux

Dokumen ini menjelaskan cara melakukan tugas berikut untuk SQL Server pada kluster failover disk bersama dengan Red Hat Enterprise Linux.

  • Failover kluster secara manual
  • Memantau layanan SQL Server kluster failover
  • Menambahkan node kluster
  • Menghapus node kluster
  • Mengubah frekuensi pemantauan sumber daya SQL Server

Deskripsi arsitektur

Lapisan pengklusteran didasarkan pada add-on Red Hat Enterprise Linux (RHEL) HA yang dibangun di atas Pacemaker. Corosync dan Pacemaker mengoordinasikan komunikasi kluster dan manajemen sumber daya. Instans SQL Server aktif pada satu simpul atau simpul lainnya.

Diagram berikut mengilustrasikan komponen dalam kluster Linux dengan SQL Server.

Kluster SQL Disk Bersama Red Hat Enterprise Linux 7.

Untuk informasi selengkapnya tentang konfigurasi kluster, opsi agen sumber daya, dan manajemen, kunjungi dokumentasi referensi RHEL.

Failover kluster secara manual

Perintah resource move membuat batasan yang memaksa sumber daya untuk memulai pada simpul target.  Setelah menjalankan move perintah, menjalankan sumber daya clear akan menghapus batasan sehingga dimungkinkan untuk memindahkan sumber daya lagi, atau meminta sumber daya secara otomatis gagal.

sudo pcs resource move <sqlResourceName> <targetNodeName>
sudo pcs resource clear <sqlResourceName>

Contoh berikut memindahkan sumber daya mssqlha ke simpul bernama sqlfcivm2, lalu menghapus batasan sehingga sumber daya dapat berpindah ke simpul yang berbeda nanti.

sudo pcs resource move mssqlha sqlfcivm2
sudo pcs resource clear mssqlha

Memantau layanan SQL Server kluster failover

Lihat status kluster saat ini:

sudo pcs status

Lihat status langsung kluster dan sumber daya:

sudo crm_mon

Lihat log agen sumber daya di /var/log/cluster/corosync.log

Menambahkan simpul ke kluster

  1. Periksa alamat IP untuk setiap simpul. Skrip berikut menunjukkan alamat IP simpul Anda saat ini.

    ip addr show
    
  2. Simpul baru membutuhkan nama unik yaitu 15 karakter atau kurang. Secara default di Red Hat Linux, nama komputernya adalah localhost.localdomain. Nama default ini mungkin tidak unik dan terlalu panjang. Atur nama komputer simpul baru. Atur nama komputer dengan menambahkannya ke /etc/hosts. Skrip berikut memungkinkan Anda mengedit /etc/hosts dengan vi.

    sudo vi /etc/hosts
    

    Contoh berikut menunjukkan /etc/hosts dengan penambahan untuk tiga simpul bernama sqlfcivm1, sqlfcivm2, dansqlfcivm3.

    127.0.0.1      localhost localhost4 localhost4.localdomain4
    ::1            localhost localhost6 localhost6.localdomain6
    10.128.18.128  fcivm1
    10.128.16.77   fcivm2
    10.128.14.26   fcivm3
    

    File harus sama pada setiap simpul.

  3. Hentikan layanan SQL Server pada simpul baru.

  4. Ikuti instruksi untuk memasang direktori file database ke lokasi bersama:

    Dari server NFS, instal nfs-utils

    sudo yum -y install nfs-utils
    

    Membuka firewall pada klien dan server NFS

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --reload
    

    /etc/fstab Edit file untuk menyertakan perintah pemasangan:

    <IP OF NFS SERVER>:<shared_storage_path> <database_files_directory_path> nfs timeo=14,intr
    

    Jalankan mount -a agar perubahan diterapkan.

  5. Pada simpul baru, buat file untuk menyimpan nama pengguna dan kata sandi SQL Server untuk login Pacemaker. Perintah berikut membuat dan mengisi file ini:

    sudo touch /var/opt/mssql/passwd
    sudo echo "<loginName>" >> /var/opt/mssql/secrets/passwd
    sudo echo "<loginPassword>" >> /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/passwd
    sudo chmod 600 /var/opt/mssql/passwd
    
  6. Pada simpul baru, buka port firewall Pacemaker. Untuk membuka port ini dengan firewalld, jalankan perintah berikut:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    

    Jika Anda menggunakan firewall lain yang tidak memiliki konfigurasi ketersediaan tinggi bawaan, port berikut perlu dibuka agar Pacemaker dapat berkomunikasi dengan simpul lain dalam kluster:

    • TCP: Port 2224, 3121, 21064
    • UDP: Port 5405
  7. Instal paket Pacemaker pada simpul baru.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  8. Atur kata sandi untuk pengguna default yang dibuat saat menginstal paket Pacemaker dan Corosync. Gunakan kata sandi yang sama dengan simpul yang ada.

    sudo passwd hacluster
    
  9. Aktifkan dan mulai pcsd layanan dan Pacemaker. Ini akan memungkinkan simpul baru untuk bergabung kembali dengan kluster setelah reboot. Jalankan perintah berikut pada simpul baru.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  10. Instal agen sumber daya FCI untuk SQL Server. Jalankan perintah berikut pada simpul baru.

    sudo yum install mssql-server-ha
    
  11. Pada node yang ada dari kluster, autentikasi simpul baru dan tambahkan ke kluster:

    sudo pcs cluster auth <nodeName3> -u hacluster
    sudo pcs cluster node add <nodeName3>
    

    Contoh berikut menambahkan simpul bernama vm3 ke kluster.

    sudo pcs cluster auth
    sudo pcs cluster start
    

Menghapus simpul dari kluster

Untuk menghapus simpul dari kluster, jalankan perintah berikut:

sudo pcs cluster node remove <nodeName>

Mengubah frekuensi interval pemantauan sumber daya sqlservr

sudo pcs resource op monitor interval=<interval>s <sqlResourceName>

Contoh berikut mengatur interval pemantauan menjadi 2 detik untuk sumber daya mssql:

sudo pcs resource op monitor interval=2s mssqlha

Memecahkan masalah kluster disk bersama Red Hat Enterprise Linux untuk SQL Server

Saat Anda memecahkan masalah kluster, ini membantu memahami cara ketiga daemon bekerja sama untuk mengelola sumber daya kluster.

Daemon Deskripsi
Corosync Menyediakan keanggotaan kuorum dan olahpesan antara node kluster.
Pacemaker Berada di atas Corosync dan menyediakan komputer status untuk sumber daya.
PCSD Mengelola Pacemaker dan Corosync melalui pcs alat.

PCSD harus berjalan untuk menggunakan pcs alat.

Status kluster saat ini

sudo pcs status mengembalikan informasi dasar tentang kluster, kuorum, simpul, sumber daya, dan status daemon untuk setiap simpul.

Contoh output kuorum pacemaker yang sehat adalah:

Cluster name: MyAppSQL
Last updated: Wed Oct 31 12:00:00 2016  Last change: Wed Oct 31 11:00:00 2016 by root via crm_resource on sqlvmnode1
Stack: corosync
Current DC: sqlvmnode1  (version 1.1.13-10.el7_2.4-44eb2dd) - partition with quorum
3 nodes and 1 resource configured

Online: [ sqlvmnode1 sqlvmnode2 sqlvmnode3 ]

Full list of resources:

mssqlha (ocf::sql:fci): Started sqlvmnode1

PCSD Status:
sqlvmnode1: Online
sqlvmnode2: Online
sqlvmnode3: Online

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

Dalam contoh, partition with quorum berarti bahwa kuorum mayoritas simpul online. Jika kluster kehilangan kuorum mayoritas simpul, pcs status pengembalian partition WITHOUT quorum dan semua sumber daya dihentikan.

online: [sqlvmnode1 sqlvmnode2 sqlvmnode3] mengembalikan nama semua simpul yang saat ini berpartisipasi dalam kluster. Jika ada simpul yang tidak berpartisipasi, pcs status mengembalikan OFFLINE: [<nodename>].

PCSD Status menunjukkan status kluster untuk setiap simpul.

Alasan mengapa node mungkin offline

Periksa item berikut ketika sebuah simpul sedang offline.

  • Firewall

    Port berikut harus terbuka pada semua simpul agar Pacemaker dapat berkomunikasi.

    • **TCP: 2224, 3121, 21064
  • Layanan Pacemaker atau Corosync berjalan

  • Komunikasi simpul

  • Pemetaan nama simpul