Фехтование (компьютерное)

Ограждение — это процесс изоляции узла компьютерного кластера или защиты общих ресурсов, когда узел работает со сбоями. [1] [2]
По мере увеличения количества узлов в кластере увеличивается и вероятность того, что один из них в какой-то момент может выйти из строя. Отказавший узел может иметь контроль над общими ресурсами, которые необходимо вернуть, и если узел работает беспорядочно, остальную часть системы необходимо защитить. Таким образом, ограждение может либо отключить узел, либо запретить доступ к общему хранилищу, обеспечивая тем самым целостность данных.
Основные понятия
[ редактировать ]Ограждение узла (или ограждение ввода-вывода) — это виртуальный «забор», отделяющий узлы, которые не должны иметь доступа к общему ресурсу, от этого ресурса. Он может отделить активный узел от его резервного. Если резервная копия пересекает границу и, например, пытается контролировать тот же дисковый массив, что и основной, может возникнуть угроза данным. Такие механизмы, как STONITH, предназначены для предотвращения этого состояния.
Изоляция узла означает, что ввода-вывода с него больше невозможно выполнять операции . Ограждение обычно выполняется автоматически с помощью кластерной инфраструктуры, такой как файловые системы общего диска , чтобы защитить процессы от других активных узлов, изменяющих ресурсы во время сбоев узлов. Механизмы поддержки ограждения, такие как механизм резервирования/выпуска SCSI, существуют как минимум с 1985 года. [3]
Фехтование необходимо, потому что невозможно отличить настоящий сбой от временного зависания . Если неисправный узел действительно вышел из строя, то он не может нанести никакого ущерба, поэтому теоретически никаких действий не потребуется (его можно просто вернуть обратно в кластер с помощью обычного процесса соединения). Однако, поскольку существует вероятность того, что неисправный узел сам может считать остальную часть кластера неисправной, может возникнуть состояние разделения мозга , что приведет к повреждению данных . Вместо этого система должна предполагать худший сценарий и всегда отключаться в случае возникновения проблем.
Подходы к фехтованию
[ редактировать ]Существует два класса методов ограждения: один отключает сам узел, другой запрещает доступ к ресурсам, таким как общие диски. [1] В некоторых случаях предполагается, что если узел не отвечает после заданного временного порога, его можно считать неработоспособным, хотя существуют и противоположные примеры, например, длительная пейджинговая атака. [1]
Метод STONITH означает «Выстрелить другой узел в голову», что означает, что подозреваемый узел отключается или отключается. Например, при ограждении электропитания используется контроллер мощности для отключения неработоспособного узла. Затем узел может перезагрузиться и позже присоединиться к кластеру. Однако существуют подходы, при которых оператор информируется о необходимости ручного перезапуска узла. [1]
Подход к ограничению ресурсов запрещает доступ к ресурсам без отключения узла. Это может включать в себя:
- Ограждение постоянного резервирования использует постоянное резервирование SCSI3 для блокировки доступа к общему хранилищу.
- Ограждение Fibre Channel отключает Fibre Channel. порт
- Ограждение глобального сетевого блочного устройства (GNBD), которое отключает доступ к серверу GNBD.
Когда в кластере есть только два узла, метод резервирования/освобождения может использоваться как STONITH с двумя узлами, при этом при обнаружении того, что узел B вышел из строя, узел A выдаст резерв и получит все ресурсы (например, общий диск) для себя. Узел B будет отключен, если он попытается выполнить ввод-вывод (в случае, если он был временно завис). На узле B сбой ввода-вывода запускает некоторый код для уничтожения узла.
Постоянное резервирование — это, по сути, совпадение ключа, поэтому узел, имеющий правильный ключ, может выполнять ввод-вывод, в противном случае его ввод-вывод завершится неудачей. Поэтому достаточно сменить ключ при сбое, чтобы обеспечить правильное поведение во время сбоя. Однако не всегда возможно изменить ключ на вышедшем из строя узле.
STONITH — это более простой и простой метод для реализации на нескольких кластерах, в то время как различные подходы к ограничению ресурсов требуют конкретных подходов к реализации для каждой реализации кластера. [1]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с д и «Ограждение ресурсов Алана Робертсона с использованием STONITH» (PDF) . Исследовательский центр IBM Linux . Архивировано из оригинала (PDF) 5 января 2021 г.
- ^ Окружающая среда Солнечного скопления: Солнечное скопление 2.2 Энрике Варгаса, Джозефа Бьянко, Дэвида Дитса, 2001 ISBN, стр. 58
- ^ «Интерфейс стандартов малых компьютеров» . АНСИ Х3.131-1986 .