Sdílet prostřednictvím


Konfigurace instance clusteru pro převzetí služeb při selhání – NFS – SQL Server na Linuxu

platí pro:SQL Server – Linux

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

Systém souborů NFS nebo síťový systém souborů je běžnou metodou sdílení disků ve světě Linuxu, ale ne windows. Podobně jako u rozhraní iSCSI je možné systém souborů NFS nakonfigurovat na serveru nebo na nějakém druhu zařízení nebo úložné jednotky, pokud splňuje požadavky na úložiště pro SQL Server.

Důležité informace o serveru NFS

Zdrojový hostující systém souborů NFS (server s Linuxem nebo něco jiného) musí používat nebo vyhovovat verzi 4.2 nebo novější. Starší verze nefungují s SQL Serverem v Linuxu.

Při konfiguraci složek, které se mají sdílet na serveru NFS, se ujistěte, že dodržují tyto obecné možnosti:

  • rw, aby se zajistilo, že je možné složku číst a zapisovat do
  • sync k zajištění zaručených zápisů do složky
  • Nepoužívejte no_root_squash jako možnost; považuje se za bezpečnostní riziko.
  • Ujistěte se, že složka má úplná práva (777).

Ujistěte se, že jsou pro přístup uplatňovány vaše standardy zabezpečení. Při konfiguraci složky se ujistěte, že složku NFS by měly vidět jenom servery, které se účastní FCI. V následujícím příkladu je zobrazen upravený /etc/exports v řešení NFS založeném na Linuxu, kde je složka omezena na FCIN1 a 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)

Instrukce

  1. Vyberte jeden ze serverů, které se budou účastnit konfigurace FCI. Nezáleží na tom, který z nich.

  2. Zkontrolujte, jestli server vidí připojení na serveru NFS.

    sudo showmount -e <IPAddressOfNFSServer>
    
    • <IPAddressOfNFSServer> je IP adresa serveru NFS, který budete používat.
  3. 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 4.

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

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Přepněte úplně na superuživatele.

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

      su mssql
      
    • 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
      
    • 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.
    • Ověřte, že jsou soubory v adresáři.

      ls TempDir
      
      • <TempDir> je název složky z předchozího kroku.
    • Odstraňte soubory z existujícího datového adresáře SQL Serveru.

      rm - f /var/opt/mssql/data/*
      
    • Ověřte, že byly soubory odstraněny.

      ls /var/opt/mssql/data
      
    • Pokud chcete přepnout zpět na kořenového uživatele, zadejte exit.

    • Připojte sdílenou složku NFS do datové složky SQL Serveru.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> je IP adresa serveru NFS, který budete používat.
      • <FolderOnNFSServer> je název sdíleného úložiště NFS. Následující příklad syntaxe odpovídá informacím systému souborů NFS z kroku 2.
      mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
    • Zkontrolujte, zda bylo připojení úspěšné, spuštěním příkazu mount bez přepínačů.

      mount
      

      Tady je očekávaný výstup.

      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)
      
    • Přepněte na uživatele mssql.

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

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

      ls /var/opt/mssql/data
      
    • Zadejte exit, aby nebyl mssql.

    • Zadejte exit, aby nebyl kořenový.

    • 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
      
    • Vytvořte databázi k otestování správného nastavení zabezpečení. Následující příklad ukazuje, že probíhá prostřednictvím jazyka Transact-SQL; můžete ho provést přes SSMS.

      Snímek obrazovky znázorňující, jak vytvořit testovací databázi

    • Zastavte SQL Server a ověřte, že je vypnutý.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Pokud nevytvořete žádné další připojení NFS, odpojte sdílenou složku. Pokud ano, neodpojujte.

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> je IP adresa serveru NFS, který budete používat.
      • <FolderOnNFSServer> je název sdílené složky NFS.
      • <FolderMountedIn> je složka vytvořená v předchozím kroku.
  4. 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 5.

    • Přepněte na superuživatele.

      sudo -i
      
    • 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
      
    • Připojte sdílenou složku NFS do složky vytvořené v předchozím kroku.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer> je IP adresa serveru NFS, který budete používat.
      • <FolderOnNFSServer> je název sdílené složky NFS.
      • <FolderToMountIn> je složka vytvořená v předchozím kroku.

      Následující příklad připojí sdílený disk NFS.

      mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
      
    • Zkontrolujte, zda připojení proběhlo úspěšně provedením příkazu mount bez přepínačů.

    • Zadejte exit, abyste přestali být superuživatelem.

    • 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.

      snímek obrazovky s příkazem sqlcmd a odpovědí na příkaz

    • Odpojení sdílené složky

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer> je IP adresa serveru NFS, který budete používat.
      • <FolderOnNFSServer> je název sdílené složky NFS.
      • <FolderMountedIn> je složka vytvořená v předchozím kroku.
  5. Zopakujte kroky na ostatních uzlech.