Konfigurasikan instance failover storage cluster SMB untuk SQL Server on Linux

Berlaku untuk:SQL Server di Linux

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

Di luar Windows, SMB juga disebut Common Internet File System (CIFS) share, yang diimplementasikan oleh Samba. Di Windows, Anda mengakses share SMB dengan format \\SERVERNAME\SHARENAME. Untuk instalasi SQL Server berbasis Linux, Anda harus memasang share SMB sebagai folder.

Informasi sumber dan server penting

Ikuti tips berikut untuk menggunakan SMB dengan sukses:

  • Bagi SMB dapat berada di Windows, Linux, atau perangkat selama menggunakan SMB 3.0 atau lebih baru. Untuk informasi lebih lanjut tentang Samba dan SMB 3.0, lihat SMB 3.0 untuk memeriksa apakah implementasi Samba Anda sesuai dengan SMB 3.0.
  • Berbagi SMB harus memiliki ketersediaan tinggi.
  • Atur keamanan dengan benar pada share SMB. Contoh berikut berasal dari /etc/samba/smb.conf, di mana SQLData adalah nama share.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Instructions

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

  2. Dapatkan informasi tentang mssql pengguna.

     sudo id mssql
    

    Perhatikan uid, gid, dan grup.

  3. Jalankan sudo smbclient -L //NameOrIP/ShareName -U User.

    • <NameOrIP> adalah nama DNS atau alamat IP server yang menghosting berbagi SMB.
    • <ShareName> adalah nama saham SMB.
  4. Untuk database sistem, atau apa pun yang disimpan di lokasi data default, ikuti langkah-langkah ini. Jika tidak, lewati ke langkah 5.

    1. Pastikan SQL Server dihentikan di server yang sedang Anda kerjakan.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Beralih sepenuhnya ke superuser.

      sudo -i
      
    3. Beralihlah ke pengguna mssql.

      su mssql
      
    4. 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
      
    5. Salin data SQL Server dan file log ke direktori sementara.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir> adalah nama folder dari langkah sebelumnya.
    6. Verifikasi bahwa file berada di direktori.

      ls <TempDir>
      

      <TempDir> adalah nama folder dari Langkah d.

    7. Hapus file dari direktori data SQL Server yang ada.

      rm -f /var/opt/mssql/data/*
      
    8. Verifikasi bahwa file tersebut sudah tidak ada lagi.

      ls /var/opt/mssql/data
      
    9. Enter exit untuk kembali ke root pengguna.

    10. Pasang berbagi SMB di folder data SQL Server. Contoh ini memperlihatkan sintaks untuk menyambungkan ke SMB 3.0 share yang berbasis Windows Server.

      mount -t cifs //<ServerName>/<ShareName> /var/opt/mssql/data -o vers=3.0,username=<UserName>,password=<Password>,domain=<domain>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName> adalah nama server yang memiliki berkas yang dibagikan melalui SMB
      • <ShareName> adalah nama bagian yang dibagikan
      • <UserName> adalah nama pengguna untuk mengakses pembagian
      • <Password> adalah kata sandi untuk pengguna
      • <domain> adalah nama Direktori Aktif
      • <mssqlUID> adalah UID mssql pengguna
      • <mssqlGID> adalah GID mssql pengguna
    11. Verifikasi dudukan dengan menjalankan mount tanpa saklar.

      mount
      
    12. Beralihlah ke pengguna mssql.

      su mssql
      
    13. Salin file dari direktori /var/opt/mssql/datasementara .

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Verifikasi bahwa file ada di sana.

      ls /var/opt/mssql/data
      
    15. Masukkan exit untuk meninggalkan mssql pengguna.

    16. Masukkan exit untuk meninggalkan root pengguna.

    17. Mulai SQL Server. Jika Anda menyalin semuanya dan menerapkan keamanan dengan benar, SQL Server akan dimulai.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Untuk menguji lebih lanjut, buat database untuk memastikan izinnya baik-baik saja. Contoh berikut menggunakan Transact-SQL; Anda dapat menggunakan SQL Server Management Studio (SSMS).

      Cuplikan layar memperlihatkan pembuatan database pengujian.

    19. Hentikan SQL Server dan verifikasi bahwa SQL Server dimatikan. Jika Anda berencana menambah atau menguji disk lain, jangan matikan SQL Server sampai Anda menambahkan dan mengujinya.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Jika sudah selesai, lepaskan bagian tersebut. Jika tidak, lepaskan setelah selesai menguji atau menambah disk.

      sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>
      
      • <IPAddressOrServerName> adalah alamat IP atau nama host SMB
      • <ShareName> adalah nama bagian yang dibagikan
      • <FolderMountedIn> adalah nama folder tempat SMB dipasang
  5. Untuk hal-hal selain database sistem, seperti database pengguna atau cadangan, ikuti langkah-langkah ini. Jika Anda hanya menggunakan lokasi default, lompat ke Langkah 14.

    1. Beralih ke superuser.

      sudo -i
      
    2. Buat folder untuk digunakan oleh SQL Server.

      mkdir <FolderName>
      

      <FolderName> adalah nama folder. Tentukan jalur penuh folder jika tidak berada di lokasi yang tepat. Contoh berikut membuat folder bernama /var/opt/mssql/userdata.

      mkdir /var/opt/mssql/userdata
      
    3. Pasang berbagi SMB di folder data SQL Server. Contoh ini memperlihatkan sintaks untuk menyambungkan ke pembagian SMB 3.0 berbasis Samba.

      mount -t cifs //<ServerName>/<ShareName> <FolderName> -o vers=3.0,username=<UserName>,password=<Password>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName> adalah nama server yang memiliki berkas yang dibagikan melalui SMB
      • <ShareName> adalah nama bagian yang dibagikan
      • <FolderName> adalah nama folder yang dibuat di langkah terakhir
      • <UserName> adalah nama pengguna untuk mengakses pembagian
      • <Password> adalah kata sandi untuk pengguna
      • <mssqlUID> adalah UID mssql pengguna
      • <mssqlGID> adalah GID mssql pengguna.
    4. Verifikasi dudukan dengan menjalankan mount tanpa saklar.

    5. Masukkan exit untuk meninggalkan superuser.

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

    7. Lepaskan bagian tersebut.

      sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
      
      • <IPAddressOrServerName> adalah alamat IP atau nama host SMB
      • <ShareName> adalah nama bagian yang dibagikan
      • <FolderMountedIn> adalah nama folder tempat SMB dipasang.
  6. Ulangi langkah-langkah pada simpul lain.

Anda sekarang siap untuk mengonfigurasi FCI.