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
Vyberte jeden ze serverů, které se budou účastnit konfigurace FCI. Nezáleží na tom, který z nich.
Zkontrolujte, jestli server vidí připojení na serveru NFS.
sudo showmount -e <IPAddressOfNFSServer>
-
<IPAddressOfNFSServer>
je IP adresa serveru NFS, který budete používat.
-
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 nebylmssql
.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.
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.
-
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.
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.
-
Zopakujte kroky na ostatních uzlech.