Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server — Linux
W tym artykule wyjaśniono, jak skonfigurować magazyn NFS dla wystąpienia klastra trybu failover (FCI) w systemie Linux.
System plików NFS lub system plików sieciowych to powszechna metoda udostępniania dysków w świecie systemu Linux, ale nie systemu Windows. Podobnie jak w przypadku iSCSI, system plików NFS można skonfigurować na serwerze lub w jakimś urządzeniu lub jednostce magazynu, o ile spełnia wymagania dotyczące magazynu dla programu SQL Server.
Ważne informacje o serwerze NFS
Źródłowy system plików NFS (serwer z systemem Linux lub coś innego) musi być używany/zgodny z wersją 4.2 lub nowszą. Wcześniejsze wersje nie działają z programem SQL Server w systemie Linux.
Podczas konfigurowania folderów, które mają być udostępniane na serwerze NFS, upewnij się, że są one zgodne z następującymi ogólnymi opcjami:
-
rw
, aby upewnić się, że folder można odczytywać i zapisywać -
sync
, aby zapewnić gwarantowane zapisy w folderze - Nie używaj
no_root_squash
jako opcji; jest uważany za zagrożenie bezpieczeństwa - Upewnij się, że na folderze zastosowano pełne prawa (
777
)
Zadbać o to, aby standardy zabezpieczeń były egzekwowane przy uzyskiwaniu dostępu. Podczas konfigurowania folderu upewnij się, że tylko serwery uczestniczące w klastrze trybu failover powinny widzieć folder NFS. W poniższym przykładzie pokazano zmodyfikowany /etc/exports
w rozwiązaniu NFS opartym na systemie Linux, w którym folder jest ograniczony do FCIN1
i 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)
Instrukcje
Wybierz jeden z serwerów, który weźmie udział w konfiguracji FCI. Nie ma znaczenia, który z nich.
Sprawdź, czy serwer może zobaczyć instalację na serwerze NFS.
sudo showmount -e <IPAddressOfNFSServer>
-
<IPAddressOfNFSServer>
to adres IP serwera NFS, którego będziesz używać.
-
W przypadku systemowych baz danych lub dowolnych elementów przechowywanych w domyślnej lokalizacji danych wykonaj następujące kroki. W przeciwnym razie przejdź do kroku 4.
Upewnij się, że program SQL Server został zatrzymany na serwerze, nad którym pracujesz.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Przełącz się w pełni, aby być superużytkownikiem.
sudo -i
Przełącz się na użytkownika
mssql
.su mssql
Utwórz katalog tymczasowy do przechowywania danych i plików dziennika programu SQL Server.
mkdir <TempDir>
-
<TempDir>
jest nazwą folderu. Poniższy przykład tworzy folder o nazwie/var/opt/mssql/tmp
.
mkdir /var/opt/mssql/tmp
-
Skopiuj dane i pliki dziennika programu SQL Server do katalogu tymczasowego.
cp /var/opt/mssql/data/* <TempDir>
-
<TempDir>
to nazwa folderu z poprzedniego kroku.
-
Sprawdź, czy pliki znajdują się w katalogu.
ls TempDir
-
<TempDir>
to nazwa folderu z poprzedniego kroku.
-
Usuń pliki z istniejącego katalogu danych programu SQL Server.
rm - f /var/opt/mssql/data/*
Sprawdź, czy pliki zostały usunięte.
ls /var/opt/mssql/data
Wpisz exit ,aby przełączyć się z powrotem do użytkownika głównego.
Zamontuj udział NFS w folderze danych programu SQL Server.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
-
<IPAddressOfNFSServer>
to adres IP serwera NFS, którego będziesz używać -
<FolderOnNFSServer>
jest nazwą udziału NFS. Poniższa przykładowa składnia odpowiada informacjom systemu plików NFS z kroku 2.
mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
-
Sprawdź, czy montowanie zakończyło się pomyślnie, wydając polecenie mount bez przełączników.
mount
Oto oczekiwane dane wyjściowe.
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)
Przejdź do użytkownika
mssql
.su mssql
Skopiuj pliki z katalogu tymczasowego /var/opt/mssql/data.
cp /var/opt/mssql/tmp/* /var/opt/mssqldata
Sprawdź, czy znajdują się tam pliki.
ls /var/opt/mssql/data
Wprowadź
exit
, aby nie byćmssql
.Wprowadź
exit
, aby nie być użytkownikiem root.Uruchom program SQL Server. Jeśli wszystko zostało skopiowane poprawnie, a zabezpieczenia zostały zastosowane poprawnie, program SQL Server powinien być wyświetlany jako uruchomiony.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Utwórz bazę danych, aby przetestować, czy zabezpieczenia są prawidłowo skonfigurowane. W poniższym przykładzie pokazano, że odbywa się to za pośrednictwem języka Transact-SQL; można to zrobić za pośrednictwem programu SSMS.
Zatrzymaj program SQL Server i sprawdź, czy został zamknięty.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Jeśli nie tworzysz żadnych innych instalacji systemu plików NFS, odinstaluj udział. Jeśli tak jest, nie odinstaluj.
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
-
<IPAddressOfNFSServer>
to adres IP serwera NFS, którego będziesz używać -
<FolderOnNFSServer>
jest nazwą udziału NFS -
<FolderMountedIn>
jest folderem utworzonym w poprzednim kroku.
-
W przypadku innych elementów niż systemowe bazy danych, takie jak bazy danych użytkowników lub kopie zapasowe, wykonaj następujące kroki. Jeśli używasz tylko lokalizacji domyślnej, przejdź do kroku 5.
Przełącz się na superużytkownika.
sudo -i
Utwórz folder, który będzie używany przez program SQL Server.
mkdir <FolderName>
-
<FolderName>
jest nazwą folderu. Pełna ścieżka folderu musi być określona, jeśli nie znajduje się w odpowiedniej lokalizacji.
Poniższy przykład tworzy folder o nazwie
/var/opt/mssql/userdata
.mkdir /var/opt/mssql/userdata
-
Zainstaluj udział NFS w folderze utworzonym w poprzednim kroku.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
-
<IPAddressOfNFSServer>
to adres IP serwera NFS, którego będziesz używać -
<FolderOnNFSServer>
jest nazwą udziału NFS -
<FolderToMountIn>
jest folderem utworzonym w poprzednim kroku.
Poniższy przykład montuje udział NFS.
mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
-
Sprawdź, czy montowanie zakończyło się pomyślnie, wydając polecenie mount bez użycia przełączników.
Wpisz exit, aby nie być już superużytkownikiem.
Aby przetestować, utwórz bazę danych w tym folderze. W poniższym przykładzie użyto narzędzia sqlcmd do utworzenia bazy danych, przełączenia kontekstu do niej, sprawdzenia, czy pliki istnieją na poziomie systemu operacyjnego, a następnie usuwa lokalizację tymczasową. Możesz użyć programu SSMS.
Odmontuj udział
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
-
<IPAddressOfNFSServer>
to adres IP serwera NFS, którego będziesz używać -
<FolderOnNFSServer>
jest nazwą udziału NFS -
<FolderMountedIn>
jest folderem utworzonym w poprzednim kroku.
-
Powtórz kroki w innych węzłach.