Если вы используете кластер из 3 или более узлов с cman / corosync и у вас есть какое-то подключенное хранилище общих блоков (SAN) только для некоторых узлов в кластере, как вы можете включить CLVM на этом устройстве хранения?
В моем примере я ' m работает кластер с 3 узлами, там 2 узла являются «основной рабочей нагрузкой», а 1 узел используется для резервного копирования и архивов. Основные узлы подключены к FC HBA с помощью многопутевого доступа к SAN. Все работает нормально, я смог инициализировать PV на этом устройстве и вижу его на обоих узлах:
PV VG Fmt Attr PSize PFree
/dev/mapper/mpathd san-vg1 lvm2 a-- 500.00g 500.00g
Теперь, чтобы создать кластеризованный VG, я включил ограждение на всех 3 узлах в моем кластере (с IPMI, если это важно
fence domain
member count 3
victim count 0
victim now 0
master nodeid 1
wait state none
members 1 2 3
Я также создал кластерный VG ( vgcreate -c
) на этом PV, и этот тоже отлично работает:
VG #PV #LV #SN Attr VSize VFree
san-vg1 1 0 0 wz--nc 500.00g 500.00g
Но сейчас я не могу создать LV на этом VG, потому что 3-й узел в кластере нет FC HBA, и я вообще не «вижу» этот PV:
Error locking on node main-stor1: Volume group for uuid not found: 3ju5fLfCFyGNivksaq0z7YVGlpWhIX87yK0CoL4e9y86xtwpVDu8PS6WnSdfdlCU
Failed to activate new LV.
Мне фактически не нужен доступ с этого узла к VG / LV, хранящимся в этой SAN. Но мне нужно, чтобы этот узел был синхронизирован в кластере для целей управления ресурсами.
Можно ли указать LVM игнорировать / исключать этот узел из кластерной группы VG?
Я столкнулся с этим несколько лет назад: Поскольку CLVM напрямую привязан ко многим частям кластерного набора и был разработан только для поддержки когерентных кластеров, вы не можете использовать его, если все ваши машины не видят одни и те же устройства хранения.
AFAICT не существует разумного обходного пути.