Konfigurace instance failover clusteru na Linuxu (SMB)

Platí pro:SQL Server na Linuxu

Tento článek vysvětluje, jak nakonfigurovat úložiště SMB pro instanci clusteru s možností převzetí služeb při selhání (FCI) na Linuxu.

Mimo systém Windows se SMB také označuje jako sdílení Common Internet File System (CIFS), které implementuje Samba. Na Windows přistupujete ke SMB sdílení s formátem \\SERVERNAME\SHARENAME. Pro instalace SQL Server založených na Linuxu musíte připojit SMB share jako složku.

Důležité informace o zdroji a serveru

Řiďte se těmito tipy, abyste mohli úspěšně používat SMB:

  • Sdílená složka SMB může být ve Windows, Linuxu nebo na specializovaném zařízení, pokud využívá SMB 3.0 nebo novější. Pro více informací o Sambě a SMB 3.0 navštivte SMB 3.0, kde zjistíte, zda vaše implementace Samby splňuje SMB 3.0.
  • Sdílená složka SMB by měla být vysoce dostupná.
  • Správně nastavte zabezpečení u sdílení SMB. Následující příklad pochází z /etc/samba/smb.conf, kde SQLData je název podílu.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Instructions

  1. Vyberte jeden ze serverů, který se zapojí do konfigurace FCI. Nezáleží na tom, který z nich.

  2. Získejte informace o uživateli mssql.

     sudo id mssql
    

    Poznamenejte si uid, gida skupiny.

  3. Proveďte sudo smbclient -L //NameOrIP/ShareName -U User.

    • <NameOrIP> je název DNS nebo IP adresa serveru, který je hostitelem sdílené složky SMB.
    • <ShareName> je název SMB sdílení.
  4. V případě systémových databází nebo čehokoli uloženého ve výchozím umístění dat postupujte takto. V opačném případě přejděte ke kroku 5.

    1. Ujistěte se, že SQL Server je na serveru, na kterém pracujete, zastaven.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Přepněte se zcela na superuživatele.

      sudo -i
      
    3. Přepněte na uživatele mssql.

      su mssql
      
    4. Vytvořte dočasný adresář pro ukládání SQL Server dat a souborů protokolu.

      mkdir <TempDir>
      
      • <TempDir> je název složky. Následující příklad vytvoří složku s názvem /var/opt/mssql/tmp.
      mkdir /var/opt/mssql/tmp
      
    5. Zkopírujte data a soubory protokolu SQL Serveru do dočasného adresáře.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir> je název složky z předchozího kroku.
    6. Ověřte, že jsou soubory v adresáři.

      ls <TempDir>
      

      < > TempDir je název složky z kroku d.

    7. Odstraňte soubory z existujícího datového adresáře SQL Serveru.

      rm -f /var/opt/mssql/data/*
      
    8. Ověřte, že soubory již neexistují.

      ls /var/opt/mssql/data
      
    9. Zadejte exit, chcete-li se přepnout zpět na uživatele root.

    10. Připojte sdílenou složku SMB do složky dat SQL Serveru. Tento příklad ukazuje syntaxi pro připojení ke sdílené složce SMB 3.0 se systémem 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> je název serveru se sdílenou složkou SMB.
      • <ShareName> je název sdílení.
      • <UserName> je jméno uživatele pro přístup ke sdílené složce.
      • <Password> je heslo pro uživatele.
      • <domain> je název služby služba Active Directory.
      • <mssqlUID> je UID uživatele mssql.
      • <mssqlGID> je GID uživatele mssql
    11. Ověřte připojení spuštěním příkazu mount bez přepínačů.

      mount
      
    12. Přepněte na uživatele mssql.

      su mssql
      
    13. Zkopírujte soubory z dočasného adresáře /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Ověřte, že jsou soubory k dispozici.

      ls /var/opt/mssql/data
      
    15. Zadejte exit, chcete-li opustit uživatele mssql.

    16. Zadejte exit, chcete-li opustit uživatele root.

    17. Spusťte SQL Server. Pokud jste vše zkopírovali a správně aplikovali bezpečnost, spustí se SQL Server.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Pokud chcete provést další testování, vytvořte databázi, abyste měli jistotu, že jsou oprávnění v pořádku. Následující příklad používá Transact-SQL; můžete použít SQL Server Management Studio (SSMS).

      snímek obrazovky znázorňující vytvoření testovací databáze

    19. Zastavte SQL Server a ověřte, že je vypnutý. Pokud plánujete přidat nebo otestovat další disky, nevypínejte SQL Server, dokud je nepřidáte a neotestujete.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Když skončíte, odpojte díl. Jinak odpojte po dokončení testování nebo přidání disků.

      sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>
      
      • <IPAddressOrServerName> je IP adresa nebo název hostitele SMB.
      • <ShareName> je název sdílení.
      • <FolderMountedIn> je název složky, ve které je připojený protokol SMB.
  5. V případě jiných než systémových databází, jako jsou uživatelské databáze nebo zálohy, postupujte takto. Pokud použijete pouze výchozí polohu, přeskočte na krok 14.

    1. Přepněte na superuživatele.

      sudo -i
      
    2. Vytvořte složku pro SQL Server k použití.

      mkdir <FolderName>
      

      <FolderName> je název složky. Zadejte úplnou cestu ke složce, pokud není ve správném umístění. Následující příklad vytvoří složku s názvem /var/opt/mssql/userdata.

      mkdir /var/opt/mssql/userdata
      
    3. Připojte sdílenou složku SMB do složky dat SQL Serveru. Tento příklad ukazuje syntaxi pro připojení ke sdílení SMB 3.0 založenému na technologii 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> je název serveru se sdílenou složkou SMB.
      • <ShareName> je název sdílení.
      • <FolderName> je název složky vytvořené v posledním kroku.
      • <UserName> je jméno uživatele pro přístup ke sdílené složce.
      • <Password> je heslo pro uživatele.
      • <mssqlUID> je UID uživatele mssql.
      • <mssqlGID> je GID uživatele mssql.
    4. Ověřte připojení spuštěním mount bez přepínačů.

    5. Stisknutím exit ukončíte režim superuživatele.

    6. Pokud chcete testovat, vytvořte v této složce databázi. Následující příklad používá sqlcmd k vytvoření databáze, přepnutí kontextu na tuto databázi, ověření, že soubory existují na úrovni operačního systému, a následnému odstranění dočasného umístění. Můžete použít SSMS.

    7. Odpojte sdílenou složku.

      sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
      
      • <IPAddressOrServerName> je IP adresa nebo název hostitele SMB.
      • <ShareName> je název sdílení.
      • <FolderMountedIn> je název složky, ve které je připojený protokol SMB.
  6. Opakujte kroky na ostatních uzlech.

Teď jste připraveni nakonfigurovat FCI.