Настройка экземпляра отказоустойчивого кластера (iSCSI) — SQL Server на Linux
Применимо к:SQL Server — Linux
В этой статье описывается, как настроить хранилище iSCSI для экземпляра отказоустойчивого кластера в Linux.
Настройка iSCSI
iSCSI использует сетевые подключения для представления дисков с сервера, который является целью для серверов. Для серверов, подключающихся к цели iSCSI, требуется настроить инициатор iSCSI. Дискам на цели присваиваются явные разрешения, чтобы обратиться к ним могли только инициаторы, обладающие соответствующими правами. Цель должна обладать высокой доступностью и надежностью.
Важные сведения о цели iSCSI
Хотя в этом разделе не рассматривается настройка цели iSCSI, так как она зависит от типа используемого источника, убедитесь, что настроены параметры безопасности для дисков, которые будут использоваться узлами кластера.
Цель никогда не следует настраивать на любом из узлов экземпляра отказоустойчивого кластера, если используется цель iSCSI на базе Linux. Для повышения производительности и доступности сети iSCSI должны быть отделены от тех, по которым передается обычный сетевой трафик, как на исходном, так и на клиентском сервере. Сети, используемые для iSCSI, должны быть быстрыми. Помните, что сеть потребляет некоторую пропускную способность процессора, поэтому при использовании обычного сервера следует проводить соответствующее планирование. Важнее всего убедиться в том, что созданным дискам назначены соответствующие разрешения, чтобы к ним могли обратиться только серверы, участвующие в экземпляре отказоустойчивого кластера. Ниже показан пример из цели iSCSI, где linuxnodes1 — это созданное имя, а IP-адреса узлов назначены, чтобы NewFCIDisk1.vhdx был им виден.
Instructions
В этом разделе рассматривается настройка инициатора iSCSI на серверах, которые будут служить узлами для экземпляра отказоустойчивого кластера. Эти инструкции должны работать и в RHEL и Ubuntu.
Дополнительные сведения об инициаторе iSCSI для поддерживаемых дистрибутивов см. по следующим ссылкам.
Выберите один из серверов, которые будут включены в конфигурацию экземпляра отказоустойчивого кластера. Какой именно — не имеет значения. iSCSI должен находиться в выделенной сети, поэтому настройте iSCSI для распознавания и использования этой сети. Запустите
sudo iscsiadm -m iface -I <iSCSIIfaceName> -o new
, где<iSCSIIfaceName>
— это уникальное или понятное имя для сети. В следующем примере используетсяiSCSINIC
.sudo iscsiadm -m iface -I iSCSINIC -o new
Измените
/var/lib/iscsi/ifaces/iSCSIIfaceName
. Убедитесь, что в нем полностью заполнены следующие значения.- iface.net_ifacename — это имя сетевой карты, отображаемое в операционной системе.
- iface.hwaddress — это MAC-адрес уникального имени, которое будет создано для этого интерфейса ниже.
- iface.ipaddress
- iface.subnet_Mask
См. следующий пример.
Найдите цель iSCSI.
sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort>
<iSCSINetName> — это уникальное/понятное имя для сети, <TargetIPAddress> — это IP-адрес цели iSCSI, а <TargetPort> — это порт цели iSCSI.
Войдите на цель.
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l
<iSCSIIfaceName> — это уникальное/понятное имя для сети, а <TargetIPAddress> — это IP-адрес цели iSCSI.
Проверьте наличие подключения к цели iSCSI.
sudo iscsiadm -m session
Проверьте подключенные к iSCSI диски.
sudo grep "Attached SCSI" /var/log/messages
Создайте физический том на диске iSCSI.
sudo pvcreate /dev/<devicename>
<devicename> — это имя устройства из предыдущего шага.
Создайте группу томов на диске iSCSI. Диски, назначенные одной группе томов, отображаются в виде пула или коллекции.
sudo vgcreate <VolumeGroupName> /dev/devicename
<VolumeGroupName> — это имя группы томов, а <devicename> — это имя устройства из шага 6.
Создайте и проверьте логический том для диска.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName>
<size> — это размер создаваемого тома, для которого можно указать G (гигабайты), T (терабайты) и т. п., <LogicalVolumeName> — это имя логического тома, а <VolumeGroupName> — это имя группы томов из предыдущего шага.
В приведенном ниже примере создается том размером 25 ГБ.
Выполните
sudo lvs
, чтобы просмотреть созданный LVM.Отформатируйте логический том с использованием поддерживаемой файловой системы. Для EXT4 используйте следующий пример.
sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName>
<VolumeGroupName> — это имя группы томов из предыдущего шага. <LogicalVolumeName> — это имя логического тома из предыдущего шага.
Для системных баз данных или других объектов, хранящихся в расположении данных по умолчанию, выполните указанные ниже действия. В противном случае перейдите к шагу 13.
Убедитесь в том, что 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/TempDir.
mkdir /var/opt/mssql/TempDir
Скопируйте данные и файлы журналов SQL Server во временный каталог. В случае успешного действия подтверждение не выводится.
cp /var/opt/mssql/data/* <TempDir>
<TempDir> — это имя папки из предыдущего шага.
Проверьте наличие файлов в папке.
ls \<TempDir>
<TempDir> — это имя папки из шага d.
Удалите файлы из существующего каталога данных SQL Server. В случае успешного действия подтверждение не выводится.
rm - f /var/opt/mssql/data/*
Проверьте, были ли файлы удалены. На рисунке ниже показан пример всей последовательности с c по h.
ls /var/opt/mssql/data
Введите
exit
, чтобы переключиться на привилегированного пользователя.Подключите логический том iSCSI в папке данных SQL Server. В случае успешного действия подтверждение не выводится.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data
<VolumeGroupName> — это имя группы томов, а <LogicalVolumeName> — это имя созданного логического тома. Приведенный ниже пример синтаксиса соответствует группе томов и логическому тому из предыдущей команды.
mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/data
Измените владельца подключения на mssql. В случае успешного действия подтверждение не выводится.
chown mssql /var/opt/mssql/data
Измените владельца группы подключения на mssql. В случае успешного действия подтверждение не выводится.
chgrp mssql /var/opt/mssql/data
Переключитесь на пользователя mssql. В случае успешного действия подтверждение не выводится.
su mssql
Скопируйте файлы из временного каталога /var/opt/mssql/data. В случае успешного действия подтверждение не выводится.
cp /var/opt/mssql/TempDir/* /var/opt/mssql/data
Проверьте наличие файлов.
ls /var/opt/mssql/data
Введите
exit
, чтобы выйти из учетной записи mssql.Введите
exit
, чтобы выйти из учетной записи привилегированного пользователя.Запустите SQL Server. Если все данные были скопированы и параметры безопасности применены правильно, сервер SQL Server должен отобразиться как запущенный.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Остановите сервер SQL Server и убедитесь в том, что его работа прекращена.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
- Для объектов, отличных от системных баз данных, например пользовательских баз данных или резервных копий, выполните указанные ниже действия. Если используется только расположение по умолчанию, перейдите к шагу 14.
Перейдите в режим суперпользователя. В случае успешного действия подтверждение не выводится.
sudo -i
Создайте папку, которая будет использоваться сервером SQL Server.
mkdir <FolderName>
<FolderName> — имя папки. Если папка находится в другом месте, необходимо указать полный путь к ней. В приведенном ниже примере создается папка /var/opt/mssql/userdata.
mkdir /var/opt/mssql/userdata
Подключите логический том iSCSI в папке, созданной в предыдущем шаге. В случае успешного действия подтверждение не выводится.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
<VolumeGroupName> — это имя группы томов, <LogicalVolumeName> — это имя созданного логического тома, а <FolderName> — это имя папки. Пример синтаксиса показан ниже.
mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Измените владельца созданной папки на mssql. В случае успешного действия подтверждение не выводится.
chown mssql <FolderName>
<FolderName> — это имя созданной папки. Ниже приведен соответствующий пример.
chown mssql /var/opt/mssql/userdata
Измените владельца группы папки на mssql. В случае успешного действия подтверждение не выводится.
chown mssql <FolderName>
<FolderName> — это имя созданной папки. Ниже приведен соответствующий пример.
chown mssql /var/opt/mssql/userdata
Введите
exit
, чтобы выйти из режима суперпользователя.Создайте в этой папке базу данных для тестирования. В примере ниже создается база данных с помощью sqlcmd, переключается контекст, проверяется наличие файлов на уровне ОС, а затем временная папка удаляется. Можно также использовать SSMS.
Отключение общей папки
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
<VolumeGroupName> — это имя группы томов, <LogicalVolumeName> — это имя созданного логического тома, а <FolderName> — это имя папки. Пример синтаксиса показан ниже.
sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Настройте сервер таким образом, чтобы группу томов мог активировать только Pacemaker.
sudo lvmconf --enable-halvm --services -startstopservices
Создайте список групп томов на сервере. Все указанное, не являющееся диском iSCSI, используется системой, например для диска ОС.
sudo vgs
Измените раздел конфигурации активации файла /etc/lvm/lvm.conf. Настройте следующую строку.
volume_list = [ <ListOfVGsNotUsedByPacemaker> ]
<ListOfVGsNotUsedByPacemaker> — это список групп томов из выходных данных шага 20, которые не будут использоваться экземпляром отказоустойчивого кластера. Заключите каждый из них в кавычки и разделите запятыми. Ниже приведен соответствующий пример.
При запуске Linux подключит файловую систему. Чтобы убедиться, что только Pacemaker может подключить диск iSCSI, перестройте корневой образ файловой системы.
Выполните следующую команду, которая может занять несколько минут. При успешном выполнении команда не возвращает никакие сообщение.
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
Перезапустите сервер.
На другом сервере, который будет участвовать в экземпляре отказоустойчивого кластера, выполните шаги 1–6. В результате цель iSCSI будет представлена для SQL Server.
Создайте список групп томов на сервере. В нем должна отображаться созданная ранее группа томов.
sudo vgs
Запустите SQL Server и убедитесь, что он может быть запущен на этом сервере.
sudo systemctl start mssql-server sudo systemctl status mssql-server
Остановите сервер SQL Server и убедитесь в том, что его работа прекращена.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
Повторите шаги 1–6 на всех других серверах, которые будут участвовать в экземпляре отказоустойчивого кластера.
Теперь вы готовы к настройке экземпляра отказоустойчивого кластера.
Распределение | Тема |
---|---|
Red Hat Enterprise Linux с надстройкой высокой доступности (HA) | Настройка Эксплуатация |
SUSE Linux Enterprise Server с надстройкой высокой доступности (HA) | Настройка |
Связанный контент
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по