Рейтинг:1

Кластер PCS — привязка ресурса nfsserver к определенному IP

флаг it

Я пытаюсь развернуть кластерную архитектуру HA NFS с PCS на Rocky Linux 8.5. Текущие версии пакетов, связанных с ядром и nfs, конфигурации ПК подробно показаны ниже.

Я не могу объявить конкретный IP-адрес для экземпляров NFSD (rpc.statd, rpc.mountd и т. д.) для привязки. Что бы я ни делал, услуги остаются обязательными 0.0.0.0:$ порты по умолчанию.

Я хотел бы инициировать разные «ocf: Heartbeat: nfsserver» с определенным ресурсом VirtualIP для каждой из моей группы ресурсов NFS (блок). Когда я объявляю вторую группу общих ресурсов NFS на том же узле кластера (где я планирую иметь больше NFS, чем размер кластера), ресурсы «ocf: Heartbeat: nfsserver» блокируют друг друга, и в конечном итоге выигрывает один, а другой ресурс получает. в состояние «заблокировано».

[root@node1 ~]# uname -a
Linux node1.local 4.18.0-348.12.2.el8_5.x86_64 #1 SMP, среда, 19 января, 17:53:40 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@node1 ~]# rpm -qa nfs* rpc*
нфс-утилиты-2.3.3-46.el8.x86_64
rpcbind-1.2.5-8.el8.x86_64
[корень@узел1 ~]# 

Статус кластера PCS

[root@node1 ~]статус # ПК
Имя кластера: cluster01
Сводка по кластеру:
  * Стек: коросинк
  * Текущий DC: node5 (версия 2.1.0-8.el8-7c3f660707) — раздел с кворумом
  * Последнее обновление: Чт, 24 марта, 13:10:09 2022 г.
  * Последнее изменение: Чт, 24 марта, 13:03:48 2022, от root через crm_resource на узле 3.
  * настроено 5 узлов
  * настроено 5 экземпляров ресурсов

Список узлов:
  * Онлайн: [ узел1 узел2 узел3 узел4 узел5 ]

Полный список ресурсов:
  * Группа ресурсов: Group_SHARE:
    * ROOT-FS_SHARE (ocf::heartbeat:Filesystem): запущен node2
    * NFSD_SHARE (ocf::heartbeat:nfsserver): Запущен узел2
    * NFS_SHARE (ocf::heartbeat:exportfs): Запущен узел2
    * NFS-IP_SHARE (ocf::heartbeat:IPaddr2): Запущен узел2
    * NFS-NOTIFY_SHARE (ocf::heartbeat:nfsnotify): Запущен узел2

Статус демона:
  коросинхронизация: активна/включена
  кардиостимулятор: активен/включен
  pcsd: активен/включен
[корень@узел1 ~]# 

Вывод конфигурации ресурсов PCS

[root@node2 ~]# конфигурация ресурса pcs
 Группа: Group_SHARE
  Ресурс: ROOT-FS_SHARE (класс = поставщик ocf = тип сердцебиения = файловая система)
   Атрибуты: device=/dev/disk/by-id/wwn-0x6001405ce6b7033688d497a91aa23547 directory=/srv/block/SHARE fstype=xfs
   Операции: интервал монитора = 20 с, тайм-аут = 40 с (ROOT-FS_SHARE-интервал-монитора-20 с)
               начальный интервал = 0 с, тайм-аут = 60 с (ROOT-FS_SHARE-начальный интервал-0 с)
               интервал остановки = 0 с, тайм-аут = 60 с (ROOT-FS_SHARE-stop-interval-0s)
  Ресурс: NFSD_SHARE (класс = поставщик ocf = тип сердцебиения = nfsserver)
   Атрибуты: nfs_ip=10.1.31.100 nfs_no_notify=true nfs_shared_infodir=/srv/block/SHARE/nfsinfo/
   Операции: интервал монитора = 10 с, тайм-аут = 20 с (NFSD_SHARE-интервал-монитора-10 с)
               начальный интервал = 0 с, тайм-аут = 40 с (NFSD_SHARE-начальный интервал-0 с)
               интервал остановки = 0 с, тайм-аут = 20 с (NFSD_SHARE-stop-interval-0s)
  Ресурс: NFS_SHARE (class=ocf provider=heartbeat type=exportfs)
   Атрибуты: clientpec=10.1.31.0/255.255.255.0 directory=/srv/block/SHARE/SHARE fsid=0 options=rw,sync,no_root_squash
   Операции: интервал монитора = 10 с, тайм-аут = 20 с (NFS_SHARE-интервал-монитора-10 с)
               начальный интервал = 0 с, тайм-аут = 40 с (NFS_SHARE-начальный интервал-0 с)
               интервал остановки = 0 с, тайм-аут = 120 с (NFS_SHARE-stop-interval-0s)
  Ресурс: NFS-IP_SHARE (class=ocf provider=heartbeat type=IPaddr2)
   Атрибуты: cidr_netmask=24 ip=10.1.31.100 nic=team31
   Операции: интервал монитора = 30 с (NFS-IP_SHARE-интервал-монитора-30 с)
               начальный интервал = 0 с, тайм-аут = 20 с (NFS-IP_SHARE-start-interval-0 с)
               интервал остановки = 0 с, тайм-аут = 20 с (NFS-IP_SHARE-stop-interval-0s)
  Ресурс: NFS-NOTIFY_SHARE (class=ocf provider=heartbeat type=nfsnotify)
   Атрибуты: source_host=SHARE.local
   Операции: интервал монитора = 30 с, тайм-аут = 90 с (NFS-NOTIFY_SHARE-интервал-монитора-30 с)
               интервал перезагрузки = 0 с, тайм-аут = 90 с (NFS-NOTIFY_SHARE-reload-interval-0s)
               начальный интервал = 0 с, тайм-аут = 90 с (NFS-NOTIFY_SHARE-start-interval-0 с)
               интервал остановки = 0 с, тайм-аут = 90 с (NFS-NOTIFY_SHARE-stop-interval-0s)
