Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:SQL Server in Linux
Questo articolo illustra come configurare la risorsa di archiviazione NFS per un'istanza di un cluster di failover su Linux.
Il file system di rete (NFS) è un metodo comune per condividere dischi in ambito Linux, ma non in Windows. Analogamente a iSCSI, è possibile configurare NFS in un server o in qualche appliance o unità di archiviazione, purché soddisfi i requisiti di archiviazione per SQL Server.
Informazioni importanti sul server NFS
L'origine che ospita NFS (un server Linux o altro) deve usare/essere conforme alla versione 4.2 o successiva. Le versioni precedenti non funzionano con SQL Server in Linux.
Quando si configurano le cartelle da condividere nel server NFS, assicurarsi di seguire queste linee guida generali:
-
rwper assicurarsi che sia possibile leggere e scrivere nella cartella -
syncper assicurare operazioni di scrittura garantite nella cartella - Non usare
no_root_squashcome opzione perché è considerata un rischio per la sicurezza - Verificare che la cartella disponga di diritti completi (
777)
Assicurarsi che vengano applicati gli standard di sicurezza per l'accesso. Quando si configura la cartella, verificare che solo i server che partecipano all'FCI possano visualizzare la cartella NFS. Nell'esempio seguente, viene visualizzata una /etc/exports modificata in una soluzione NFS basata su Linux, in cui la cartella è limitata a FCIN1 e 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)
Istruzioni
Scegliere uno dei server che parteciperanno alla configurazione dell'FCI (istanza del cluster di failover). Non è rilevante quale.
Verificare che il server possa visualizzare i montaggi nel server NFS.
sudo showmount -e <IPAddressOfNFSServer>-
<IPAddressOfNFSServer>è l'indirizzo IP del server NFS da usare.
-
Per i database di sistema o qualsiasi altro elemento archiviato nel percorso dati predefinito, seguire questa procedura. Altrimenti, passa al passaggio 4.
Assicurarsi che SQL Server sia arrestato sul server su cui si sta lavorando.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverPassa completamente all'utente root.
sudo -iCambia per diventare l'utente
mssql.su mssqlCreare una directory temporanea per archiviare i file di dati e di log di SQL Server.
mkdir <TempDir>-
<TempDir>è il nome della cartella. L'esempio seguente crea una cartella denominata/var/opt/mssql/tmp.
mkdir /var/opt/mssql/tmp-
Copiare i file di dati e di log di SQL Server nella directory temporanea.
cp /var/opt/mssql/data/* <TempDir>-
<TempDir>è il nome della cartella del passaggio precedente.
-
Verificare che i file si trovino nella directory.
ls TempDir-
<TempDir>è il nome della cartella del passaggio precedente.
-
Eliminare i file dalla directory di dati di SQL Server esistente.
rm - f /var/opt/mssql/data/*Verificare che i file siano stati eliminati.
ls /var/opt/mssql/dataDigitare exit per tornare all'utente ROOT.
Montare la condivisione NFS nella cartella di dati di SQL Server.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>è l'indirizzo IP del server NFS da usare. -
<FolderOnNFSServer>è il nome della condivisione NFS. La sintassi di esempio seguente corrisponde alle informazioni NFS del passaggio 2.
mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
Verificare che il montaggio abbia avuto esito positivo eseguendo il comando mount senza alcuna opzione.
mountEcco l'output previsto:
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)Passare all'utente
mssql:su mssqlCopiare i file dalla directory temporanea /var/opt/mssql/data.
cp /var/opt/mssql/tmp/* /var/opt/mssqldataVerificare che i file siano presenti.
ls /var/opt/mssql/dataImmettere
exitper non esseremssql.Immettere
exitper non operare come root.Avviare SQL Server. Se tutti gli elementi sono stati copiati correttamente e la sicurezza è applicata correttamente, SQL Server deve risultare avviato.
sudo systemctl start mssql-server sudo systemctl status mssql-serverCreare un database per verificare che la sicurezza sia configurata correttamente. L'esempio seguente mostra che l'operazione viene eseguita tramite Transact-SQL. Questa operazione può essere eseguita anche tramite SQL Server Management Studio (SSMS).
Arrestare SQL Server e verificare che l'operazione sia stata eseguita.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverSe non si ha intenzione di creare altri montaggi NFS, smontare la condivisione. Se si creano altri montaggi, non smontare.
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>è l'indirizzo IP del server NFS da usare. -
<FolderOnNFSServer>è il nome della condivisione NFS -
<FolderMountedIn>è la cartella creata nel passaggio precedente.
-
Per elementi diversi dai database di sistema, ad esempio i database utente o i backup, seguire questa procedura. Se si usa solo il percorso predefinito, andare al passaggio 5.
Eseguire il comando per operare come utente con privilegi avanzati.
sudo -iCreare una cartella che verrà usata da SQL Server.
mkdir <FolderName>-
<FolderName>è il nome della cartella. Se non si trova nella posizione corretta, è necessario specificare il percorso completo della cartella.
L'esempio seguente crea una cartella denominata
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdata-
Montare la condivisione NFS nella cartella creata nel passaggio precedente.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>è l'indirizzo IP del server NFS da usare. -
<FolderOnNFSServer>è il nome della condivisione NFS -
<FolderToMountIn>è la cartella creata nel passaggio precedente.
L'esempio seguente monta la condivisione NFS.
mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr-
Verificare che il montaggio abbia avuto esito positivo eseguendo il comando mount senza alcuna opzione.
Digitare exit per non operare più come utente con privilegi avanzati.
Per eseguire il test, creare un database in tale cartella. L'esempio seguente usa sqlcmd per creare un database, cambiare il contesto e verificare che i file esistano a livello di sistema operativo e quindi elimina il percorso temporaneo. È possibile usare SSMS.
Smontare la condivisione
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>è l'indirizzo IP del server NFS da usare. -
<FolderOnNFSServer>è il nome della condivisione NFS -
<FolderMountedIn>è la cartella creata nel passaggio precedente.
-
Ripetere i passaggi negli altri nodi.