• • •
Локальные кластерные системы отличаются высоким уровнем связности, так как могут обеспечить передачу любой необходимой синхронизирующей информации без задержек благодаря малым расстояниям между оборудованием. Одна из основных задач локальных и территориальных кластерных систем – своевременное определение отказов. За это отвечает программное обеспечение (ПО) для кластеризации. ПО кластеризации должно обеспечивать поддержку кворума, то есть согласованного состояния кластера, определяющего количество отказов узлов, которые кластер может иметь или удерживать, сохраняя доступность пользовательских сервисов. Как только порог не отвечающих или сбойных узлов в кворуме превышается, весь кластер должен перейти в отключенный режим. Это связано с тем, что помимо отказов узлов на состояние кластера также могут влиять проблемы работы сети, связывающей серверы. Узлы из одного набора могут связываться друг с другом, используя работающую часть сети, но не могут связываться с другим набором узлов в другой части сети. Задача поддержки кворума заключается в том, чтобы предотвращать аномалию, называемую расщеплением (или сплитом), когда два сервера из разных частей сети в кластере могут попытаться выполнить запись в один и тот же файл, в частности на внешнем общем хранилище, и потенциально повредить данные. В случае расщепления хотя бы один набор узлов должен прекратить свою работу.
Работа кворума, таким образом, связана с недопущением данной проблемы и принятием решения о том, должен ли кластер продолжать функционирование, при этом гарантированно изолировав проблемные узлы до тех пор, пока они не смогут нормально взаимодействовать в составе кластера.
Например, в кластере из пяти узлов произошло расщепление, и узлы 1, 2 и 3 могут взаимодействовать друг с другом, но не с узлами 4 и 5. Тогда узлы 1, 2 и 3 должны образовать большинство и продолжать работать как кластер. Узлы, которые являются меньшинством, должны прекратить работать. По возможности работающая часть должна гарантированно изолировать проблемные узлы 4 и 5 с помощью процедуры, называемой Fencing [1]. Это процесс исключения узлов из работы кластера. Как правило, Fencing сводится к обесточиванию серверов с помощью специальных механизмов. Далее узел 3 теряет связь с другими узлами, все узлы должны прекратить работать в качестве кластера [2–3].