Konfiguruj instancję klastra awaryjnego na Linuksie (SMB)

Dotyczy:Program SQL Server w systemie Linux

W tym artykule wyjaśniono, jak skonfigurować magazyn SMB dla wystąpienia klastra przełączania awaryjnego (FCI) w systemie Linux.

Poza systemem Windows SMB jest również nazywany udziałem CIFS (Common Internet File System), który implementuje Samba. W systemie Windows uzyskujesz dostęp do udziału SMB w formacie \\SERVERNAME\SHARENAME. W przypadku instalacji SQL Server opartych na Linuksie należy zamontować udostępnione SMB jako folder.

Ważne informacje o źródle i serwerze

Stosuj się do tych wskazówek, aby skutecznie korzystać z SMB:

  • Zasób SMB może znajdować się w systemie Windows, Linux lub na urządzeniu sieciowym, pod warunkiem że korzysta z SMB 3.0 lub nowszego. Aby uzyskać więcej informacji o Sambie i SMB 3.0, zobacz SMB 3.0 , aby sprawdzić, czy implementacja Samby jest zgodna z SMB 3.0.
  • Udział SMB powinien być wysoce dostępny.
  • Prawidłowo skonfiguruj zabezpieczenia dla udziału SMB. Poniższy przykład pochodzi z /etc/samba/smb.conf, gdzie SQLData to nazwa udziału.
[SQLData]
path=/var/smb/SQLData
read only = no
browseable = yes
guest ok = no
writeable = yes
valid users = SQLSambaUser

