Mengonfigurasi instans kluster failover - iSCSI - SQL Server di Linux
Berlaku untuk:SQL Server - Linux
Artikel ini menjelaskan cara mengonfigurasi penyimpanan iSCSI untuk instans kluster failover (FCI) di Linux.
Mengonfigurasi iSCSI
iSCSI menggunakan jaringan untuk menyajikan disk dari server yang dikenal sebagai target ke server. Server yang terhubung ke target iSCSI mengharuskan inisiator iSCSI dikonfigurasi. Disk pada target diberikan izin eksplisit sehingga hanya inisiator yang seharusnya dapat mengaksesnya yang dapat melakukannya. Target itu sendiri harus sangat tersedia dan dapat diandalkan.
Informasi target iSCSI penting
Meskipun bagian ini tidak akan mencakup cara mengonfigurasi target iSCSI karena khusus untuk jenis sumber yang akan Anda gunakan, pastikan bahwa keamanan untuk disk yang akan digunakan oleh node kluster dikonfigurasi.
Target tidak boleh dikonfigurasi pada salah satu simpul FCI jika menggunakan target iSCSI berbasis Linux. Untuk performa dan ketersediaan, jaringan iSCSI harus terpisah dari yang digunakan oleh lalu lintas jaringan reguler pada sumber dan server klien. Jaringan yang digunakan untuk iSCSI harus cepat. Ingatlah bahwa jaringan memang menggunakan beberapa bandwidth prosesor, jadi rencanakan dengan sesuai jika menggunakan server biasa. Hal terpenting untuk memastikan selesai pada target adalah bahwa disk yang dibuat diberi izin yang tepat sehingga hanya server yang berpartisipasi dalam FCI yang memiliki akses ke mereka. Contoh ditunjukkan di bawah ini dari target Microsoft iSCSI di mana linuxnodes1 adalah nama yang dibuat, dan dalam hal ini, alamat IP simpul ditetapkan sehingga NewFCIDisk1.vhdx muncul padanya.
Petunjuk
Bagian ini akan membahas cara mengonfigurasi inisiator iSCSI di server yang akan berfungsi sebagai simpul untuk FCI. Instruksi harus berfungsi apa adanya pada RHEL dan Ubuntu.
Untuk informasi selengkapnya tentang inisiator iSCSI untuk distribusi yang didukung, lihat tautan berikut:
Pilih salah satu server yang akan berpartisipasi dalam konfigurasi FCI. Tidak peduli yang mana. iSCSI harus berada di jaringan khusus, jadi konfigurasikan iSCSI untuk mengenali dan menggunakan jaringan tersebut. Jalankan
sudo iscsiadm -m iface -I <iSCSIIfaceName> -o new
di mana<iSCSIIfaceName>
adalah nama unik atau ramah untuk jaringan. Contoh berikut menggunakaniSCSINIC
:sudo iscsiadm -m iface -I iSCSINIC -o new
Edit
/var/lib/iscsi/ifaces/iSCSIIfaceName
. Pastikan nilai berikut benar-benar terisi:- iface.net_ifacename adalah nama kartu jaringan seperti yang terlihat di OS.
- iface.hwaddress adalah alamat MAC dari nama unik yang akan dibuat untuk antarmuka ini di bawah ini.
- iface.ipaddress
- iface.subnet_Mask
Lihat contoh berikut:
Temukan target iSCSI.
sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort>
<iSCSINetName> adalah nama unik/ramah untuk jaringan, <TargetIPAddress> adalah alamat IP target iSCSI, dan <TargetPort> adalah port target iSCSI.
Masuk ke target
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l
<iSCSIIfaceName> adalah nama unik/ramah untuk jaringan dan <TargetIPAddress> adalah alamat IP target iSCSI.
Periksa untuk melihat bahwa ada koneksi ke target iSCSI.
sudo iscsiadm -m session
Periksa disk yang terpasang iSCSI
sudo grep "Attached SCSI" /var/log/messages
Buat volume fisik pada disk iSCSI.
sudo pvcreate /dev/<devicename>
<devicename> adalah nama perangkat dari langkah sebelumnya.
Buat grup volume pada disk iSCSI. Disk yang ditetapkan ke grup volume tunggal dipandang sebagai kumpulan atau koleksi.
sudo vgcreate <VolumeGroupName> /dev/devicename
<VolumeGroupName> adalah nama grup volume dan <nama> perangkat adalah nama perangkat dari Langkah 6.
Buat dan verifikasi volume logis untuk disk.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName>
<ukuran> adalah ukuran volume yang akan dibuat, dan dapat ditentukan dengan G (gigabyte), T (terabyte), dll.,<LogicalVolumeName> adalah nama volume logis, dan <VolumeGroupName> adalah nama grup volume dari langkah sebelumnya.
Contoh di bawah ini membuat volume 25GB.
Jalankan
sudo lvs
untuk melihat LVM yang dibuat.Format volume logis dengan sistem file yang didukung. Untuk EXT4, gunakan contoh berikut:
sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName>
<VolumeGroupName> adalah nama grup volume dari langkah sebelumnya. <LogicalVolumeName> adalah nama volume logis dari langkah sebelumnya.
Untuk database sistem atau apa pun yang disimpan di lokasi data default, ikuti langkah-langkah ini. Jika tidak, lewati ke Langkah 13.
Pastikan bahwa SQL Server dihentikan di server yang sedang Anda kerjakan.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Beralih sepenuhnya menjadi superuser. Anda tidak akan menerima pengakuan jika berhasil.
sudo -i
Beralih menjadi pengguna mssql. Anda tidak akan menerima pengakuan jika berhasil.
su mssql
Buat direktori sementara untuk menyimpan data SQL Server dan file log. Anda tidak akan menerima pengakuan jika berhasil.
mkdir <TempDir>
<TempDir> adalah nama folder. Contoh di bawah ini membuat folder bernama /var/opt/mssql/TempDir.
mkdir /var/opt/mssql/TempDir
Salin data SQL Server dan file log ke direktori sementara. Anda tidak akan menerima pengakuan jika berhasil.
cp /var/opt/mssql/data/* <TempDir>
<TempDir> adalah nama folder dari langkah sebelumnya.
Verifikasi bahwa file berada di direktori.
ls \<TempDir>
<TempDir> adalah nama folder dari Langkah d.
Hapus file dari direktori data SQL Server yang ada. Anda tidak akan menerima pengakuan jika berhasil.
rm - f /var/opt/mssql/data/*
Verifikasi bahwa file telah dihapus. Gambar di bawah ini menunjukkan contoh seluruh urutan dari c hingga h.
ls /var/opt/mssql/data
Ketik
exit
untuk beralih kembali ke pengguna root.Pasang volume logis iSCSI di folder data SQL Server. Anda tidak akan menerima pengakuan jika berhasil.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data
<VolumeGroupName> adalah nama grup volume dan <LogicalVolumeName> adalah nama volume logis yang dibuat. Contoh sintaks berikut cocok dengan grup volume dan volume logis dari perintah sebelumnya.
mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/data
Ubah pemilik pemasangan menjadi mssql. Anda tidak akan menerima pengakuan jika berhasil.
chown mssql /var/opt/mssql/data
Ubah kepemilikan grup pemasangan menjadi mssql. Anda tidak akan menerima pengakuan jika berhasil.
chgrp mssql /var/opt/mssql/data
Beralih ke pengguna mssql. Anda tidak akan menerima pengakuan jika berhasil.
su mssql
Salin file dari direktori sementara /var/opt/mssql/data. Anda tidak akan menerima pengakuan jika berhasil.
cp /var/opt/mssql/TempDir/* /var/opt/mssql/data
Verifikasi bahwa file ada di sana.
ls /var/opt/mssql/data
Masukkan
exit
untuk tidak mssql.Masukkan
exit
untuk tidak menjadi root.Mulai SQL Server. Jika semuanya disalin dengan benar dan keamanan diterapkan dengan benar, SQL Server akan ditampilkan sebagai dimulai.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Hentikan SQL Server dan verifikasi bahwa SQL Server dimatikan.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
- Untuk hal-hal selain database sistem, seperti database pengguna atau cadangan, ikuti langkah-langkah ini. Jika hanya menggunakan lokasi default, lewati ke Langkah 14.
Beralih menjadi superuser. Anda tidak akan menerima pengakuan jika berhasil.
sudo -i
Buat folder yang akan digunakan oleh SQL Server.
mkdir <FolderName>
<FolderName> adalah nama folder. Jalur lengkap folder perlu ditentukan jika tidak berada di lokasi yang tepat. Contoh di bawah ini membuat folder bernama /var/opt/mssql/userdata.
mkdir /var/opt/mssql/userdata
Pasang volume logis iSCSI di folder yang dibuat di langkah sebelumnya. Anda tidak akan menerima pengakuan jika berhasil.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
<VolumeGroupName> adalah nama grup volume, <LogicalVolumeName> adalah nama volume logis yang dibuat, dan <FolderName> adalah nama folder. Contoh sintaks ditunjukkan di bawah ini.
mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Ubah kepemilikan folder yang dibuat ke mssql. Anda tidak akan menerima pengakuan jika berhasil.
chown mssql <FolderName>
<FolderName> adalah nama folder yang dibuat. Contoh ditunjukkan di bawah ini.
chown mssql /var/opt/mssql/userdata
Ubah grup folder yang dibuat menjadi mssql. Anda tidak akan menerima pengakuan jika berhasil.
chown mssql <FolderName>
<FolderName> adalah nama folder yang dibuat. Contoh ditunjukkan di bawah ini.
chown mssql /var/opt/mssql/userdata
Ketik
exit
untuk tidak lagi menjadi superuser.Untuk menguji, buat database di folder tersebut. Contoh yang ditunjukkan di bawah ini menggunakan sqlcmd untuk membuat database, beralih konteks ke dalamnya, memverifikasi bahwa file ada di tingkat OS, lalu menghapus lokasi sementara. Anda dapat menggunakan SSMS.
Melepas kaitan berbagi
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
<VolumeGroupName> adalah nama grup volume, <LogicalVolumeName> adalah nama volume logis yang dibuat, dan <FolderName> adalah nama folder. Contoh sintaks ditunjukkan di bawah ini.
sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Konfigurasikan server sehingga hanya Pacemaker yang dapat mengaktifkan grup volume.
sudo lvmconf --enable-halvm --services -startstopservices
Buat daftar grup volume di server. Apa pun yang tercantum yang bukan disk iSCSI digunakan oleh sistem, seperti untuk disk OS.
sudo vgs
Ubah bagian konfigurasi aktivasi file /etc/lvm/lvm.conf. Konfigurasikan baris berikut:
volume_list = [ <ListOfVGsNotUsedByPacemaker> ]
<ListOfVGsNotUsedByPacemaker> adalah daftar grup volume dari output Langkah 20 yang tidak akan digunakan oleh FCI. Letakkan masing-masing dalam tanda kutip dan pisahkan oleh koma. Contoh ditunjukkan di bawah ini.
Ketika Linux dimulai, itu akan memasang sistem file. Untuk memastikan bahwa hanya Pacemaker yang dapat memasang disk iSCSI, bangun kembali gambar sistem file akar.
Jalankan perintah berikut yang mungkin membutuhkan waktu beberapa saat untuk diselesaikan. Anda tidak akan mendapatkan pesan kembali jika berhasil.
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
Mulai ulang server.
Di server lain yang akan berpartisipasi dalam FCI, lakukan Langkah 1 - 6. Ini akan menyajikan target iSCSI ke SQL Server.
Buat daftar grup volume di server. Ini akan menampilkan grup volume yang dibuat sebelumnya.
sudo vgs
Mulai SQL Server dan verifikasi bahwa SQL Server dapat dimulai pada server ini.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Hentikan SQL Server dan verifikasi bahwa SQL Server dimatikan.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Ulangi Langkah 1 - 6 di server lain yang akan berpartisipasi dalam FCI.
Anda sekarang siap untuk mengonfigurasi FCI.
Distribusi | Topik |
---|---|
Red Hat Enterprise Linux dengan add-on HA | Konfigurasikan Beroperasi |
SUSE Linux Enterprise Server dengan add-on HA | Konfigurasikan |
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