Bagikan melalui


Mengonfigurasi instans kluster failover - NFS - SQL Server pada Linux

Berlaku untuk:SQL Server di Linux

Artikel ini menjelaskan cara mengonfigurasi penyimpanan NFS untuk instans kluster failover (FCI) di Linux.

NFS, atau sistem file jaringan, adalah metode umum untuk berbagi disk di dunia Linux tetapi bukan yang Windows. Mirip dengan iSCSI, NFS dapat dikonfigurasi di server atau semacam appliance atau unit penyimpanan selama memenuhi persyaratan penyimpanan untuk SQL Server.

Informasi server NFS penting

NFS hosting sumber (baik server Linux atau yang lain) harus menggunakan/mematuhi versi 4.2 atau yang lebih baru. Versi sebelumnya tidak berfungsi dengan SQL Server di Linux.

Saat mengonfigurasi folder yang akan dibagikan di server NFS, pastikan folder mengikuti opsi umum panduan ini:

  • rw untuk memastikan bahwa folder dapat dibaca dari dan ditulis ke
  • sync untuk memastikan penulisan terjamin ke folder
  • Jangan gunakan no_root_squash sebagai opsi; ini dianggap sebagai risiko keamanan
  • Pastikan hak penuh diterapkan pada folder (777)

Pastikan standar keamanan Anda diterapkan saat mengakses. Saat mengonfigurasi folder, pastikan bahwa hanya server yang berpartisipasi dalam FCI yang akan melihat folder NFS. Dalam contoh berikut, sebuah /etc/exports yang dimodifikasi pada solusi NFS berbasis Linux ditampilkan, di mana folder tersebut dibatasi hanya untuk FCIN1 dan FCIN2.

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients. See export(5).
#
/var/nfs/fci1   FCIN1(rw,sync) FCIN2(rw,sync)

Petunjuk

  1. Pilih salah satu server yang akan berpartisipasi dalam konfigurasi FCI. Tidak masalah yang mana.

  2. Periksa apakah server dapat melihat mount di server NFS.

    sudo showmount -e <IPAddressOfNFSServer>
    
    • <IPAddressOfNFSServer> adalah alamat IP server NFS yang akan Anda gunakan.
  3. Untuk database sistem atau apa pun yang disimpan di lokasi data default, ikuti langkah-langkah ini. Jika tidak, lewati ke Langkah 4.

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

      sudo -i
      
    • Beralih menjadi pengguna mssql.

      su mssql
      
    • Buat direktori sementara untuk menyimpan data SQL Server dan file log.

      mkdir <TempDir>
      
      • <TempDir> adalah nama folder. Contoh berikut membuat folder bernama /var/opt/mssql/tmp.
      mkdir /var/opt/mssql/tmp
      
    • Salin data SQL Server dan file log ke direktori sementara.

      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 sebelumnya.
    • Hapus file dari direktori data SQL Server yang ada.

      rm - f /var/opt/mssql/data/*
      
    • Verifikasi bahwa file telah dihapus.

      ls /var/opt/mssql/data
      
    • Ketik exit untuk beralih kembali ke pengguna root.

    • Pasang berbagi NFS di folder data SQL Server.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> adalah alamat IP server NFS yang akan Anda gunakan
      • <FolderOnNFSServer> adalah nama berbagi NFS. Contoh sintaks berikut cocok dengan informasi NFS dari Langkah 2.
      mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
    • Periksa apakah pemasangan berhasil dengan menjalankan perintah mount tanpa opsi tambahan.

      mount
      

      Berikut adalah output yang diharapkan.

      10.201.202.63:/var/nfs/fcil on /var/opt/mssql/data type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard, proto=tcp,port=0,timeo=14, retrans=2,sec=sys,clientaddr=10.201.202.128,local lock=none, addr=10.201.202.63)
      
    • Beralih ke pengguna mssql.

      su mssql
      
    • Salin file dari direktori sementara /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssqldata
      
    • Verifikasi bahwa file ada di sana.

      ls /var/opt/mssql/data
      
    • Masukkan exit untuk tidak menjadi mssql.

    • Masukkan exit untuk tidak menjadi root.

    • Mulai SQL Server. Jika semuanya disalin dengan benar dan keamanan diterapkan dengan benar, SQL Server seharusnya menunjukkan status mulai.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    • Buat database untuk menguji bahwa keamanan disiapkan dengan benar. Contoh berikut menunjukkan bahwa sedang dilakukan melalui Transact-SQL. Ini juga dapat dilakukan melalui SQL Server Management Studio (SSMS).

      Cuplikan layar memperlihatkan cara membuat database pengujian.

    • Hentikan SQL Server dan verifikasi bahwa SQL Server telah dimatikan.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Jika Anda tidak membuat mount NFS lainnya, lepaskan mount tersebut. Jika Anda membuat pemasangan lain, jangan lepas pemasangan.

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> adalah alamat IP server NFS yang akan Anda gunakan
      • <FolderOnNFSServer> adalah nama bagian NFS
      • <FolderMountedIn> adalah folder yang dibuat di langkah sebelumnya.
  4. Untuk hal-hal selain database sistem, seperti database pengguna atau cadangan, ikuti langkah-langkah ini. Jika hanya menggunakan lokasi default, lewati ke Langkah 5.

    • Beralih menjadi superuser.

      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 berikut membuat folder bernama /var/opt/mssql/userdata.

      mkdir /var/opt/mssql/userdata
      
    • Pasang berbagi NFS di folder yang dibuat di langkah sebelumnya.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> adalah alamat IP server NFS yang akan Anda gunakan
      • <FolderOnNFSServer> adalah nama bagian NFS
      • <FolderToMountIn> adalah folder yang dibuat di langkah sebelumnya.

      Contoh berikut mengaitkan NFS berbagi.

      mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
      
    • Periksa apakah pemasangan berhasil dengan menjalankan perintah mount tanpa opsi tambahan.

    • Ketik exit untuk tidak lagi menjadi superuser.

    • Untuk menguji, buat database di folder tersebut. Contoh berikut menggunakan sqlcmd untuk membuat database, beralih konteks ke dalamnya, memverifikasi bahwa file ada di tingkat OS, lalu menghapus lokasi sementara. Anda dapat menggunakan SSMS.

      Cuplikan layar perintah sqlcmd dan respons terhadap perintah .

    • Melepas kaitan berbagi

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> adalah alamat IP server NFS yang akan Anda gunakan
      • <FolderOnNFSServer> adalah nama bagian NFS
      • <FolderMountedIn> adalah folder yang dibuat di langkah sebelumnya.
  5. Ulangi langkah-langkah pada simpul lain.