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
, kdeSQLData
je název sdílení.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser
Instrukce
Vyberte jeden ze serverů, které se budou účastnit konfigurace FCI. Nezáleží na tom, který z nich.
Získejte informace o uživateli
mssql
.sudo id mssql
Poznamenejte si
uid
,gid
a skupiny.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í.
-
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.
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 kroku d.
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
Pro přepnutí zpět na kořenového uživatele zadejte exit.
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živatelemssql
. -
<mssqlGID>
je GID uživatelemssql
-
Zkontrolujte, zda připojení proběhlo úspěšně tím, že zadáte příkaz mount bez přepínačů.
mount
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/mssql/data
Ověřte, že jsou soubory k dispozici.
ls /var/opt/mssql/data
Zadejte
exit
, aby nebylmssql
.Zadejte
exit
, aby nebylroot
.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
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.
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
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.
-
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.
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 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živatelemssql
. -
<mssqlGID>
je GID uživatelemssql
.
-
Zkontrolujte, jestli připojení proběhlo úspěšně, a to vydáním připojení bez přepínačů.
Napište 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.
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.
-
Zopakujte kroky na ostatních uzlech.
Teď jste připraveni nakonfigurovat FCI.