Instrukcje

  1. Wybierz jeden z serwerów, aby uczestniczyć w konfiguracji FCI. Nie ma znaczenia, który z nich.

  2. Uzyskaj informacje o użytkowniku mssql.

     sudo id mssql
    

    Zwróć uwagę na uid, gidoraz grupy.

  3. Wykonaj sudo smbclient -L //NameOrIP/ShareName -U User.

    • <NameOrIP> to nazwa DNS lub adres IP serwera, który hostuje udział SMB.
    • <ShareName> jest nazwą udziału SMB.
  4. 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 5.

    1. Upewnij się, że SQL Server jest zatrzymany na serwerze, na którym pracujesz.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Przełącz się całkowicie na superużytkownika.

      sudo -i
      
    3. Przejdź do użytkownika mssql.

      su mssql
      
    4. 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
      
    5. Skopiuj dane i pliki dziennika programu SQL Server do katalogu tymczasowego.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir> to nazwa folderu z poprzedniego kroku.
    6. Sprawdź, czy pliki znajdują się w katalogu.

      ls <TempDir>
      

      < > TempDir to nazwa folderu z kroku d.

    7. Usuń pliki z istniejącego katalogu danych SQL Server.

      rm -f /var/opt/mssql/data/*
      
    8. Sprawdź, czy pliki już nie istnieją.

      ls /var/opt/mssql/data
      
    9. Naciśnij klawisz Enter exit, aby przełączyć z powrotem na użytkownika root.

    10. Zamontuj udział SMB w folderze danych programu SQL Server. W tym przykładzie przedstawiono składnię nawiązywania połączenia z udziałem SMB 3.0 opartym na systemie Windows Server.

      mount -t cifs //<ServerName>/<ShareName> /var/opt/mssql/data -o vers=3.0,username=<UserName>,password=<Password>,domain=<domain>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName> jest nazwą serwera z udziałem SMB
      • <ShareName> jest nazwą udostępnienia
      • <UserName> jest nazwą użytkownika, który ma uzyskać dostęp do udziału
      • <Password> to hasło użytkownika
      • <domain> jest nazwą usługi Active Directory
      • <mssqlUID> jest identyfikatorem UID użytkownika mssql
      • <mssqlGID> jest giD użytkownika mssql
    11. Sprawdź montaż, uruchamiając mount bez przełączników.

      mount
      
    12. Przejdź do użytkownika mssql.

      su mssql
      
    13. Skopiuj pliki z katalogu tymczasowego /var/opt/mssql/data.

      cp /var/opt/mssql/tmp/* /var/opt/mssql/data
      
    14. Sprawdź, czy znajdują się tam pliki.

      ls /var/opt/mssql/data
      
    15. Naciśnij Enter exit, aby opuścić konto użytkownika mssql.

    16. Naciśnij klawisz Enter, aby opuścić użytkownika root.

    17. Uruchom program SQL Server. Jeśli wszystko skopiowałeś i poprawnie zastosowałeś zabezpieczenia, uruchamia się SQL Server.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    18. Aby przeprowadzić dalsze testowanie, utwórz bazę danych, aby upewnić się, że uprawnienia są poprawne. Poniższy przykład wykorzystuje Transact-SQL; możesz użyć SQL Server Management Studio (SSMS).

      Zrzut ekranu przedstawiający tworzenie testowej bazy danych.

    19. Zatrzymaj program SQL Server i sprawdź, czy został zamknięty. Jeśli planujesz dodawać lub testować inne dyski, nie wyłączaj SQL Server, dopóki ich nie dodasz i nie przetestujesz.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    20. Jeśli skończysz, odmontuj udział. W przeciwnym razie odmontuj po zakończeniu testów lub dodawania dysków.

      sudo umount //<IPAddressorServerName>/<ShareName>/<FolderMountedIn>
      
      • <IPAddressOrServerName> to adres IP lub nazwa hosta SMB
      • <ShareName> jest nazwą udostępnienia
      • <FolderMountedIn> to nazwa folderu, w którym jest instalowany protokół SMB
  5. 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 domyślnej lokalizacji, przejdź do kroku 14.

    1. Przełącz się na superużytkownika.

      sudo -i
      
    2. Stwórz folder, z którego korzysta SQL Server.

      mkdir <FolderName>
      

      <FolderName> jest nazwą folderu. Określ pełną ścieżkę folderu, jeśli nie znajduje się on we właściwej lokalizacji. Poniższy przykład tworzy folder o nazwie /var/opt/mssql/userdata.

      mkdir /var/opt/mssql/userdata
      
    3. Zamontuj udział SMB w folderze danych programu SQL Server. W tym przykładzie pokazano składnię połączenia z udziałem sieciowym SMB 3.0 opartym na protokole Samba.

      mount -t cifs //<ServerName>/<ShareName> <FolderName> -o vers=3.0,username=<UserName>,password=<Password>,uid=<mssqlUID>,gid=<mssqlGID>,file_mode=0777,dir_mode=0777
      
      • <ServerName> jest nazwą serwera z udziałem SMB
      • <ShareName> jest nazwą udostępnienia
      • <FolderName> to nazwa folderu utworzonego w ostatnim kroku
      • <UserName> jest nazwą użytkownika, który ma uzyskać dostęp do udziału
      • <Password> to hasło użytkownika
      • <mssqlUID> jest identyfikatorem UID użytkownika mssql
      • <mssqlGID> jest GID-em użytkownika mssql.
    4. Sprawdź montaż, uruchamiając mount bez przełączników.

    5. Naciśnij exit, aby wyjść z trybu superużytkownika.

    6. Aby przetestować, utwórz bazę danych w tym folderze. Poniższy przykład używa sqlcmd, aby utworzyć bazę danych, przełączyć kontekst na tę bazę, sprawdzić, czy pliki istnieją na poziomie systemu operacyjnego, a następnie usunąć tymczasową lokalizację. Możesz użyć programu SSMS.

    7. Odmontuj udział.

      sudo umount //<IPAddressorServerName>/<ShareName> /<FolderMountedIn>
      
      • <IPAddressOrServerName> to adres IP lub nazwa hosta SMB
      • <ShareName> jest nazwą udostępnienia
      • <FolderMountedIn> to nazwa folderu, w którym jest instalowany protokół SMB.
  6. Powtórz kroki w innych węzłach.

Teraz możesz przystąpić do skonfigurowania FCI.