Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: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>— это папка, созданная в предыдущем шаге.
-
Повторите шаги на других узлах.