Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server в Linux
В этой статье описывается, как настроить хранилище NFS для экземпляра отказоустойчивого кластера в Linux.
NFS (Network File System, сетевая файловая система) — это распространенный способ предоставления общего доступа к дискам в Linux, но не в Windows. Так же как и iSCSI, NFS можно настроить на сервере, устройстве или в единице хранения, если они отвечают требованиям к хранилищу для SQL Server.
Важные сведения о сервере NFS
Источник размещения NFS (сервер Linux или другое устройство) должен использовать версию 4.2 или более позднюю либо быть совместимым с ней. Более ранние версии не работают с SQL Server на Linux.
При настройке общих папок на сервере NFS убедитесь, что они соответствуют этим общим параметрам:
-
rwдля обеспечения возможности считывания из папки и записи в нее; -
syncдля обеспечения гарантированной записи в папку; - Не используйте
no_root_squashв качестве опции; это считается риском безопасности. - Убедитесь, что к папке применены полные права (
777)
Убедитесь, что ваши стандарты безопасности соблюдаются при доступе. При настройке папки убедитесь, что только серверы, участвующие в отказоустойчивом кластерном экземпляре (FCI), имеют доступ к папке NFS. В следующем примере показано измененное /etc/exports решение NFS под управлением Linux, в котором папка ограничена FCIN1 и 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)
Инструкции
Выберите один из серверов, которые будут включены в конфигурацию отказоустойчивого кластера (FCI). Это не имеет значения, какой из них.
Убедитесь, что сервер может видеть подключения на сервере NFS.
sudo showmount -e <IPAddressOfNFSServer>-
<IPAddressOfNFSServer>— это IP-адрес сервера NFS, который вы собираетесь использовать.
-
Для системных баз данных или других объектов, хранящихся в расположении данных по умолчанию, выполните указанные ниже действия. В противном случае перейдите к шагу 4.
Убедитесь, что SQL Server остановлен на сервере, на который вы работаете.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverПолностью перейдите в режим суперпользователя.
sudo -iПереключитесь на
mssqlпользователя.su mssqlСоздайте временный каталог для хранения данных и файлов журналов SQL Server.
mkdir <TempDir>-
<TempDir>— это имя папки. В следующем примере создается папка с именем/var/opt/mssql/tmp.
mkdir /var/opt/mssql/tmp-
Скопируйте данные и файлы журналов SQL Server во временный каталог.
cp /var/opt/mssql/data/* <TempDir>-
<TempDir>— это имя папки из предыдущего шага.
-
Проверьте наличие файлов в папке.
ls TempDir-
<TempDir>— это имя папки из предыдущего шага.
-
Удалите файлы из существующего каталога данных SQL Server.
rm - f /var/opt/mssql/data/*Проверьте, были ли файлы удалены.
ls /var/opt/mssql/dataВведите exit, чтобы переключиться на пользователя root.
Подключите общую папку NFS в папку данных SQL Server.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>— ЭТО IP-адрес сервера NFS, который вы собираетесь использовать. -
<FolderOnNFSServer>— это имя общей папки NFS. Приведенный ниже пример синтаксиса соответствует сведениям об NFS из шага 2.
mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr-
Проверьте, было ли подключение выполнено успешно, с помощью команды mount без параметров.
mountНиже приведены ожидаемые выходные данные.
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)Переключитесь на
mssqlпользователя.su mssqlСкопируйте файлы из временного каталога /var/opt/mssql/data.
cp /var/opt/mssql/tmp/* /var/opt/mssqldataПроверьте наличие файлов.
ls /var/opt/mssql/dataВведите
exitчтобы не бытьmssql.Введите
exit, чтобы выйти из учетной записи привилегированного пользователя.Запустите SQL Server. Если все данные были скопированы и параметры безопасности применены правильно, сервер SQL Server должен отобразиться как запущенный.
sudo systemctl start mssql-server sudo systemctl status mssql-serverСоздайте базу данных, чтобы проверить правильность настройки безопасности. В следующем примере показано, что выполняется через Transact-SQL. Это также можно сделать с помощью SQL Server Management Studio (SSMS).
Остановите SQL Server и убедитесь, что она завершит работу.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverЕсли вы не создаете другие точки монтирования NFS, отмонтируйте раздел. Если вы создаете другие точки монтирования, не размонтируйте.
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>— ЭТО IP-адрес сервера NFS, который вы собираетесь использовать. -
<FolderOnNFSServer>— это имя общей папки NFS. -
<FolderMountedIn>— это папка, созданная в предыдущем шаге.
-
Для объектов, отличных от системных баз данных, например пользовательских баз данных или резервных копий, выполните указанные ниже действия. Если используется только расположение по умолчанию, перейдите к шагу 5.
Перейдите в режим суперпользователя.
sudo -iСоздайте папку, которая будет использоваться сервером SQL Server.
mkdir <FolderName>-
<FolderName>— это имя папки. Если папка находится в другом месте, необходимо указать полный путь к ней.
В следующем примере создается папка с именем
/var/opt/mssql/userdata.mkdir /var/opt/mssql/userdata-
Подключите NFS-ресурс в каталог, созданный на предыдущем шаге.
mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr-
<IPAddressOfNFSServer>— ЭТО IP-адрес сервера NFS, который вы собираетесь использовать. -
<FolderOnNFSServer>— это имя общей папки NFS. -
<FolderToMountIn>— это папка, созданная в предыдущем шаге.
В следующем примере подключается общая папка NFS.
mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr-
Проверьте, было ли подключение выполнено успешно, с помощью команды mount без параметров.
Введите exit, чтобы выйти из режима суперпользователя.
Создайте в этой папке базу данных для тестирования. В приведенном ниже примере создается база данных с помощью sqlcmd, переключается контекст, проверяется наличие файлов на уровне ОС, а затем временная папка удаляется. Можно также использовать SSMS.
Отключите общую папку
sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>-
<IPAddressOfNFSServer>— ЭТО IP-адрес сервера NFS, который вы собираетесь использовать. -
<FolderOnNFSServer>— это имя общей папки NFS. -
<FolderMountedIn>— это папка, созданная в предыдущем шаге.
-
Повторите шаги на других узлах.