Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server – Linux
Den här artikeln beskriver hur du konfigurerar iSCSI-lagring för en redundansklusterinstans (FCI) i Linux.
Konfigurera iSCSI
iSCSI använder nätverk för att presentera diskar från en server, som kallas en målserver, till andra servrar. Servrarna som ansluter till iSCSI-målet kräver att en iSCSI-initierare har konfigurerats. Diskarna på målet får explicita behörigheter så att endast de initierare som ska kunna komma åt dem kan göra det. Själva målet bör vara mycket tillgängligt och tillförlitligt.
Viktig information om iSCSI-mål
Även om det här avsnittet inte beskriver hur du konfigurerar ett iSCSI-mål eftersom det är specifikt för den typ av källa som du använder, kontrollerar du att säkerheten för diskarna som ska användas av klusternoderna är konfigurerad.
Målet bör aldrig konfigureras på någon av FCI-noderna om du använder ett Linux-baserat iSCSI-mål. För prestanda och tillgänglighet bör iSCSI-nätverk vara åtskilda från nätverk som används av vanlig nätverkstrafik på både käll- och klientservrarna. Nätverk som används för iSCSI bör vara snabba. Kom ihåg att nätverket förbrukar en del processorbandbredd, så planera därefter om du använder en vanlig server.
Det viktigaste att se till att slutförs på målet är att de diskar som skapas tilldelas rätt behörigheter så att endast de servrar som deltar i FCI har åtkomst till dem. Ett exempel visas här från Microsoft iSCSI-målservern där linuxnodes1 är namnet som har skapats, och i det här fallet tilldelas IP-adresserna för noderna så att NewFCIDisk1.vhdx visas för dem.
Instruktion
Det här avsnittet beskriver hur du konfigurerar en iSCSI-initierare på de servrar som fungerar som noder för FCI. Instruktionerna bör fungera som i Red Hat Enterprise Linux (RHEL) och Ubuntu.
Mer information om iSCSI-initieraren för de distributioner som stöds finns i följande länkar:
Välj en av servrarna som ska delta i FCI-konfigurationen. Det spelar ingen roll vilken. iSCSI ska finnas i ett dedikerat nätverk, så konfigurera iSCSI för att identifiera och använda nätverket. Kör
sudo iscsiadm -m iface -I <iSCSIIfaceName> -o newdär<iSCSIIfaceName>är nätverkets unika eller vänliga namn. I följande exempel användsiSCSINIC:sudo iscsiadm -m iface -I iSCSINIC -o newHär är de förväntade resultaten.
New interface iSCSINIC addedRedigera
/var/lib/iscsi/ifaces/iSCSIIfaceName. Kontrollera att följande värden är helt ifyllda:-
iface.net_ifacenameär namnet på nätverkskortet enligt operativsystemet. -
iface.hwaddressär MAC-adressen för det unika namn som skapas för följande gränssnitt. iface.ipaddressiface.subnet_Mask
Se följande exempel:
-
Hitta iSCSI-målet.
sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort><iSCSINetName>är det unika/egna namnet för nätverket,<TargetIPAddress>är IP-adressen för iSCSI-målet och<TargetPort>är porten för iSCSI-målet.Här är de förväntade resultaten.
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-targetLogga in på målet.
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l<iSCSIIfaceName>är det unika/egna namnet för nätverket och<TargetIPAddress>är IP-adressen för iSCSI-målet.Här är de förväntade resultaten.
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.Kontrollera att det finns en anslutning till iSCSI-målet.
sudo iscsiadm -m sessionUtdata ser ut ungefär som i följande exempel:
tcp: [1] 10.105.16.7:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target (non-flash)Kontrollera iSCSI-anslutna diskar.
sudo grep "Attached SCSI" /var/log/messages
Skapa en fysisk volym på iSCSI-disken.
sudo pvcreate /dev/<devicename><devicename>är namnet på enheten från föregående steg.Skapa en volymgrupp på iSCSI-disken. Diskar som tilldelats en enskild volymgrupp ses som en pool eller samling.
sudo vgcreate <VolumeGroupName> /dev/devicename<VolumeGroupName>är namnet på volymgruppen och<devicename>är namnet på enheten från steg 6.Skapa och verifiera den logiska volymen för disken.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName><size>är storleken på volymen som ska skapas och kan anges med G (gigabyte), T (terabyte) osv.,<LogicalVolumeName>är namnet på den logiska volymen och<VolumeGroupName>är namnet på volymgruppen från föregående steg.Här är de förväntade resultaten.
Logical volume "FCIDataLV1" created.I följande exempel skapas en volym på 25 GB.
Kör
sudo lvsför att se den LVM som skapades.Formatera den logiska volymen med ett filsystem som stöds. För ext4 använder du följande exempel:
sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName><VolumeGroupName>är namnet på volymgruppen från föregående steg.<LogicalVolumeName>är namnet på den logiska volymen från föregående steg.Följ dessa steg för systemdatabaser eller något som lagras på standarddataplatsen. Annars går du vidare till Steg 13.
Kontrollera att SQL Server har stoppats på den server som du arbetar med.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverByt helt till superanvändare. Du får ingen bekräftelse om det lyckas.
sudo -iVäxla till användaren
mssql. Du får ingen bekräftelse om det lyckas.su mssqlSkapa en tillfällig katalog för att lagra SQL Server-data och loggfiler. Du får ingen bekräftelse om det lyckas.
mkdir <TempDir><TempDir>är namnet på mappen. I följande exempel skapas en mapp med namnet /var/opt/mssql/TempDir.mkdir /var/opt/mssql/TempDirKopiera SQL Server-data och loggfiler till den tillfälliga katalogen. Du får ingen bekräftelse om det lyckas.
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. Du får ingen bekräftelse om det lyckas.
rm - f /var/opt/mssql/data/*Kontrollera att filerna har tagits bort. Följande bild visar ett exempel på hela sekvensen från c till h.
ls /var/opt/mssql/dataSkriv
exitför att växla tillbaka tillrootanvändaren.Montera den logiska iSCSI-volymen i datamappen för SQL Server. Du får ingen bekräftelse om det lyckas.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data<VolumeGroupName>är namnet på volymgruppen och<LogicalVolumeName>är namnet på den logiska volym som skapades. Följande exempelsyntax matchar volymgruppen och den logiska volymen från föregående kommando.mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/dataÄndra monteringens ägare till
mssql. Du får ingen bekräftelse om det lyckas.chown mssql /var/opt/mssql/dataÄndra ägarskapet för gruppen för monteringen till
mssql. Du får ingen bekräftelse om det lyckas.chgrp mssql /var/opt/mssql/dataVäxla till användaren
mssql. Du får ingen bekräftelse om det lyckas.su mssqlKopiera filerna från den tillfälliga katalogen
/var/opt/mssql/data. Du får ingen bekräftelse om det lyckas.cp /var/opt/mssql/TempDir/* /var/opt/mssql/dataKontrollera att filerna finns där.
ls /var/opt/mssql/dataAnge
exitför att inte varamssql.Ange
exitför att inte vararoot.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-serverStoppa SQL Server och kontrollera att den har stängts av.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
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 14.
Byt till superanvändare. Du får ingen bekräftelse om det lyckas.
sudo -iSkapa en mapp som ska användas av SQL Server.
mkdir <FolderName><FolderName>är namnet på mappen. Den fullständiga sökvägen till mappen måste anges om den inte är på rätt plats. I följande exempel skapas en mapp med namnet /var/opt/mssql/userdata.mkdir /var/opt/mssql/userdataMontera den logiska iSCSI-volymen i mappen som skapades i föregående steg. Du får ingen bekräftelse om det lyckas.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>är namnet på volymgruppen,<LogicalVolumeName>är namnet på den logiska volym som skapades och<FolderName>är namnet på mappen. Exempelsyntax visas här.mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdataÄndra ägarskapet för mappen som skapats till
mssql. Du får ingen bekräftelse om det lyckas.chown mssql <FolderName><FolderName>är namnet på mappen som skapades. Ett exempel visas här.chown mssql /var/opt/mssql/userdataÄndra gruppen för mappen som skapats till
mssql. Du får ingen bekräftelse om det lyckas.chown mssql <FolderName><FolderName>är namnet på mappen som skapades. Ett exempel visas här.chown mssql /var/opt/mssql/userdataSkriv
exitför att inte längre vara superanvändare.Om du vill testa skapar du en databas i den mappen. Följande skript skapar en databas, växlar kontext till den, verifierar att filerna finns på OS-nivå och tar sedan bort den tillfälliga platsen. Du kan använda SSMS eller sqlcmd för att köra det här skriptet.
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; GOKör följande kommando i gränssnittet för att se de nya databasfilerna.
sudo ls /var/opt/mssal/userdataHär är de förväntade resultaten.
lost+found TestDB_Data.mdf TestDB_Log.ldfTa bort databasen för att rensa.
DROP DATABASE TestDB; GOsudo ls /var/opt/mssal/userdataHär är de förväntade resultaten.
lost+foundAvmontera delningen
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>är namnet på volymgruppen,<LogicalVolumeName>är namnet på den logiska volym som skapades och<FolderName>är namnet på mappen. Exempelsyntax visas här.sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Konfigurera servern så att endast Pacemaker kan aktivera volymgruppen.
sudo lvmconf --enable-halvm --services -startstopservicesGenerera en lista över volymgrupperna på servern. Allt som anges som inte är iSCSI-disken används av systemet, till exempel för OS-disken.
sudo vgsÄndra aktiveringskonfigurationsavsnittet i filen /etc/lvm/lvm.conf. Konfigurera följande rad:
volume_list = [ <ListOfVGsNotUsedByPacemaker> ]<ListOfVGsNotUsedByPacemaker>är listan över volymgrupper från utdata från steg 20 som inte används av FCI. Placera var och en inom citattecken och avgränsa med ett kommatecken. Ett exempel visas här.När Linux startar monteras filsystemet. För att säkerställa att endast Pacemaker kan montera iSCSI-disken återskapar du rotfilsystemsbilden.
Kör följande kommando, vilket kan ta en stund att slutföra. Du får inget meddelande tillbaka om det lyckas.
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)Starta om servern.
På en annan server som kommer att delta i FCI utför du steg 1–6. Detta visar iSCSI-målet för SQL Server.
Generera en lista över volymgrupperna på servern. Den bör visa den volymgrupp som skapades tidigare.
sudo vgsStarta SQL Server och kontrollera att den kan startas på den här servern.
sudo systemctl start mssql-server sudo systemctl status mssql-serverStoppa SQL Server och kontrollera att den har stängts av.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverUpprepa steg 1–6 på andra servrar som kommer att delta i FCI:n.
Nu är du redo att konfigurera FCI.