[корень@узел2 ~]#

Виртуальный IP успешно привязан к node2

[root@node2 ~]# ip -4 адрес показать team31
6: team31: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
    inet 10.1.31.2/24 brd 10.1.31.255 глобальная область действия noprefixroute team31
       valid_lft навсегда
    inet 10.1.31.100/24 ​​brd 10.1.31.255 область действия глобальная вторичная команда31
       valid_lft навсегда
[корень@узел2 ~]#

Привязки TCP LISTEN

[root@node2 ~]# netstat -punta | grep СЛУШАТЬ
TCP 0 0 0.0.0.0:2049 0.0.0.0:* ПРОСЛУШАТЬ -                   
TCP 0 0 127.0.0.1:44321 0.0.0.0:* ПРОСЛУШИВАТЬ 1803/pmcd           
TCP 0 0 0.0.0.0:34661 0.0.0.0:* ПРОСЛУШАТЬ 630273/rpc.statd    
TCP 0 0 127.0.0.1:199 0.0.0.0:* ПРОСЛУШИВАТЬ 1257/snmpd            
TCP 0 0 127.0.0.1:4330 0.0.0.0:* ПРОСЛУШАТЬ 2834/pmlogger       
TCP 0 0 10.20.101.136:2379 0.0.0.0:* ПРОСЛУШИВАТЬ 3285/etcd           
TCP 0 0 10.20.101.136:2380 0.0.0.0:* ПРОСЛУШИВАТЬ 3285/etcd           
TCP 0 0 0.0.0.0:111 0.0.0.0:* ПРОСЛУШАТЬ 1/systemd           
TCP 0 0 0.0.0.0:20048 0.0.0.0:* ПРОСЛУШАТЬ 630282/rpc.mountd   
TCP 0 0 0.0.0.0:80 0.0.0.0:* ПРОСЛУШАТЬ 317707/nginx: master 
TCP 0 0 0.0.0.0:2224 0.0.0.0:* ПРОСЛУШИВАТЬ 3725/платформа-pytho 
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШИВАТЬ 1170/sshd           
TCP 0 0 0.0.0.0:41017 0.0.0.0:* ПРОСЛУШАТЬ -                   
TCP 0 0 0.0.0.0:443 0.0.0.0:* ПРОСЛУШИВАТЬ 317707/nginx: master 
TCP 0 0 0.0.0.0:35261 0.0.0.0:* ПРОСЛУШАТЬ -                   
tcp6 0 0 :::2049 :::* СЛУШАТЬ -                   
tcp6 0 0 ::1:44321 :::* ПРОСЛУШАТЬ 1803/pmcd           
tcp6 0 0 ::1:4330 :::* ПРОСЛУШИВАТЬ 2834/pmlogger       
tcp6 0 0 :::111 :::* ПРОСЛУШАТЬ 1/systemd           
tcp6 0 0 :::20048 :::* ПРОСЛУШИВАТЬ 630282/rpc.mountd   
tcp6 0 0 :::2224 :::* ПРОСЛУШИВАТЬ 3725/платформа-pytho 
tcp6 0 0 :::37329 :::* СЛУШАТЬ -                   
tcp6 0 0 :::22 :::* ПРОСЛУШИВАТЬ 1170/sshd           
tcp6 0 0 :::41179 :::* ПРОСЛУШАТЬ 630273/rpc.statd    
tcp6 0 0 :::43487 :::* СЛУШАТЬ -                   
[корень@узел2 ~]#

Ресурсы кластера PCS (формат cib.xml, на случай, если вам нужно более глубокое погружение)

