Konfiguruj instancję awaryjnego klastra SMB storage dla SQL Server on Linux

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 Windows, SMB nazywany jest także udziałem Common Internet File System (CIFS), który Samba implementuje. Na Windows uzyskujesz dostęp do udziału SMB w tym składzie .\\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:

  • Udostępnianie SMB może być na Windows, Linuksie lub urządzeniu, o ile korzysta ono 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.
  • Ustaw bezpieczeństwo odpowiednio na udziale 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 superusera.

      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. Enter, exitroot aby wrócić do użytkownika.

    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. Enter, exit aby opuścić mssql użytkownika.

    16. Enter, exit aby opuścić root użytkownika.

    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. Wejdź, exit aby opuścić superużytkownika.

    6. Aby przetestować, utwórz bazę danych w tym folderze. Poniższy przykład służy sqlcmd do utworzenia bazy danych, zmiany kontekstu na nią, weryfikacji istnienia plików na poziomie systemu operacyjnego, a następnie usunięcia tymczasowej lokalizacji. 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.