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

Какое программное / аппаратное обеспечение использовать для реализации STONITH, чтобы машина A могла отключать питание машины B?

Я пытаюсь обеспечить защиту с разделением мозга, когда машина B берет на себя сценарий аварийного переключения. По сути, я хочу добиться того, чтобы машина A действительно отключилась до активации машины B, чтобы избежать печально известного сценария разделения мозга.

Поэтому мне нужно программное или аппаратное решение, которое позволяет мне удаленно и эффективно уничтожить машину А, разрезая мощность. Это подход STONITH или Shoot The Other Node In The Head.

Как это можно сделать?

Отключение питания сервера в такой ситуации обычно осуществляется через IPMI или переключаемый блок питания с доступом к сети.
Поскольку ситуация с разделенным мозгом подразумевает что-то странное, что может быть связано с отключением сети, вы обычно подключаете эту сеть к отдельному коммутатору.

Во-вторых, вы настраиваете corosync / pacemaker, как указано в gf_, чтобы выключить другой узел. В кластере с двумя узлами у вас будет проблема с выбором, какой узел выживет, и обычно у вас нечетное количество узлов. Есть возможности преодолеть это, но это зависит от ваших потребностей и ожиданий.

Помимо IPMI, вы также можете использовать API, встроенный в платформы виртуализации, такие как KVM или VMware. Идея состоит в том, чтобы сразу выключить виртуальную машину (если, конечно, кластер основан на виртуальных машинах). Я считаю, что это также можно сделать для GCE / AWS, однако для этого потребуются некоторые сценарии на стороне администратора (написание собственного агента STONITH).

https://www.hastexo.com/resources/hints-and-kinks/fencing-libvirtkvm-virtualized-cluster-nodes/