Sdílet prostřednictvím


Konfigurace bezvýpadkové instance clusteru úložiště SMB – SQL Server na Linuxu

platí pro:SQL Server – Linux

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.

Ve světě mimo Windows se SMB také označuje jako sdílená složka CIFS (Common Internet File System) a implementuje se pomocí systému Samba. Ve Windows se přístup ke sdílené složce SMB provádí tímto způsobem: \\SERVERNAME\SHARENAME. Pro instalace SQL Serveru založeného na Linuxu musí být sdílená složka SMB připojena jako složka.

Důležité informace o zdroji a serveru

Tady je několik tipů a poznámek k úspěšnému použití protokolu SMB:

  • Sdílená složka SMB může být na Windows, Linuxu nebo dokonce z hardwarového zařízení, pokud používá protokol SMB 3.0 nebo novější verze. Další informace o Sambě a SMB 3.0 najdete v tématu SMB 3.0, abyste zjistili, zda je vaše implementace Samby kompatibilní s protokolem SMB 3.0.
  • Sdílená složka SMB by měla být vysoce dostupná.
  • Zabezpečení musí být správně nastaveno na sdíleném úložišti SMB. Níže je příklad z /etc/samba/smb.conf, kde SQLData je název sdílení.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Instrukce

  1. Vyberte jeden ze serverů, které se budou účastnit 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. Spusť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 je SQL Server na serveru, na kterém pracujete, zastavený.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Přepněte úplně 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í dat a souborů protokolu SQL Serveru.

      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 byly soubory odstraněny.

      ls /var/opt/mssql/data
      
    9. Pro přepnutí zpět na kořenového uživatele zadejte exit.

    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 Active Directory.
      • <mssqlUID> je UID uživatele mssql.
      • <mssqlGID> je GID uživatele mssql
    11. Zkontrolujte, zda připojení proběhlo úspěšně tím, že zadáte příkaz 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, aby nebyl mssql.

    16. Zadejte exit, aby nebyl root.

    17. Spusťte SQL Server. Pokud se všechno zkopírovalo správně a správně se použilo zabezpečení, měl by se SQL Server zobrazit jako spuštěný.

      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á Jazyk Transact-SQL; můžete použít SSMS.

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

    19. Zastavte SQL Server a ověřte, že je vypnutý. Pokud budete přidávat nebo testovat další disky, nevypínávejte SQL Server, dokud se tyto disky nepřidají a neotestují.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Pouze pokud je proces dokončen, odpojte sdílený disk. Pokud ne, odpojte se po dokončení testování nebo přidání dalších 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žíváte pouze výchozí umístění, přejděte ke kroku 14.

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

      sudo -i
      
    2. Vytvořte složku, kterou bude používat SQL Server.

      mkdir <FolderName>
      

      <FolderName> je název složky. Úplná cesta ke složce musí být zadána, 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. Zkontrolujte, jestli připojení proběhlo úspěšně, a to vydáním připojení bez přepínačů.

    5. Napište exit, abyste přestali být superuživatelem.

    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 ni, ověření existence souborů na úrovni operačního systému a následné odstranění dočasného umístění. Můžete použít SSMS.

    7. Odpojte sdílené úložiště

      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. Zopakujte kroky na ostatních uzlech.

Teď jste připraveni nakonfigurovat FCI.