Назад | Перейти на главную страницу

Как ответственно избежать «принудительного использования fsck»?

Итак, я просто заменил жесткий диск RAID на сервере. Я получил сообщение «не проверялся в течение X дней, fsck принудительно» и сейчас терпеливо жду.

Это заставило меня задуматься: как я могу ответственно избежать этой ситуации? Я знаю, что могу пропустить принудительный fsck, и что я действительно не могу выполнить настоящую fsck, пока система работает.

Итак, есть ли способ выполнить онлайн-проверку fsck на сервере ночью, просто чтобы проверить, есть ли какие-либо потенциальные проблемы? А если нет, сделать так, чтобы система НЕ запускала принудительный fsck?

Будет ли fsck, доступный только для чтения, обнаруживать (а не исправлять) те же проблемы, что и полноценный fsck?

Это один ext3.

Переключитесь на более современную журналируемую файловую систему, такую ​​как XFS или ext4. В этих системах полный fsck не требуется, если файловая система нечиста; журнал просто воспроизводится, что занимает секунду или около того. Даже если принудительно выполнить полный fsck, ext4 это значительно быстрее в fsck чем ext3.

Вам понадобится система Linux, созданная за последние несколько лет и поддерживающая ext4. В частности, версия ядра 2.6.24 или выше. Похоже, ваша система довольно древняя, поэтому она может даже не поддерживать ext4. Если это так, то жизнь почти наверняка уже давно прошла ...

(Примечание: хотя ext3 ведется в журнале, в ext4 отсутствуют некоторые оптимизации, которые заставляют fsck работать намного быстрее.)

Ты можешь использовать e2croncheck (Отчет об ошибке Debian 773267) если у вас есть фс на lvm.

Вы можете изменить, будет ли система принудительно запускать fsck при перезагрузке, несколькими способами:

  • Transient :: grub.conf

    Добавьте fastboot в свой grub.conf файл в конце строки ядра

  • Постоянный :: fstab

    в fstab запись для вашего монтирования, последний столбец (один из двух пронумерованных столбцов) можно переключить на 0. Согласно справочной странице fstab:

    The sixth field (fs_passno).
          This field is used by fsck(8) to determine the order in which filesystem  checks  are  done  at  boot
          time.   The root filesystem should be specified with a fs_passno of 1.  Other filesystems should have
          a fs_passno of 2.  Filesystems within a drive will be checked sequentially, but filesystems  on  dif‐
          ferent  drives  will  be  checked  at the same time to utilize parallelism available in the hardware.
          Defaults to zero (don't fsck) if not present.
    

Что касается проверки работающей / смонтированной файловой системы, в некоторых статьях говорится, что вы можете попробовать, установив все в режим только для чтения (монтируя рассматриваемую файловую систему в режиме только для чтения и запуская fsck в режиме только для чтения), хотя в большинстве этих статей также рекомендуется против практики в основном из-за недостоверности результатов.

я нашел это предложение здесь упоминается хитрый трюк, который можно попробовать, если вы используете LVM для своих разделов. Однако, если у вас нет такой роскоши, вы, скорее всего, захотите: A: позволить fscks работать своим чередом (обычно рекомендуется); или B: спланируйте время простоя в течение указанного вами ночного периода, когда вы запускаете автономный fsck. Кроме того, как сказал Майкл Хэмптон, возможно, пришло время подумать о чем-то более новом, чем ext3: D

Одна ответственная вещь, которую нужно сделать, - это убедиться, что существует резервная копия, которую вы смонтировали для чтения, записи и запуска e2fsck на. Например, снимок LVM, заархивированный на долговременный носитель. (Обязательно когда-нибудь сделайте тест восстановления из резервной копии!)

Если fsck резервной копии вернулся чистым и является достаточно новым, чтобы соответствовать целевому времени восстановления, то вы можете быть уверены в том, что не выполните принудительный fsck. Если он вернулся грязным, то в идеале он отмечает основной том для полного fsck, как это делает e2croncheck, см. Ответ Марио.

По-прежнему рекомендуется проводить fsck по времени хотя бы один или два раза в год. Использовать tune2fs -i чтобы установить некоторое количество дней ниже вашей типичной частоты перезагрузки. В любом случае вам необходимо перезагрузить компьютер, чтобы обновления вступили в силу, выделите достаточно времени во время планового обслуживания для fsck.