4.14. Функции отзыва GFS2

Целью отзыва является защита целостности файловых систем в кластере. Если модуль ядра GFS2 обнаружил несоответствия в файловой системе после операции ввода-вывода, доступ к ней из кластера будет закрыт. Текущая операция будет остановлена, а последующие операции будут отменены во избежание дальнейших ошибок. Приложения и службы можно остановить вручную, после чего перезагрузить систему и заново смонтировать GFS2. Если это не решило проблему, можно отключить файловую систему на всех узлах кластера и выполнить fsck.gfs2. Этот метод является более предпочтительным по сравнению с паникой ядра и изоляцией узла.
Если при загрузке системы запускается сценарий инициализации gfs2, а в файле /etc/fstab есть записи для GFS2, то файловая система будет заново подключена после перезагрузки. Если же GFS2 была отозвана, то прежде чем заново ее подключить, следует выполнить fsck.gfs2. Чтобы предотвратить подключение поврежденной файловой системы во время загрузки, выполните следующее:
  1. Отключите сценарий запуска на интересующем узле:
    # chkconfig gfs2 off
  2. Перезагрузите узел и запустите кластерные службы. GFS2 не будет подключена.
  3. Отключите файловую систему на остальных узлах кластера.
  4. Выполните fsck.gfs2 для ее проверки.
  5. Заново запустите сценарий на том же узле:
    # chkconfig gfs2 on
  6. Смонтируйте GFS2 на остальных узлах.
Причиной отзыва GFS2 может послужить неверное число блоков. В частности, это может произойти при удалении файла и соответствующих ему блоков. После этого число блоков будет проверено. Значение, отличное от 1 (должен остаться только дескриптор) сообщает о несоответствии.
Если файловая система была смонтирована с параметром -o errors=panic, то ошибки, которые обычно приводят к отзыву, будут вызывать панику и изоляцию узла.
Функция отзыва работает так: ядро отправляет запрос отзыва процессу gfs_controld, который вызывает dmsetup для настройки проецирования error, ограничивающего доступ к файловой системе. Ядру сообщается об успешной изоляции устройства. Именно поэтому GFS2 создается на основе устройств CLVM, так как в противном случае добавление виртуальных устройств Device Mapper было бы невозможно.
Наличие устройства с проецированием error гарантирует, что все попытки обращения будут вызывать ошибки, что позволит корректно отключить файловую систему. Поэтому наличие ошибок ввода-вывода в системных журналах после отзыва является нормальным явлением.
Если dmsetup не смог создать проекцию, отзыв завершится неудачей. Это может произойти при нехватке памяти на момент инициализации процедуры отзыва.
Иногда причиной отзыва могут стать ошибки ввода-вывода на уровне блочных устройств, а не в GFS2. Поэтому прежде чем принять окончательное решение, стоит проверить журналы.