Отключение питания сервера Linux — проверка целостности данных и повреждения ОС

Отключение питания сервера Linux — проверка целостности данных и повреждения ОС

Каковы наилучшие практические шаги по проверке и восстановлению ОС Linux на предмет потенциального повреждения в случае неожиданного отключения электроэнергии (или отказа хоста виртуальной машины)?

Конечно, это «зависит» от установки и настройки, но я ищу общие действия/проверки для большинства ОС Linux (Debian, Ubuntu, Mint и других) и файловых систем (XFS, ZFS, EXT4, vfat).

Речь идет не о предотвращении непредвиденных отключений, а о том, как реагировать на них, когда они происходят, и пытаться обеспечить наилучший вариант восстановления.

Я знаю, что операционные системы, как правило, определяют, когда файловая система не была размонтирована (как это происходит при корректном завершении работы), и поэтому автоматически выполняют проверки при загрузке, но что это за проверки и как их выполнять вручную?

Eg e2fsck -f— один из таких инструментов, но для непосвященных: когда его можно/нужно использовать, а когда нет (или он не будет работать)?

Например, в Windows вы можете сделать следующее:

  • Проверьте файловую систему NTFS на наличие повреждений, используя старый chkdskили современный эквивалент repair-volume(в PowerShell)
  • Проверьте целостность основных системных файлов ОС с помощьюsfc.exe /scannow

Действия по проверке/восстановлению, специфичные для приложений, такие как MySQL databaseили LDAP directoriesи т. п., выходят за рамки этого вопроса, если только это не очень распространенная вещь, например, какая-нибудь база данных ОС aptили snapбазы данных.

Что вы делаете?

решение1

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

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

По этой причине критически важные приложения, такие как базы данных (за исключением MyISAM), реализуют собственное журналирование и записывают данные с использованием синхронной семантики fsync()и тому подобного.

Короче говоря: незапланированное отключение обычно не требует никакого восстановления файловой системы (кроме автоматического воспроизведения журнала). Проверка приложений зависит от самого приложения, при этом большинство баз данных не подвержены влиянию внезапного отключения питания — если только не используется MyISAM, которыйтребуетбегmysqlcheck

Связанный контент