Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server – Linux
Tento článek vysvětluje, jak nakonfigurovat úložiště iSCSI pro instanci failover clusteru (FCI) na Linuxu.
Konfigurace iSCSI
iSCSI používá síť k zpřístupnění disků ze serveru označovaného jako cíl na jiné servery. Servery, které se připojují k cíli iSCSI, vyžadují konfiguraci iniciátoru iSCSI. Disky v cíli mají explicitní oprávnění, aby k nim měli přístup pouze iniciátoři, kteří by k nim měli mít přístup. Samotný cíl by měl být vysoce dostupný a spolehlivý.
Důležité informace o cíli iSCSI
I když tato část nepopisuje, jak nakonfigurovat cíl iSCSI, protože je specifický pro typ používaného zdroje, ujistěte se, že je nakonfigurované zabezpečení disků, které budou uzly clusteru používat.
Cíl by se nikdy neměl konfigurovat na žádném z uzlů FCI, pokud používáte cíl iSCSI založený na Linuxu. Pro zajištění výkonu a dostupnosti by sítě iSCSI měly být oddělené od sítí používaných pravidelným síťovým provozem na zdrojovém i klientském serveru. Sítě používané pro iSCSI by měly být rychlé. Mějte na paměti, že síť spotřebovávají určitou šířku pásma procesoru, takže pokud používáte běžný server, naplánujte to odpovídajícím způsobem.
Nejdůležitější věcí, kterou je potřeba zajistit na cílovém systému, je, aby vytvořené disky byla přiřazena správná oprávnění, aby k nim měli přístup jen ty servery, které se účastní FCI. Tady je příklad z cíle iSCSI Microsoftu, kde linuxnodes1 je vytvořený název, a v tomto případě jsou IP adresy uzlů přiřazeny tak, aby se jim NewFCIDisk1.vhdx zobrazily.
Instrukce
Tato část popisuje, jak nakonfigurovat iniciátor iSCSI na serverech, které slouží jako uzly pro FCI. Pokyny by měly fungovat stejně jako na Red Hat Enterprise Linuxu (RHEL) a Ubuntu.
Další informace o iniciátoru iSCSI pro podporované distribuce najdete na následujících odkazech:
Vyberte jeden ze serverů, které se budou účastnit konfigurace FCI. Nezáleží na tom, který z nich. ISCSI by měla být ve vyhrazené síti, takže nakonfigurujte iSCSI tak, aby tuto síť rozpoznala a používala. Spusťte
sudo iscsiadm -m iface -I <iSCSIIfaceName> -o new, kde<iSCSIIfaceName>je jedinečný nebo přívětivý název sítě. Následující příklad používáiSCSINIC:sudo iscsiadm -m iface -I iSCSINIC -o newTady je očekávaný výstup.
New interface iSCSINIC addedUpravit
/var/lib/iscsi/ifaces/iSCSIIfaceName. Ujistěte se, že obsahuje úplně vyplněné následující hodnoty:-
iface.net_ifacenameje název síťové karty, jak je vidět v operačním systému. -
iface.hwaddressje adresa MAC jedinečného názvu, který se vytvoří pro následující rozhraní. iface.ipaddressiface.subnet_Mask
Podívejte se na následující příklad:
-
Vyhledejte cíl iSCSI.
sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort><iSCSINetName>je jedinečný/popisný název sítě,<TargetIPAddress>je IP adresa cíle iSCSI a<TargetPort>je port cíle iSCSI.Tady je očekávaný výstup.
10.181.182.1:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target 10.201.202.1:3260,1 iqn.1991-05.com.contoso:dc1-linuxnodes1-target [2002:b4b5:b601::b4b5:b601]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target [2002:8c9:ca01::c8c9:ca01]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-targetPřihlaste se k cíli.
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l<iSCSIIfaceName>je jedinečný/popisný název sítě a<TargetIPAddress>je IP adresa cíle iSCSI.Tady je očekávaný výstup.
Logging in to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] (multiple) Login to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] successful.Zkontrolujte, jestli existuje připojení k cíli iSCSI.
sudo iscsiadm -m sessionVýstup vypadá podobně jako v následujícím příkladu:
tcp: [1] 10.105.16.7:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target (non-flash)Zkontrolujte připojené disky iSCSI.
sudo grep "Attached SCSI" /var/log/messages
Na disku iSCSI vytvořte fyzický svazek.
sudo pvcreate /dev/<devicename><devicename>je název zařízení z předchozího kroku.Vytvořte skupinu svazků na disku iSCSI. Disky přiřazené jedné skupině svazků se považují za fond nebo kolekci.
sudo vgcreate <VolumeGroupName> /dev/devicename<VolumeGroupName>je název skupiny svazků a<devicename>je název zařízení z kroku 6.Vytvořte a ověřte logický svazek disku.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName><size>je velikost svazku, který se má vytvořit, a dá se zadat pomocí G (gigabajtů), T (terabajtů) atd.,<LogicalVolumeName>je název logického svazku a<VolumeGroupName>je název skupiny svazků z předchozího kroku.Tady je očekávaný výstup.
Logical volume "FCIDataLV1" created.Následující příklad vytvoří svazek o velikosti 25 GB.
Spuštěním
sudo lvszobrazíte vytvořený LVM.Naformátujte logický svazek s podporovaným systémem souborů. Pro ext4 použijte následující příklad:
sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName><VolumeGroupName>je název skupiny svazků z předchozího kroku.<LogicalVolumeName>je název logického svazku z předchozího kroku.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 13.
Ujistěte se, že je SQL Server na serveru, na kterém pracujete, zastavený.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverPřepněte úplně na superuživatele. V případě úspěchu neobdržíte žádné potvrzení.
sudo -iPřepněte na uživatele
mssql. V případě úspěchu neobdržíte žádné potvrzení.su mssqlVytvořte dočasný adresář pro ukládání dat a souborů protokolu SQL Serveru. V případě úspěchu neobdržíte žádné potvrzení.
mkdir <TempDir><TempDir>je název složky. Následující příklad vytvoří složku s názvem /var/opt/mssql/TempDir.mkdir /var/opt/mssql/TempDirZkopírujte data a soubory protokolu SQL Serveru do dočasného adresáře. V případě úspěchu neobdržíte žádné potvrzení.
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ích kroků.Odstraňte soubory z existujícího datového adresáře SQL Serveru. V případě úspěchu neobdržíte žádné potvrzení.
rm - f /var/opt/mssql/data/*Ověřte, že byly soubory odstraněny. Následující obrázek ukazuje příklad celé sekvence z c až h.
ls /var/opt/mssql/dataZadáním
exitpřepněte zpět na uživateleroot.Připojte logický svazek iSCSI do složky dat SQL Serveru. V případě úspěchu neobdržíte žádné potvrzení.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data<VolumeGroupName>je název skupiny svazků a<LogicalVolumeName>je název vytvořeného logického svazku. Následující příklad syntaxe odpovídá skupině svazků a logickému svazku z předchozího příkazu.mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/dataZměňte vlastníka připojení na
mssql. V případě úspěchu neobdržíte žádné potvrzení.chown mssql /var/opt/mssql/dataZměňte vlastnictví skupiny přípoje na
mssql. V případě úspěchu neobdržíte žádné potvrzení.chgrp mssql /var/opt/mssql/dataPřepněte na uživatele
mssql. V případě úspěchu neobdržíte žádné potvrzení.su mssqlZkopírujte soubory z dočasného adresáře
/var/opt/mssql/data. V případě úspěchu neobdržíte žádné potvrzení.cp /var/opt/mssql/TempDir/* /var/opt/mssql/dataOvěřte, že jsou soubory k dispozici.
ls /var/opt/mssql/dataZadejte
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-serverZastavte SQL Server a ověřte, že je vypnutý.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
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. V případě úspěchu neobdržíte žádné potvrzení.
sudo -iVytvoř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/userdataPřipojte logický svazek iSCSI do složky vytvořené v předchozím kroku. V případě úspěchu neobdržíte žádné potvrzení.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>je název skupiny svazků,<LogicalVolumeName>je název vytvořeného logického svazku a<FolderName>je název složky. Tady je uvedena příklad syntaxe.mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdataZměňte vlastnictví složky vytvořené na
mssql. V případě úspěchu neobdržíte žádné potvrzení.chown mssql <FolderName><FolderName>je název vytvořené složky. Tady je uvedený příklad.chown mssql /var/opt/mssql/userdataZměňte skupinu vytvořené složky na
mssql. V případě úspěchu neobdržíte žádné potvrzení.chown mssql <FolderName><FolderName>je název vytvořené složky. Tady je uvedený příklad.chown mssql /var/opt/mssql/userdataZadejte
exit, aby už nebyl superuživatelem.Pokud chcete testovat, vytvořte v této složce databázi. Následující skript vytvoří databázi, přepne do ní kontext, ověří, jestli soubory existují na úrovni operačního systému, a pak odstraní dočasné umístění. Ke spuštění tohoto skriptu můžete použít SSMS nebo sqlcmd.
DROP DATABASE TestDB; GO CREATE DATABASE TestDB ON (NAME = TestDB_Data, FILENAME = '/var/opt/mssql/userdata/TestDB_Data.mdf') LOG ON (NAME = TestDB_Log, FILENAME = '/var/opt/mssql/userdata/TestDB_Log.ldf'); GO USE TestDB; GOSpuštěním následujícího příkazu v prostředí zobrazte nové soubory databáze.
sudo ls /var/opt/mssal/userdataTady je očekávaný výstup.
lost+found TestDB_Data.mdf TestDB_Log.ldfOdstraňte databázi, abyste ji vyčistili.
DROP DATABASE TestDB; GOsudo ls /var/opt/mssal/userdataTady je očekávaný výstup.
lost+foundOdpojit sdílení
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>je název skupiny svazků,<LogicalVolumeName>je název vytvořeného logického svazku a<FolderName>je název složky. Tady je uvedena příklad syntaxe.sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Nakonfigurujte server tak, aby skupinu svazků mohl aktivovat pouze nástroj Pacemaker.
sudo lvmconf --enable-halvm --services -startstopservicesVygenerujte seznam skupin svazků na serveru. Systém používá cokoli, co není diskem iSCSI, například pro disk s operačním systémem.
sudo vgsUpravte část konfigurace aktivace souboru /etc/lvm/lvm.conf. Nakonfigurujte následující řádek:
volume_list = [ <ListOfVGsNotUsedByPacemaker> ]<ListOfVGsNotUsedByPacemaker>je seznam skupin svazků z výstupu kroku 20, které nejsou používány FCI. Každou z nich vložte do uvozovek a oddělte čárkou. Tady je uvedený příklad.Při startu Linuxu se namontuje systém souborů. Pokud chcete zajistit, aby disk iSCSI mohl připojit pouze Pacemaker, znovu sestavte image kořenového systému souborů.
Spusťte následující příkaz, který může chvíli trvat. V případě úspěchu se žádná zpráva nevrátí.
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)Restartujte server.
Na jiném serveru, který se bude účastnit FCI, proveďte kroky 1 až 6. Představí cíl iSCSI pro SQL Server.
Vygenerujte seznam skupin svazků na serveru. Měla by se zobrazit objemová skupina vytvořená dříve.
sudo vgsSpusťte SQL Server a ověřte, že je možné ho spustit na tomto serveru.
sudo systemctl start mssql-server sudo systemctl status mssql-serverZastavte SQL Server a ověřte, že je vypnutý.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverOpakujte kroky 1 až 6 na všech ostatních serverech, které se budou účastnit FCI.
Teď jste připraveni nakonfigurovat FCI.