Delen via


Instantie van failovercluster voor SMB-opslag configureren - SQL Server op Linux

van toepassing op:SQL Server- - Linux

In dit artikel wordt uitgelegd hoe u SMB-opslag configureert voor een failoverclusterexemplaar (FCI) in Linux.

In de niet-Windows-wereld wordt SMB ook wel een CIFS-share (Common Internet File System) genoemd en geïmplementeerd via Samba. In de Windows-wereld wordt het openen van een SMB-share op deze manier uitgevoerd: \\SERVERNAME\SHARENAME. Voor SQL Server-installaties op basis van Linux moet de SMB-share worden gekoppeld als een map.

Belangrijke bron- en servergegevens

Hier volgen enkele tips en notities voor het gebruik van SMB:

  • De SMB-share kan zich in Windows, Linux of zelfs vanaf een apparaat bevinden, zolang deze gebruikmaakt van SMB 3.0 of nieuwere versies. Zie voor meer informatie over Samba en SMB 3.0 SMB 3.0 om te zien of uw Samba-implementatie voldoet aan SMB 3.0.
  • De SMB-share moet maximaal beschikbaar zijn.
  • Beveiliging moet correct worden ingesteld op de SMB-share. Hieronder ziet u een voorbeeld uit /etc/samba/smb.conf, waarbij SQLData de naam van de share is.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Aanwijzingen

  1. Kies een van de servers die deelnemen aan de FCI-configuratie. Het maakt niet uit welke.

  2. Informatie ophalen over de mssql gebruiker.

     sudo id mssql
    

    Noteer de uid, giden groepen.

  3. Voer sudo smbclient -L //NameOrIP/ShareName -U Useruit.

    • <NameOrIP> is de DNS-naam of het IP-adres van de server die als host fungeert voor de SMB-share.
    • <ShareName> is de naam van de SMB-share.
  4. Volg deze stappen voor systeemdatabases of alles wat is opgeslagen op de standaardgegevenslocatie. Ga anders verder met stap 5.

    1. Zorg ervoor dat SQL Server is gestopt op de server waaraan u werkt.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Schakel volledig over naar de superuser.

      sudo -i
      
    3. Schakel over naar de mssql gebruiker.

      su mssql
      
    4. Maak een tijdelijke map om de SQL Server-gegevens en logboekbestanden op te slaan.

      mkdir <TempDir>
      
      • <TempDir> is de naam van de map. In het volgende voorbeeld wordt een map met de naam /var/opt/mssql/tmpgemaakt.
      mkdir /var/opt/mssql/tmp
      
    5. Kopieer de SQL Server-gegevens en logboekbestanden naar de tijdelijke map.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir> is de naam van de map uit de vorige stap.
    6. Controleer of de bestanden zich in de map bevinden.

      ls <TempDir>
      

      <TempDir-> is de naam van de map uit stap d.

    7. Verwijder de bestanden uit de bestaande SQL Server-gegevensmap.

      rm - f /var/opt/mssql/data/*
      
    8. Controleer of de bestanden zijn verwijderd.

      ls /var/opt/mssql/data
      
    9. Typ exit om terug te schakelen naar de hoofdgebruiker.

    10. Mount de SMB-share in de SQL Server-gegevensmap. In dit voorbeeld ziet u de syntaxis voor het maken van verbinding met een Op Windows Server gebaseerde SMB 3.0-share.

      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> is de naam van de server met de SMB-share
      • <ShareName> is de naam van de share
      • <UserName> is de naam van de gebruiker voor toegang tot de share
      • <Password> is het wachtwoord voor de gebruiker
      • <domain> is de naam van Active Directory
      • <mssqlUID> is de UID van de mssql gebruiker
      • <mssqlGID> is de GID van de mssql gebruiker
    11. Controleer of de koppeling is geslaagd door de mount-opdracht zonder opties uit te voeren.

      mount
      
    12. Schakel over naar de mssql gebruiker.

      su mssql
      
    13. Kopieer de bestanden uit de tijdelijke map /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Controleer of de bestanden er zijn.

      ls /var/opt/mssql/data
      
    15. Voer exit in om niet mssqlte zijn.

    16. Voer exit in om niet te worden root.

    17. Start SQL Server. Als alles correct is gekopieerd en de beveiliging correct is toegepast, moet SQL Server worden weergegeven als gestart.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Als u verder wilt testen, maakt u een database om ervoor te zorgen dat de machtigingen goed zijn. In het volgende voorbeeld wordt Transact-SQL gebruikt; U kunt SSMS gebruiken.

      Schermopname van het maken van de testdatabase.

    19. Stop SQL Server en controleer of deze is afgesloten. Als u andere schijven gaat toevoegen of testen, sluit u SQL Server pas af als deze schijven zijn toegevoegd en getest.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Alleen als u klaar bent, ontkoppel de gedeelde map. Als dat niet het geval is, ontkoppelt u deze na het testen/toevoegen van extra schijven.

      sudo umount //<IPAddressorServerName>/<ShareName /<FolderMountedIn>
      
      • <IPAddressOrServerName> is het IP-adres of de naam van de SMB-host
      • <ShareName> is de naam van de share
      • <FolderMountedIn> is de naam van de map waarin SMB is gekoppeld
  5. Volg deze stappen voor andere zaken dan systeemdatabases, zoals gebruikersdatabases of back-ups. Als u alleen de standaardlocatie gebruikt, gaat u verder met stap 14.

    1. Schakel over naar de superuser.

      sudo -i
      
    2. Maak een map die wordt gebruikt door SQL Server.

      mkdir <FolderName>
      

      <FolderName> de naam van de map is. Het volledige pad van de map moet worden opgegeven als dit niet op de juiste locatie staat. In het volgende voorbeeld wordt een map met de naam /var/opt/mssql/userdatagemaakt.

      mkdir /var/opt/mssql/userdata
      
    3. Koppel de SMB-share in de SQL Server-gegevensmap. In dit voorbeeld ziet u de syntaxis voor het maken van verbinding met een Samba-gebaseerde SMB 3.0-share.

      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> is de naam van de server met de SMB-share
      • <ShareName> is de naam van de share
      • <FolderName> is de naam van de map die in de laatste stap is gemaakt
      • <UserName> is de naam van de gebruiker voor toegang tot de share
      • <Password> is het wachtwoord voor de gebruiker
      • <mssqlUID> is de UID van de mssql gebruiker
      • <mssqlGID> is de GID van de mssql gebruiker.
    4. Controleer of de koppeling is geslaagd door het mount-commando zonder parameters uit te voeren.

    5. Typ exit om niet langer de superuser te zijn.

    6. Als u wilt testen, maakt u een database in die map. In het volgende voorbeeld wordt sqlcmd gebruikt om een database te maken, naar een andere context te schakelen, te controleren of de bestanden op besturingssysteemniveau bestaan en vervolgens de tijdelijke locatie te verwijderen. U kunt SSMS gebruiken.

    7. De gedeelde map ontkoppelen

      sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
      
      • <IPAddressOrServerName> is het IP-adres of de naam van de SMB-host
      • <ShareName> is de naam van de share
      • <FolderMountedIn> is de naam van de map waarin SMB is gekoppeld.
  6. Herhaal de stappen op de andere knooppunten.

U bent nu klaar om de FCI te configureren.