Как сделать виртуальный ip на кластере из 2 узлов
У меня есть конкретный вопрос, она моя ситуация:
1-2 vms с drbd - кардиостимулятором - corosync - NFs - вот моя конфигурация crm:
node san1
node san2
primitive drbd_res1 ocf:linbit:drbd \
    params drbd_resource="res1" \
    op monitor interval="20s"
primitive fs_res1 ocf:heartbeat:Filesystem \
    params device="/dev/drbd0" directory="/mnt/res1" fstype="ext3"
primitive nfs-common lsb:nfs-common
primitive nfs-kernel-server lsb:nfs-kernel-server
group services fs_res1 nfs-kernel-server nfs-common
ms ms_drbd_res1 drbd_res1 \
    meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
location location_on_san1 ms_drbd_res1 100: san1
colocation services_on_drbd inf: services ms_drbd_res1:Master
order services_after_drbd inf: ms_drbd_res1:promote services:start
property $id="cib-bootstrap-options" \
    dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \
    cluster-infrastructure="openais" \
    expected-quorum-votes="2" \
    no-quorum-policy="ignore" \
    stonith-enabled="false"
Моя проблема заключается в следующем: я должен смонтировать экспортированную NFS на NFS-клиенте, но я не знаю, какой IP-адрес я предоставляю, я думал о создании одного и того же виртуального IP-адреса с двумя компьютерами (используя eth0:x), поэтому, если сервер не работает, я ничего не буду делать в клиентской виртуальной машине,
это сработает? Или я совершенно не в себе, если не можешь дать мне совет,
я искал его как 1 час в интернете, я ничего не нашел,
Спасибо большое
1 ответ
Да, это будет и будет работать. Я использую эту технику с годами в производственных установках, а не в сочетании с NFS, но с разными услугами. Это путь.
- Используя это, вы можете придумать что-то вроде: - primitive p_nfs_vip ocf:heartbeat:IPaddr2 \ params ip="<your_ip>" nic="<your_interface>" cidr_netmask="<your_netmask>" \ op start interval="0s" timeout="60s" \ op monitor interval="5s" timeout="20s" \ op stop interval="0s" timeout="60s"- (Обменять - <...>директивы с вашими данными, так что они соответствуют вашим настройкам. Настройте- intervalа также- timeoutдирективы.)
- Положи это - primitiveв ваш- services group,
- Вы должны убедиться, что IP-адрес до вашего - NFSсервер запускается. Использовать- orderДиректива для этого, как вы уже сделали для вашего- servicesпротив- drbd,
- Свяжите свой - NFSсервер на этот IP.
- Используйте этот IP для подключения клиентов к - NFSсервер.
Последний, но тем не менее важный:
-  Настроить stonith/fencing, Это действительно очень важно! Прочитайте это. Цитата денег:
Ограждение является очень важной концепцией в компьютерных кластерах для высокой доступности. К сожалению, учитывая, что ограждение не предлагает видимой услуги пользователям, им часто пренебрегают. [...]
- Это особенно важно в настройках с общим хранилищем, как у вас. Запустив свой кластер без этого, вы подвергаете свои данные риску.