Dela via


Konfigurera redundansklusterinstans – NFS – SQL Server i Linux

gäller för:SQL Server – Linux

Den här artikeln beskriver hur du konfigurerar NFS-lagring för en redundansklusterinstans (FCI) i Linux.

NFS, eller nätverksfilsystem, är en vanlig metod för att dela diskar i Linux-världen, men inte Windows. På samma sätt som iSCSI kan NFS konfigureras på en server eller någon form av apparat eller lagringsenhet så länge den uppfyller lagringskraven för SQL Server.

Viktig NFS-serverinformation

Källan som är värd för NFS (antingen en Linux-server eller något annat) måste använda/följa version 4.2 eller senare. Tidigare versioner fungerar inte med SQL Server i Linux.

När du konfigurerar de mappar som ska delas på NFS-servern kontrollerar du att de följer dessa allmänna riktlinjer:

  • rw för att säkerställa att mappen kan läsas från och skrivas till
  • sync för att säkerställa garanterade skrivningar till mappen
  • Använd inte no_root_squash som alternativ. det anses vara en säkerhetsrisk
  • Kontrollera att mappen har fullständiga rättigheter (777) är tillämpade.

Se till att dina säkerhetsstandarder tillämpas för åtkomst. När du konfigurerar mappen kontrollerar du att endast de servrar som deltar i FCI ska se NFS-mappen. I följande exempel visas en modifierad /etc/exports på en Linux-baserad NFS-lösning, där mappen är begränsad till FCIN1 och 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)

Instruktioner

  1. Välj en av servrarna som ska delta i FCI-konfigurationen. Det spelar ingen roll vilken.

  2. Kontrollera att servern kan se monteringen på NFS-servern.

    sudo showmount -e <IPAddressOfNFSServer>
    
    • <IPAddressOfNFSServer> är IP-adressen för den NFS-server som du ska använda.
  3. Följ dessa steg för systemdatabaser eller något som lagras på standarddataplatsen. Annars går du vidare till Steg 4.

    • Kontrollera att SQL Server har stoppats på den server som du arbetar med.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Byt helt till superanvändare.

      sudo -i
      
    • Växla till användaren mssql.

      su mssql
      
    • Skapa en tillfällig katalog för att lagra SQL Server-data och loggfiler.

      mkdir <TempDir>
      
      • <TempDir> är namnet på mappen. I följande exempel skapas en mapp med namnet /var/opt/mssql/tmp.
      mkdir /var/opt/mssql/tmp
      
    • Kopiera SQL Server-data och loggfiler till den tillfälliga katalogen.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir> är namnet på mappen från föregående steg.
    • Kontrollera att filerna finns i katalogen.

      ls TempDir
      
      • <TempDir> är namnet på mappen från föregående steg.
    • Ta bort filerna från den befintliga SQL Server-datakatalogen.

      rm - f /var/opt/mssql/data/*
      
    • Kontrollera att filerna har tagits bort.

      ls /var/opt/mssql/data
      
    • Skriv exit för att växla tillbaka till rotanvändaren.

    • Montera NFS-resursen i SQL Server-datamappen.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> är IP-adressen för den NFS-server som du ska använda
      • <FolderOnNFSServer> är namnet på NFS-andelen. Följande exempelsyntax matchar NFS-informationen från steg 2.
      mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
    • Kontrollera att monteringen lyckades genom att köra mount utan alternativ.

      mount
      

      Här är det förväntade resultatet.

      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)
      
    • Växla till användare mssql.

      su mssql
      
    • Kopiera filerna från den tillfälliga katalogen /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssqldata
      
    • Kontrollera att filerna finns där.

      ls /var/opt/mssql/data
      
    • Ange exit för att inte vara mssql.

    • Ange exit som inte ska vara rot.

    • Starta SQL Server. Om allt kopierades korrekt och säkerheten tillämpades korrekt bör SQL Server visas som igång.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    • Skapa en databas för att testa att säkerheten har konfigurerats korrekt. Följande exempel visar att det görs med Transact-SQL; det kan också göras med SSMS.

      Skärmbild som visar hur du skapar testdatabasen.

    • Stoppa SQL Server och kontrollera att den är avstängd.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Om du inte skapar några andra NFS-monteringar demonterar du delningen. Om så är fallet, demontera inte.

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> är IP-adressen för den NFS-server som du ska använda
      • <FolderOnNFSServer> är namnet på NFS-resursen
      • <FolderMountedIn> är mappen som skapades i föregående steg.
  4. Följ dessa steg för andra saker än systemdatabaser, till exempel användardatabaser eller säkerhetskopior. Om du bara använder standardplatsen går du vidare till Steg 5.

    • Byt till superanvändare.

      sudo -i
      
    • Skapa en mapp som ska användas av SQL Server.

      mkdir <FolderName>
      
      • <FolderName> är namnet på mappen. Mappens fullständiga sökväg måste anges om den inte finns på rätt plats.

      I följande exempel skapas en mapp med namnet /var/opt/mssql/userdata.

      mkdir /var/opt/mssql/userdata
      
    • Montera NFS-resursen i mappen som skapades i föregående steg.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> är IP-adressen för den NFS-server som du ska använda
      • <FolderOnNFSServer> är namnet på NFS-delningen
      • <FolderToMountIn> är mappen som skapades i föregående steg.

      I följande exempel monteras NFS-delning.

      mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
      
    • Kontrollera att monteringen lyckades genom att köra mount utan alternativ.

    • Skriv exit för att inte längre vara superanvändare.

    • Om du vill testa skapar du en databas i den mappen. I följande exempel används sqlcmd för att skapa en databas, växla kontext till den, kontrollera att filerna finns på OS-nivå och tar sedan bort den tillfälliga platsen. Du kan använda SSMS.

      Skärmbild av sqlcmd-kommandot och svaret på kommandot.

    • Avmontera delningen

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> är IP-adressen för den NFS-server som du ska använda
      • <FolderOnNFSServer> är namnet på NFS-andelen
      • <FolderMountedIn> är mappen som skapades i föregående steg.
  5. Upprepa stegen på de andra noderna.