Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ виртуальные машины Linux
В этой статье описаны распространенные сценарии, в которых служба STONITH Block Device (SBD) не запускается в кластере Red Hat Enterprise Server (RHEL) Pacemaker и предоставляет рекомендации по выявлению и устранению этой проблемы.
Как работает SBD
Для устройства SBD требуется по крайней мере одна дополнительная виртуальная машина, выступающая в роли сервера цели интерфейса малых вычислительных систем Интернета (iSCSI) и предоставляющая устройство SBD. Эти целевые серверы iSCSI также можно совместно использовать с другими кластерами Pacemaker. Преимуществом использования устройства SBD является то, что если вы уже используете устройства SBD в локальной среде, вам не понадобиться изменять способ эксплуатации кластера Pacemaker.
Чтобы настроить кластер Azure Pacemaker с помощью механизма ограждения SBD, используйте один из двух вариантов:
Симптомы
Устройство SBD недоступно на узлах кластера. В этом случае управляющая программа SBD не запускается и предотвращает запуск кластера Pacemaker.
Чтобы получить сведения о сервере SBD, используйте следующие методы на узлах кластера:
- Проверьте журналы в файле /var/log/messages .
- Проверьте выходные
iscsiadm discovery
данные команды. - Проверьте состояние службы iSCSI, указывающей IP-адреса сервера SBD.
Сценарий 1. Служба SBD не запускается из-за сбоев службы iSCSI
Службы iSCSI используют полное имя iSCSI (IQN) для обмена данными между инициатором и целевыми узлами. Если службы iSCSI завершаются ошибкой, диски SBD становятся недоступными, что приводит к сбою запуска службы SBD, и служба Pacemaker не выполняется на узлах кластера.
В следующих примерах показано, как диагностировать сбои служб SBD и Pacemaker:
Проверьте состояние кластера Pacemaker:
sudo pcs status
Если кластер Pacemaker не выполняется, вы увидите выходные данные команды, похожие на следующий текст:
Error: error running crm_mon, is pacemaker running? error: Could not connect to launcher: Connection refused crm_mon: Connection to cluster failed: Connection refused
Проверьте состояние службы Corosync:
sudo systemctl status corosync
Если служба Corosync запущена, вы увидите выходные данные команды, похожие на следующий текст:
● corosync.service - Corosync Cluster Engine Loaded: loaded (/usr/lib/systemd/system/corosync.service; enabled; preset: disabled) Active: active (running) since Thu 2024-08-01 11:22:28 UTC; 1min 22s ago Docs: man:corosync man:corosync.conf man:corosync_overview Main PID: 12793 (corosync) Tasks: 9 (limit: 48956) Memory: 113.9M CPU: 401ms CGroup: /system.slice/corosync.service └─12793 /usr/sbin/corosync -f Aug 01 11:22:43 node1 corosync[12793]: [KNET ] link: Resetting MTU for link 0 because host 2 joined Aug 01 11:22:43 node1 corosync[12793]: [KNET ] host: host: 2 (passive) best link: 0 (pri: 1) Aug 01 11:22:43 node1 corosync[12793]: [KNET ] pmtud: PMTUD link change for host: 2 link: 0 from 469 to 1397 Aug 01 11:22:43 node1 corosync[12793]: [KNET ] pmtud: Global data MTU changed to: 1397 Aug 01 11:22:45 node1 corosync[12793]: [QUORUM] Sync members[2]: 1 2 Aug 01 11:22:45 node1 corosync[12793]: [QUORUM] Sync joined[1]: 2 Aug 01 11:22:45 node1 corosync[12793]: [TOTEM ] A new membership (1.3e) was formed. Members joined: 2 Aug 01 11:22:45 node1 corosync[12793]: [QUORUM] This node is within the primary component and will provide service. Aug 01 11:22:45 node1 corosync[12793]: [QUORUM] Members[2]: 1 2 Aug 01 11:22:45 node1 corosync[12793]: [MAIN ] Completed service synchronization, ready to provide service.
Проверьте состояние службы Pacemaker:
sudo systemctl status pacemaker
Служба SBD необходима для запуска службы Pacemaker. Если служба Pacemaker не запускается из-за сбоев зависимостей, вы увидите выходные данные команды, похожие на следующий текст:
○ pacemaker.service - Pacemaker High Availability Cluster Manager Loaded: loaded (/usr/lib/systemd/system/pacemaker.service; enabled; preset: disabled) Active: inactive (dead) since Thu 2024-08-01 11:22:22 UTC; 2min 9s ago Docs: man:pacemakerd https://clusterlabs.org/pacemaker/doc/ Aug 01 11:24:28 node1 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager. Aug 01 11:24:28 node1 systemd[1]: pacemaker.service: Job pacemaker.service/start failed with result 'dependency'.
Перечислить дерево служб зависимостей службы Pacemaker:
sudo systemctl list-dependencies pacemaker
Если у службы Pacemaker нет службы SBD в качестве зависимости, вы увидите выходные данные команды, похожие на следующий текст:
pacemaker.service ● ├─corosync.service ● ├─dbus-broker.service × ├─sbd.service ● ├─system.slice ● ├─resource-agents-deps.target ● └─sysinit.target
Проверьте состояние службы SBD:
sudo systemctl status sbd
Если служба SBD не выполняется, вы увидите выходные данные команды, похожие на следующий текст:
× sbd.service - Shared-storage based fencing daemon Loaded: loaded (/usr/lib/systemd/system/sbd.service; enabled; preset: disabled) Drop-In: /etc/systemd/system/sbd.service.d └─sbd_delay_start.conf Active: failed (Result: exit-code) since Thu 2024-08-01 11:24:28 UTC; 1min 56s ago Duration: 55min 34.369s Docs: man:sbd(8) Process: 12794 ExecStart=/usr/sbin/sbd $SBD_OPTS -p /run/sbd.pid watch (code=exited, status=1/FAILURE) CPU: 46ms Aug 01 11:22:27 node1 systemd[1]: Starting Shared-storage based fencing daemon... Aug 01 11:22:27 node1 sbd[12794]: warning: open_any_device: Failed to open /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779. Trying any other config> Aug 01 11:24:28 node1 sbd[12794]: error: open_any_device: No devices were available at start-up within 120 seconds. Aug 01 11:24:28 node1 systemd[1]: sbd.service: Control process exited, code=exited, status=1/FAILURE Aug 01 11:24:28 node1 systemd[1]: sbd.service: Failed with result 'exit-code'. Aug 01 11:24:28 node1 systemd[1]: Failed to start Shared-storage based fencing daemon.
Разрешение. Убедитесь, что службы iscsid и iscsi включены и запущены
Проблему можно устранить следующим способом.
Убедитесь, что настроена правильная конфигурация, как описано в RHEL. Настройка Pacemaker в Red Hat Enterprise Linux в Azure
Включите обе
iscsid
службы иiscsi
службы:sudo systemctl enable iscsi
sudo systemctl enable iscsid
Проверьте состояние
iscsid
иiscsi
службы:sudo systemctl status iscsi
sudo systemctl status iscsid
Если службы включены и выполняются, вы увидите выходные данные команды, похожие на следующий текст:
● iscsi.service - Login and scanning of iSCSI devices Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; preset: enabled) Active: active (exited) since Thu 2024-08-01 10:28:36 UTC; 1h 0min ago Docs: man:iscsiadm(8) man:iscsid(8) Process: 11174 ExecStart=/usr/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=24) Main PID: 11174 (code=exited, status=24) CPU: 33ms Aug 01 10:28:36 nfs-0 systemd[1]: Starting Login and scanning of iSCSI devices... Aug 01 10:28:36 nfs-0 iscsiadm[1823]: Logging in to [iface: default, target: iqn.2006-04.nfs.local:nfs, portal: 10.0.0.17,3260] Aug 01 10:28:36 nfs-0 iscsiadm[1823]: Logging in to [iface: default, target: iqn.2006-04.nfs.local:nfs, portal: 10.0.0.18,3260] Aug 01 10:28:36 nfs-0 iscsiadm[1823]: Logging in to [iface: default, target: iqn.2006-04.nfs.local:nfs, portal: 10.0.0.19,3260] Aug 01 10:28:36 nfs-0 systemd[1]: Started Login and scanning of iSCSI devices.
Сценарий 2. Служба SBD не запускается из-за проблем конфигурации SBD
Служба SBD не запускается из-за следующих проблем:
- Отсутствуют конфигурации SBD.
- Неправильные конфигурации SBD, такие как неправильные имена устройств SBD или синтаксические ошибки.
Разрешение. Убедитесь, что существует правильная конфигурация SBD
Проверьте наличие конфигурации SBD:
sudo pcs stonith config sbd
Если конфигурация SBD существует, вы увидите выходные данные команды, похожие на следующий текст:
Resource: sbd (class=stonith type=fence_sbd) Attributes: sbd-instance_attributes devices=/dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779,/dev/disk/by-id/scsi-36001405cbac988092e448059d25d1a4a,/dev/disk/by- id/scsi-36001405a29a443e4a6e4ceeae822e5eb Operations: monitor: sbd-monitor-interval-600 interval=600 timeout=15
Проверьте и убедитесь, что файл конфигурации SBD /etc/sysconfig/sbd имеет следующие рекомендуемые параметры и правильные устройства SBD:
SBD_PACEMAKER=yes SBD_STARTMODE=always SBD_DELAY_START=no SBD_WATCHDOG_DEV=/dev/watchdog SBD_WATCHDOG_TIMEOUT=5 SBD_TIMEOUT_ACTION=flush,reboot SBD_MOVE_TO_ROOT_CGROUP=auto SBD_OPTS= SBD_DEVICE="/dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d77;/dev/disk/by-id/scsi-36001405cbac988092e448059d25d1a4a;/dev/disk/by-id/scsi-36001405a29a443e4a6e4ceeae822e5eb”
Сценарий 3. Устройства iSCSI недоступны на узлах кластера
Чтобы проверить, доступны ли устройства iSCSI на узлах кластера, выполните следующую lsscsi
или lsblk
команду. Если устройства iSCSI недоступны, диски SBD не будут отображаться в выходных данных команды.
sudo lsscsi
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda
[1:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb
[5:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0
sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 500M 0 part /boot
├─sda3 8:3 0 1M 0 part
└─sda4 8:4 0 63.3G 0 part
├─rootvg-tmplv 253:0 0 2G 0 lvm /tmp
├─rootvg-usrlv 253:1 0 10G 0 lvm /usr
├─rootvg-homelv 253:2 0 1G 0 lvm /home
├─rootvg-varlv 253:3 0 8G 0 lvm /var
└─rootvg-rootlv 253:4 0 2G 0 lvm /
sdb 8:16 0 16G 0 disk
└─sdb1 8:17 0 16G 0 part /mnt
sr0 11:0 1 628K 0 rom
Разрешение. Включение автоматического входа на целевые серверы iSCSI
Проверьте имена инициаторов на всех узлах кластера:
sudo cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2006-04.nfs-0.local:nfs-0
sudo cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2006-04.nfs-1.local:nfs-1
Вывод списка всех устройств SBD в файле конфигурации SBD.
sudo grep SBD_DEVICE /etc/sysconfig/sbd
# SBD_DEVICE specifies the devices to use for exchanging sbd messages SBD_DEVICE="/dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779;/dev/disk/by-id/scsi-36001405cbac988092e448059d25d1a4a;/dev/disk/by-id/scsi-36001405a29a443e4a6e4ceeae822e5eb"
Проверьте, работают ли и доступны устройства SBD. Если службы SBD не запущены и доступны, отобразится сообщение "Сбой sbd; Проверьте журналы". Сообщение об ошибке.
sudo /usr/sbin/sbd -d /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779 list
== disk /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779 unreadable! sbd failed; please check the logs.
sudo /usr/sbin/sbd -d /dev/disk/by-id/scsi-36001405cbac988092e448059d25d1a4a list
== disk /dev/disk/by-id/scsi-36001405cbac988092e448059d25d1a4a unreadable! sbd failed; please check the logs.
sudo /usr/sbin/sbd -d /dev/disk/by-id/scsi-36001405a29a443e4a6e4ceeae822e5eb list
== disk /dev/disk/by-id/scsi-36001405a29a443e4a6e4ceeae822e5eb unreadable! sbd failed; please check the logs.
Включите автоматическое вход на целевые серверы iSCSI.
iscsiadm
Выполните обнаружение на узле кластера:sudo iscsiadm -m discovery
В выходных данных команды показаны IP-адреса всех целевых серверов iSCSI и порт по умолчанию 3260:
10.0.0.17:3260 via sendtargets 10.0.0.18:3260 via sendtargets 10.0.0.19:3260 via sendtargets
Обнаружение целевого сервера iSCSI на заданном IP-адресе:
sudo iscsiadm -m discovery --type=st --portal=10.0.0.17:3260
В выходных данных команды отображается целевое имя, например
iqn.2006-04.nfs.local:nfs
:10.0.0.17:3260,1 iqn.2006-04.dbnw1.local:dbnw1 10.0.0.17:3260,1 iqn.2006-04.ascsnw1.local:ascsnw1 10.0.0.17:3260,1 iqn.2006-04.nfs.local:nfs
Войдите на устройство iSCSI:
sudo iscsiadm -m node -T iqn.2006-04.nfs.local:nfs --login --portal=10.0.0.17:3260
Logging in to [iface: default, target: iqn.2006-04.nfs.local:nfs, portal: 10.0.0.17,3260] Login to [iface: default, target: iqn.2006-04.nfs.local:nfs, portal: 10.0.0.17,3260] successful.
Включите автоматическое вход на устройство iSCSI:
sudo iscsiadm -m node -p 10.0.0.17:3260 -T iqn.2006-04.nfs.local:nfs --op=update --name=node.startup --value=automatic
Проверьте, доступно ли устройство iSCSI:
sudo lsscsi
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda [1:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb [5:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0 [6:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdc
Повторите шаг b-f, чтобы обеспечить доступность других устройств iSCSI.
Повторите шаг a-f на другом узле кластера, чтобы убедиться, что все устройства iSCSI на другом узле кластера доступны.
После того как устройства iSCSI будут доступны, lsscsi
выходные данные или lsblk
команды должны отображать диски SBD.
sudo lsscsi
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda
[1:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb
[5:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0
[6:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdc
[7:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdd
[8:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sde
sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 500M 0 part /boot
├─sda3 8:3 0 1M 0 part
└─sda4 8:4 0 63.3G 0 part
├─rootvg-tmplv 253:0 0 2G 0 lvm /tmp
├─rootvg-usrlv 253:1 0 10G 0 lvm /usr
├─rootvg-homelv 253:2 0 1G 0 lvm /home
├─rootvg-varlv 253:3 0 8G 0 lvm /var
└─rootvg-rootlv 253:4 0 2G 0 lvm /
sdb 8:16 0 16G 0 disk
└─sdb1 8:17 0 16G 0 part /mnt
sdc 8:32 0 50M 0 disk
sdd 8:48 0 50M 0 disk
sde 8:64 0 50M 0 disk
sr0 11:0 1 628K 0 rom
Сценарий 4. Узел не сможет повторно присоединиться к кластеру после забора
Если слот SBD не находится в чистом состоянии, узел не сможет повторно присоединиться к кластеру после забора. Это приводит к тому, что устройство SBD находится в состоянии сбоя, а другой узел находится в состоянии ожидания.
Чтобы проверить состояние слота SBD, выполните следующие команды:
sudo lsscsi
[0:0:0:0] disk Msft Virtual Disk 1.0 /dev/sda
[1:0:1:0] disk Msft Virtual Disk 1.0 /dev/sdb
[5:0:0:0] cd/dvd Msft Virtual CD/ROM 1.0 /dev/sr0
[6:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdc
[7:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sdd
[8:0:0:0] disk LIO-ORG sbdnfs 4.0 /dev/sde
sudo sbd -d /dev/sdc list
0 node1 clear
1 node2 reset node1
sudo sbd -d /dev/sdd list
0 node1 clear
1 node2 reset node1
sudo sbd -d /dev/sde list
0 node1 clear
1 node2 reset node1
Разрешение. Очистка слота SBD
SBD_STARTMODE
Проверьте, заданalways
ли параметр илиclean
в файле конфигурации SBD /etc/sysconfig/sbd:sudo grep -i SBD_STARTMODE /etc/sysconfig/sbd
SBD_STARTMODE=clean
Параметр
SBD_STARTMODE
определяет, выполняется ли повторное присоединение узла. Если заданоalways
значение , даже если узел был ранее заборирован, он повторно присоединит кластер. Если задано значениеclean
, узел повторно присоединит кластер после очистки слота SBD. Это ожидаемое поведение. Он обнаруживает сообщение типа ограждения в слоте SBD для узла и не позволяет узлу повторно присоединиться к кластеру, если только слот SBD не очищается вручную.Снимите слот SBD на узле, который ранее был заборирован и не смог повторно присоединиться к кластеру:
sudo sbd -d <SBD_DEVICE> message LOCAL clear
Если вы знаете имя узла, можно очистить слот SBD с помощью следующей команды:
sudo sbd -d <DEVICE_NAME> message <NODENAME> clear
Примечание.
Замените
<SBD_DEVICE>
и<NODENAME>
<DEVICE_NAME>
соответственно.Например, команда может быть следующей:
sudo sbd -d /dev/sdc message node2 clear
После очистки слота SBD запустите службу кластера.
Если служба кластера снова завершается ошибкой, выполните следующие команды, чтобы устранить проблему:
sudo iscsiadm -m node -u
sudo iscsiadm -m node -l
Сценарий 5. Служба SBD не запускается после добавления нового устройства SBD
После добавления нового устройства SBD в кластер вы увидите следующие симптомы:
При проверке состояния службы SBD, выполнив
sudo systemctl status sbd
команду, вы получите сообщение об ошибке "сбой sbd; Проверьте журналы и "Не удалось запустить sbd.service: операция отказалась".При отправке тестового сообщения на узел устройствами SBD, выполнив следующую команду, вы также получите то же сообщение об ошибке:
sudo sbd -d /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779 message node1 test
sbd failed; please check the logs.
В файле /var/log/messages вы также найдете следующие журналы:
Mar 2 06:58:06 node1 sbd[11105]: /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779: error: slot_msg: slot_msg(): No recipient / cmd specified. Mar 2 06:58:06 node1 sbd[11104]: warning: messenger: Process 11105 failed to deliver!
При выполнении
sbd -d list
команды отображается пустой результат. Дополнительные сведения см. в списке устройств SBD с пустыми выходными данными.
Разрешение. Перезапуск кластера Pacemaker
При использовании SBD в качестве устройства ограждения и включения его для кластера Pacemaker службы должны управляться под управлением кластера. Таким образом, вы не можете запустить или остановить его вручную. После добавления нового устройства SBD в кластер Pacemaker необходимо перезапустить кластер Pacemaker, чтобы устройство SBD вступило в силу под контролем кластера.
Остановите и перезапустите службы кластера на всех узлах кластера.
sudo pcs cluster stop --all
sudo pcs cluster start --all
Проверьте, успешно ли запускается служба SBD.
sudo systemctl status sbd.service
● sbd.service - Shared-storage based fencing daemon Loaded: loaded (/usr/lib/systemd/system/sbd.service; enabled; vendor preset: disabled) Active: active (running)
После запуска sbd -d list
службы SBD команда не будет отображать пустые выходные данные:
sudo sbd -d /dev/disk/by-id/scsi-360014056eadbecfeca042d4a66b9d779 list
0 node1 clear
1 node2 clear
Следующие шаги
Если проблема не устранена, соберите системные журналы из систем Red Hat, создайте отчет sos и обратитесь в службу поддержки. Дополнительные сведения см. в разделе "Что такое отчет sos" и как создать его в Red Hat Enterprise Linux?.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.