Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di 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 disebut sebagai target ke server lain. 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 mencakup cara mengonfigurasi target iSCSI karena khusus untuk jenis sumber yang 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 jaringan 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 ditampilkan di sini dari target Microsoft iSCSI tempat linuxnodes1 nama dibuat, dan dalam hal ini, alamat IP simpul ditetapkan sehingga NewFCIDisk1.vhdx muncul padanya.
Petunjuk
Bagian ini mencakup cara mengonfigurasi inisiator iSCSI di server yang berfungsi sebagai simpul untuk FCI. Instruksi harus berfungsi apa adanya di Red Hat Enterprise Linux (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 masalah 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 newdi mana<iSCSIIfaceName>adalah nama unik atau ramah untuk jaringan. Contoh berikut menggunakaniSCSINIC:sudo iscsiadm -m iface -I iSCSINIC -o newBerikut adalah output yang diharapkan.
New interface iSCSINIC addedEdit
/var/lib/iscsi/ifaces/iSCSIIfaceName. Pastikan nilai berikut benar-benar terisi:-
iface.net_ifacenameadalah nama kartu jaringan seperti yang terlihat di OS. -
iface.hwaddressadalah alamat MAC dari nama unik yang akan dibuat untuk antarmuka berikut. iface.ipaddressiface.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>merupakan port target iSCSI.Berikut adalah output yang diharapkan.
10.181.182.1:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target 10.201.202.1:3260,1 iqn.1991-05.com.contoso:dc1-linuxnodes1-target [2002:b4b5:b601::b4b5:b601]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target [2002:8c9:ca01::c8c9:ca01]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-targetMasuk ke target.
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l<iSCSIIfaceName>adalah nama unik/ramah untuk jaringan dan<TargetIPAddress>merupakan alamat IP target iSCSI.Berikut adalah output yang diharapkan.
Logging in to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] (multiple) Login to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] successful.Periksa untuk melihat bahwa ada koneksi ke target iSCSI.
sudo iscsiadm -m sessionOutput terlihat mirip dengan contoh berikut:
tcp: [1] 10.105.16.7:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target (non-flash)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<devicename>merupakan nama perangkat dari Langkah 6.Buat dan verifikasi volume logis untuk disk.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName><size>adalah ukuran volume yang akan dibuat, dan dapat ditentukan dengan G (gigabyte), T (terabyte), dll.,<LogicalVolumeName>adalah nama volume logis, dan<VolumeGroupName>merupakan nama grup volume dari langkah sebelumnya.Berikut adalah output yang diharapkan.
Logical volume "FCIDataLV1" created.Contoh berikut membuat volume 25 GB.
Jalankan
sudo lvsuntuk 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-serverBeralih sepenuhnya menjadi superuser. Anda tidak menerima pengakuan jika berhasil.
sudo -iBeralih menjadi pengguna
mssql. Anda tidak menerima pengakuan jika berhasil.su mssqlBuat direktori sementara untuk menyimpan data SQL Server dan file log. Anda tidak menerima pengakuan jika berhasil.
mkdir <TempDir><TempDir>adalah nama folder. Contoh berikut membuat folder bernama /var/opt/mssql/TempDir.mkdir /var/opt/mssql/TempDirSalin data SQL Server dan file log ke direktori sementara. Anda tidak 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-langkah sebelumnya.Hapus file dari direktori data SQL Server yang ada. Anda tidak menerima pengakuan jika berhasil.
rm - f /var/opt/mssql/data/*Verifikasi bahwa file telah dihapus. Gambar berikut menunjukkan contoh seluruh urutan dari c hingga h.
ls /var/opt/mssql/dataKetik
exituntuk beralih kembali kerootpengguna.Pasangkan volume logis iSCSI di folder data SQL Server. Anda tidak menerima pengakuan jika berhasil.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data<VolumeGroupName>adalah nama grup volume dan<LogicalVolumeName>merupakan nama volume logis yang dibuat. Sintaks contoh berikut ini sesuai dengan grup volume dan volume logis dari perintah sebelumnya.mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/dataUbah pemilik mount menjadi
mssql. Anda tidak menerima pengakuan jika berhasil.chown mssql /var/opt/mssql/dataUbah kepemilikan grup pemasangan menjadi
mssql. Anda tidak menerima pengakuan jika berhasil.chgrp mssql /var/opt/mssql/dataBeralihlah ke pengguna
mssql. Anda tidak menerima pengakuan jika berhasil.su mssqlSalin file dari direktori
/var/opt/mssql/datasementara . Anda tidak menerima pengakuan jika berhasil.cp /var/opt/mssql/TempDir/* /var/opt/mssql/dataVerifikasi bahwa file ada di sana.
ls /var/opt/mssql/dataMasukkan
exituntuk tidak menjadimssql.Masukkan
exituntuk tidak menjadiroot.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-serverHentikan SQL Server dan verifikasi bahwa SQL Server telah 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 ke mode superuser. Anda tidak menerima pengakuan jika berhasil.
sudo -iBuat 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 berikut membuat folder bernama /var/opt/mssql/userdata.mkdir /var/opt/mssql/userdataPasang volume logis iSCSI di folder yang dibuat di langkah sebelumnya. Anda tidak menerima pengakuan jika berhasil.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>adalah nama grup volume,<LogicalVolumeName>adalah nama volume logis yang dibuat, dan<FolderName>merupakan nama folder. Contoh sintaks ditampilkan di sini.mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdataUbah kepemilikan folder yang dibuat menjadi
mssql. Anda tidak menerima pengakuan jika berhasil.chown mssql <FolderName><FolderName>adalah nama folder yang dibuat. Contoh ditunjukkan di sini.chown mssql /var/opt/mssql/userdataUbah grup folder yang dibuat menjadi
mssql. Anda tidak menerima pengakuan jika berhasil.chown mssql <FolderName><FolderName>adalah nama folder yang dibuat. Contoh ditunjukkan di sini.chown mssql /var/opt/mssql/userdataKetik
exituntuk tidak lagi menjadi superuser.Untuk menguji, buat database di folder tersebut. Skrip berikut membuat database, mengalihkan konteks ke database tersebut, memverifikasi bahwa file ada di tingkat OS, lalu menghapus lokasi sementara. Anda dapat menggunakan SSMS atau sqlcmd untuk menjalankan skrip ini.
DROP DATABASE TestDB; GO CREATE DATABASE TestDB ON (NAME = TestDB_Data, FILENAME = '/var/opt/mssql/userdata/TestDB_Data.mdf') LOG ON (NAME = TestDB_Log, FILENAME = '/var/opt/mssql/userdata/TestDB_Log.ldf'); GO USE TestDB; GOJalankan perintah berikut di shell untuk melihat file database baru.
sudo ls /var/opt/mssal/userdataBerikut adalah output yang diharapkan.
lost+found TestDB_Data.mdf TestDB_Log.ldfHapus database untuk dibersihkan.
DROP DATABASE TestDB; GOsudo ls /var/opt/mssal/userdataBerikut adalah output yang diharapkan.
lost+foundMelepas kaitan berbagi
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>adalah nama grup volume,<LogicalVolumeName>adalah nama volume logis yang dibuat, dan<FolderName>merupakan nama folder. Contoh sintaks ditampilkan di sini.sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Konfigurasikan server sehingga hanya Pacemaker yang dapat mengaktifkan grup volume.
sudo lvmconf --enable-halvm --services -startstopservicesBuat daftar grup volume di server. Apa pun yang tercantum yang bukan disk iSCSI digunakan oleh sistem, seperti untuk disk OS.
sudo vgsUbah 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 digunakan oleh FCI. Letakkan masing-masing dalam tanda kutip dan pisahkan oleh koma. Contoh ditunjukkan di sini.Ketika Linux memulai, Linux 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 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 menyajikan target iSCSI ke SQL Server.
Buat daftar grup volume di server. Ini akan menampilkan grup volume yang dibuat sebelumnya.
sudo vgsMulai SQL Server dan pastikan dapat berjalan pada server ini.
sudo systemctl start mssql-server sudo systemctl status mssql-serverHentikan SQL Server dan verifikasi bahwa SQL Server telah dimatikan.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverUlangi Langkah 1 - 6 di server lain yang akan berpartisipasi dalam FCI.
Anda sekarang siap untuk mengonfigurasi FCI.