<resources>
  <group id="Group_SHARE">
    <primitive class="ocf" id="ROOT-FS_SHARE" provider="heartbeat" type="Filesystem">
      <instance_attributes id="ROOT-FS_SHARE-instance_attributes">
        <nvpair id="ROOT-FS_SHARE-instance_attributes-device" name="device" value="/dev/disk/by-id/wwn-0x6001405ce6b7033688d497a91aa23547"/>
        <nvpair id="ROOT-FS_SHARE-instance_attributes-directory" name="directory" value="/srv/block/SHARE"/>
        <nvpair id="ROOT-FS_SHARE-instance_attributes-fstype" name="fstype" value="xfs"/>
      </instance_attributes>
      <operations>
        <op id="ROOT-FS_SHARE-monitor-interval-20s" interval="20s" name="monitor" timeout="40s"/>
        <op id="ROOT-FS_SHARE-start-interval-0s" interval="0s" name="start" timeout="60s"/>
        <op id="ROOT-FS_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="60s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFSD_SHARE" provider="heartbeat" type="nfsserver">
      <instance_attributes id="NFSD_SHARE-instance_attributes">
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_ip" name="nfs_ip" value="10.1.31.100"/>
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_no_notify" name="nfs_no_notify" value="true"/>
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_shared_infodir" name="nfs_shared_infodir" value="/srv/block/SHARE/nfsinfo/"/>
      </instance_attributes>
      <operations>
        <op id="NFSD_SHARE-monitor-interval-10s" interval="10s" name="monitor" timeout="20s"/>
        <op id="NFSD_SHARE-start-interval-0s" interval="0s" name="start" timeout="40s"/>
        <op id="NFSD_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="20s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS_SHARE" provider="heartbeat" type="exportfs">
      <instance_attributes id="NFS_SHARE-instance_attributes">
        <nvpair id="NFS_SHARE-instance_attributes-clientspec" name="clientspec" value="10.1.31.0/255.255.255.0"/>
        <nvpair id="NFS_SHARE-instance_attributes-directory" name="directory" value="/srv/block/SHARE/SHARE"/>
        <nvpair id="NFS_SHARE-instance_attributes-fsid" name="fsid" value="0"/>
        <nvpair id="NFS_SHARE-instance_attributes-options" name="options" value="rw,sync,no_root_squash"/>
      </instance_attributes>
      <operations>
        <op id="NFS_SHARE-monitor-interval-10s" interval="10s" name="monitor" timeout="20s"/>
        <op id="NFS_SHARE-start-interval-0s" interval="0s" name="start" timeout="40s"/>
        <op id="NFS_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="120s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS-IP_SHARE" provider="heartbeat" type="IPaddr2">
      <instance_attributes id="NFS-IP_SHARE-instance_attributes">
        <nvpair id="NFS-IP_SHARE-instance_attributes-cidr_netmask" name="cidr_netmask" value="24"/>
        <nvpair id="NFS-IP_SHARE-instance_attributes-ip" name="ip" value="10.1.31.100"/>
        <nvpair id="NFS-IP_SHARE-instance_attributes-nic" name="nic" value="team31"/>
      </instance_attributes>
      <operations>
        <op id="NFS-IP_SHARE-monitor-interval-30s" interval="30s" name="monitor"/>
        <op id="NFS-IP_SHARE-start-interval-0s" interval="0s" name="start" timeout="20s"/>
        <op id="NFS-IP_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="20s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS-NOTIFY_SHARE" provider="heartbeat" type="nfsnotify">
      <instance_attributes id="NFS-NOTIFY_SHARE-instance_attributes">
        <nvpair id="NFS-NOTIFY_SHARE-instance_attributes-source_host" name="source_host" value="SHARE.local"/>
      </instance_attributes>
      <operations>
        <op id="NFS-NOTIFY_SHARE-monitor-interval-30s" interval="30s" name="monitor" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-reload-interval-0s" interval="0s" name="reload" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-start-interval-0s" interval="0s" name="start" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="90s"/>
      </operations>
    </primitive>
  </group>
</resources>

РЕДАКТИРОВАТЬ-1

Похоже, что это OpenClusterFramework — ресурс nfsserver вообще не использует поле nfs_ip для «rpc.nfsd -H $nfs_ip». В RockyLinux 8.5 этот ресурс также не позволяет нам перезаписать поведение по умолчанию для поддержки каждой версии NFS. RockyLinux 8.5 использует следующие пакеты resource-agents-4.1.1-98.el8_5.2.x86_64.

Я попытаюсь решить свою проблему, указав пользовательские системные ресурсы ПК для [email protected]

U. Windl avatar
флаг it
Может быть, показать запись в журнале при запуске сервера NFS. Вот (для SLES 12) работает!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.