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.

Initiator

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:

  1. 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 menggunakan iSCSINIC:

    sudo iscsiadm -m iface -I iSCSINIC -o new
    

    Screenshot of the iface command and the response to the command.

  2. 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:

    Screenshot of the file with the values completely filled out.

  3. 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.

    Screenshot of the discovery command and the response to the command.

  4. 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.

    iSCSITargetLogin

  5. Periksa untuk melihat bahwa ada koneksi ke target iSCSI.

    sudo iscsiadm -m session
    

    iSCSIVerify

  6. Periksa disk yang terpasang iSCSI

    sudo grep "Attached SCSI" /var/log/messages
    

    Screenshot of the grep command and the response to the command showing the attached SCSI disks.

  7. Buat volume fisik pada disk iSCSI.

    sudo pvcreate /dev/<devicename>
    

    <devicename> adalah nama perangkat dari langkah sebelumnya.

  8. 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.

  9. 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.

    Create25GBVol

  10. Jalankan sudo lvs untuk melihat LVM yang dibuat.

  11. 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.

  12. 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
    

    Screenshot of the ls command and the response to the command.

  • 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
    
  1. 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.

    Screenshot of the sqlcmd command and the response to the command.

  • 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 
    
  1. Konfigurasikan server sehingga hanya Pacemaker yang dapat mengaktifkan grup volume.

    sudo lvmconf --enable-halvm --services -startstopservices
    
  2. Buat daftar grup volume di server. Apa pun yang tercantum yang bukan disk iSCSI digunakan oleh sistem, seperti untuk disk OS.

    sudo vgs
    
  3. 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.

    Screenshot showing an example of a volume_list value.

  4. 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)
    
  5. Mulai ulang server.

  6. Di server lain yang akan berpartisipasi dalam FCI, lakukan Langkah 1 - 6. Ini akan menyajikan target iSCSI ke SQL Server.

  7. Buat daftar grup volume di server. Ini akan menampilkan grup volume yang dibuat sebelumnya.

    sudo vgs
    
  8. Mulai SQL Server dan verifikasi bahwa SQL Server dapat dimulai pada server ini.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    
  9. Hentikan SQL Server dan verifikasi bahwa SQL Server dimatikan.

    sudo systemctl stop mssql-server
    sudo systemctl status mssql-server
    
  10. 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