4.11. Проверка файловой системы

Если в файловой системе произошел сбой узлов, их можно будет восстановить с помощью журналов. Но если накопитель был физически отсоединен, или было отключено питание, вероятность повреждения файловой системы не исключена. В таких случаях рекомендуется выполнить проверку fsck.gfs2.

Важно

Проверка fsck.gfs2 должна выполняться в отключенной файловой системе.

Важно

Не следует выполнять проверку во время загрузки системы, так как fsck.gfs2 не сможет определить, смонтирована ли файловая система на другом узле кластера. Дождитесь завершения загрузки.
Чтобы предотвратить запуск fsck.gfs2 во время загрузки, в строке GFS2 в /etc/fstab установите нулевые значения в двух последних столбцах.
/dev/VG12/lv_svr_home   /svr_home       gfs2     defaults,noatime,nodiratime,noquota     0 0

Примечание

fsck.gfs2 несколько отличается от gfs_fsck:
  • Ctrl+C прервет работу fsck.gfs2 и покажет запрос, где можно будет выбрать остановить работу команды, пропустить текущий цикл проверки или продолжить работу.
  • Параметр -v позволяет вывести подробную информацию. Его повторное указание увеличивает детализацию.
  • -q снижает уровень детализации. Также может быть указан повторно.
  • -n откроет файловую систему в режиме чтения и будет отвечать no на все вопросы. Используется для выявления ошибок без применения изменений fsck.gfs2.
Подробную информацию можно найти на справочной странице fsck.gfs2.
fsck.gfs2 использует память за пределами операционной системы и ядра. Проверка каждого блока в GFS2 требует примерно 5 бит (5/8 байта). Таким образом, чтобы оценить необходимый размер памяти, надо определить число блоков с помощью fsck.gfs2 и умножить его на 5/8.
Например, чтобы рассчитать объем памяти, необходимый для выполнения fsck.gfs2 в файловой системе с блоками размером 4 КБ и общим размером 16 ТБ, надо определить число блоков, разделив размер файловой системы на размер блока:
 17592186044416 / 4096 = 4294967296
Умножив полученное число на 5/8, получим необходимый размер в байтах:
4294967296 * 5/8 = 2684354560
Таким образом, для выполнения fsck.gfs2 потребуется примерно 2.6 ГБ. Если бы размер блока был равен 1 КБ, требовалось бы 11 ГБ.

4.11.1. Формат команд

fsck.gfs2 -y устройство
-y
yes на все вопросы, то есть fsck.gfs2 не будет запрашивать ответ перед применением изменений.
устройство
Устройство, где расположена файловая система GFS2.

4.11.2. Пример

Пример восстановления файловой системы в /dev/testvol/testlv с автоматическим подтверждением.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete