Failoverclusterexemplaren configureren - NFS - SQL Server in Linux
van toepassing op:SQL Server- - Linux
In dit artikel wordt uitgelegd hoe u NFS-opslag configureert voor een failoverclusterexemplaar (FCI) in Linux.
NFS, of netwerkbestandssysteem, is een veelgebruikte methode voor het delen van schijven in de Linux-wereld, maar niet voor Windows. Net als bij iSCSI kan NFS worden geconfigureerd op een server of een soort apparaat of opslageenheid zolang deze voldoet aan de opslagvereisten voor SQL Server.
Belangrijke informatie over de NFS-server
De bron die als host fungeert voor NFS (een Linux-server of iets anders) moet versie 4.2 of hoger gebruiken/compatibel zijn. Eerdere versies werken niet met SQL Server in Linux.
Wanneer u de mappen configureert die moeten worden gedeeld op de NFS-server, moet u ervoor zorgen dat deze de volgende algemene richtlijnen volgen:
-
rw
om ervoor te zorgen dat de map kan worden gelezen en ernaar geschreven kan worden -
sync
om gegarandeerde schrijfbewerkingen naar de map te garanderen - Gebruik
no_root_squash
niet als optie; het wordt beschouwd als een beveiligingsrisico - Zorg ervoor dat de map volledige rechten (
777
) toegewezen heeft.
Zorg dat uw beveiligingsstandaarden voor toegang worden afgedwongen. Zorg er bij het configureren van de map voor dat alleen de servers die deelnemen aan de FCI de NFS-map moeten zien. In het volgende voorbeeld wordt een gewijzigde /etc/exports
op een NFS-oplossing op basis van Linux weergegeven, waarbij de map is beperkt tot FCIN1
en 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)
Aanwijzingen
Kies een van de servers die deelnemen aan de FCI-configuratie. Het maakt niet uit welke.
Controleer of de server de koppeling(en) op de NFS-server kan zien.
sudo showmount -e <IPAddressOfNFSServer>
-
<IPAddressOfNFSServer>
is het IP-adres van de NFS-server die u gaat gebruiken.
-
Volg deze stappen voor systeemdatabases of alles wat is opgeslagen op de standaardgegevenslocatie. Als dat niet het geval is, ga naar stap 4.
Zorg ervoor dat SQL Server is gestopt op de server waaraan u werkt.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Schakel volledig over naar de superuser.
sudo -i
Schakel over naar de
mssql
gebruiker.su mssql
Maak een tijdelijke map om de SQL Server-gegevens en logboekbestanden op te slaan.
mkdir <TempDir>
-
<TempDir>
is de naam van de map. In het volgende voorbeeld wordt een map met de naam/var/opt/mssql/tmp
gemaakt.
mkdir /var/opt/mssql/tmp
-
Kopieer de SQL Server-gegevens en logboekbestanden naar de tijdelijke map.
cp /var/opt/mssql/data/* <TempDir>
-
<TempDir>
is de naam van de map uit de vorige stap.
-
Controleer of de bestanden zich in de map bevinden.
ls TempDir
-
<TempDir>
is de naam van de map uit de vorige stap.
-
Verwijder de bestanden uit de bestaande SQL Server-gegevensmap.
rm - f /var/opt/mssql/data/*
Controleer of de bestanden zijn verwijderd.
ls /var/opt/mssql/data
Typ exit om terug te schakelen naar de hoofdgebruiker.
Koppel de NFS-share in de SQL Server-gegevensmap.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
-
<IPAddressOfNFSServer>
is het IP-adres van de NFS-server die u gaat gebruiken -
<FolderOnNFSServer>
is de naam van de NFS-share. De volgende voorbeeldsyntaxis komt overeen met de NFS-gegevens uit stap 2.
mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
-
Controleer of de koppeling is geslaagd door de koppelopdracht zonder opties uit te voeren.
mount
Dit is de verwachte uitvoer.
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)
Schakel over naar de
mssql
gebruiker.su mssql
Kopieer de bestanden uit de tijdelijke map /var/opt/mssql/data.
cp /var/opt/mssql/tmp/* /var/opt/mssqldata
Controleer of de bestanden er zijn.
ls /var/opt/mssql/data
Voer
exit
in om niet te wordenmssql
.Voer
exit
in om geen rootgebruiker te zijn.Start SQL Server. Als alles correct is gekopieerd en de beveiliging correct is toegepast, moet SQL Server worden weergegeven als gestart.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Maak een database om te testen of de beveiliging juist is ingesteld. In het volgende voorbeeld ziet u dat deze wordt uitgevoerd via Transact-SQL; dit kan worden gedaan via SSMS.
Stop SQL Server en controleer of deze is afgesloten.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Indien u geen andere NFS-koppelingen maakt, ontkoppelt u het gedeelde bestand. Als dat het geval is, niet ontkoppelen.
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
-
<IPAddressOfNFSServer>
is het IP-adres van de NFS-server die u gaat gebruiken -
<FolderOnNFSServer>
is de naam van de NFS-share -
<FolderMountedIn>
is de map die in de vorige stap is gemaakt.
-
Volg deze stappen voor andere zaken dan systeemdatabases, zoals gebruikersdatabases of back-ups. Als u alleen de standaardlocatie gebruikt, gaat u verder met stap 5.
Schakel over naar de superuser.
sudo -i
Maak een map die wordt gebruikt door SQL Server.
mkdir <FolderName>
-
<FolderName>
is de naam van de map. Het volledige pad van de map moet worden opgegeven als dit niet op de juiste locatie staat.
In het volgende voorbeeld wordt een map met de naam
/var/opt/mssql/userdata
gemaakt.mkdir /var/opt/mssql/userdata
-
Koppel de NFS-share in de map die in de vorige stap is gemaakt.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
-
<IPAddressOfNFSServer>
is het IP-adres van de NFS-server die u gaat gebruiken -
<FolderOnNFSServer>
is de naam van de NFS-share -
<FolderToMountIn>
is de map die in de vorige stap is gemaakt.
In het volgende voorbeeld wordt de NFS-share gekoppeld.
mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
-
Controleer of de koppeling is geslaagd door het mount-commando zonder opties uit te voeren.
Typ 'exit' om niet langer superuser te zijn.
Als u wilt testen, maakt u een database in die map. In het volgende voorbeeld wordt sqlcmd gebruikt om een database te maken, naar een andere context te schakelen, te controleren of de bestanden op besturingssysteemniveau bestaan en vervolgens de tijdelijke locatie te verwijderen. U kunt SSMS gebruiken.
De gedeelde schijf ontkoppelen
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
-
<IPAddressOfNFSServer>
is het IP-adres van de NFS-server die u gaat gebruiken -
<FolderOnNFSServer>
is de naam van de NFS-share -
<FolderMountedIn>
is de map die in de vorige stap is gemaakt.
-
Herhaal de stappen op de andere knooppunten.
Verwante inhoud
- Failoverclusterexemplaren configureren - RHEL- (SQL Server on Linux)