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.
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
Periksa alamat IP untuk setiap simpul. Skrip berikut menunjukkan alamat IP simpul Anda saat ini.
ip addr show
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
denganvi
.sudo vi /etc/hosts
Contoh berikut menunjukkan
/etc/hosts
dengan penambahan untuk tiga simpul bernamasqlfcivm1
,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.
Hentikan layanan SQL Server pada simpul baru.
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.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
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
Instal paket Pacemaker pada simpul baru.
sudo yum install pacemaker pcs fence-agents-all resource-agents
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
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
Instal agen sumber daya FCI untuk SQL Server. Jalankan perintah berikut pada simpul baru.
sudo yum install mssql-server-ha
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
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk