Назад | Перейти на главную страницу

как сделать виртуальный 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 час в Интернете, я ничего не нашел,

Большое тебе спасибо

Да, это сработает и будет работать. Я использую эту технику уже много лет в производственных установках, а не в сочетании с NFS, но с разными сервисами. Это путь.

  • Взгляните на IPaddr2 агент ресурсов.

  • Используя это, вы могли бы придумать что-то вроде:

    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 vs. drbd.

  • Свяжите свой NFS сервер на этот IP.

  • Используйте этот IP-адрес для подключения клиентов к NFS сервер.

Последний, но тем не менее важный:

  • Настроить stonith / fencing. Это действительно очень важно! Читать этот. Денежная цитата:

Ограждение - очень важная концепция в компьютерных кластерах для HA (High Availability). К сожалению, учитывая, что ограждение не предлагает видимых услуг для пользователей, им часто пренебрегают. [...]

  • Это особенно важно в настройках с общим хранилищем, таких как ваша. Запуская кластер без этого, вы подвергаете риску свои данные.