17.03.2011

Эмуляция Fence-Device на KVM (Xen тоже подходит) для кластерных гостевых машин

Fence - это вывод сломанной ноды из кластера. Для фэнсинга используется устройство вроде IPMI, но если кластер строится в виртуальной среде, то естественно никаких устройств как IPMI нет. Поэтому есть эмуляция этих устройств.

Схема работы выглядит следующим образом. Допустим у нас несколько хост-машин (Dom0), на каждой из которых крутятся  по нескольку гостевых машин (DomU). Все гостевые машины состоят в едином кластере.
ВНИМАНИЕ: вводить хост-машины в кластер нельзя, потому что в случае ее отказа, фэнсинг выведет ее из строя, а вместе с ней зацепит и все гостевые машины. После этого может случиться так, что кворум не получит уже никто и кластер полностью рухнет.

На каждой хост-машине запускается демон fence_xvmd. Он будет слушать от гостевых машин, получивших кворум, предложения вывести дохлого соседа из кластера. И еще раз внимание: fence_xvmd должен быть запущен на каждой хост-машине, потому что хост-машина умеет выводить только своих гостей, но не других.