|
|
|
В. Костромин, "16.7. Журналируемые файловые системы" - 14/09/2004
Глава 16.
Обратная сторона файловой системы
16.7. Журналируемые файловые системы
Основная цель, которая преследуется при создании
журналируемых файловых систем, состоит в том, чтобы обеспечить
быстрое восстановление системы после сбоев (например, после потери
питания). Дело в том, что если произойдет такой сбой, то часть
информации о расположении файлов теряется, поскольку не все изменения
сразу записываются на диск. После этого программа fsck
вынуждена просматривать весь диск блок за блоком (пользуясь битовыми
матрицами занятых блоков и индексных дескрипторов) с целью
восстановления потерянных связей. При увеличении размера дисков
вдвое, вдвое увеличивается и время, которое требуется для просмотра
всего диска. А при тех объемах, которых достигают современные диски,
особенно на серверах, время, необходимое для того, чтобы просмотреть
весь диск, стало недопустимо велико: ведь сервер в это время не
отзывается! Кроме того, нет гарантии, что все связи удастся
восстановить.
В журналируемых файловых системах для решения этой
проблемы применяют технику транзакций, развитую в теории баз данных.
Суть этой техники в том, что действие не считается завершенным, пока
все изменения не сохранены на диске. А чтобы сбои, происходящие в
течение времени, необходимого для завершения всех операций, не
приводили к необратимым последствиям, все действия и все изменяемые
данные протоколируются. Если сбой все-таки произойдет, то по этому
протоколу можно вернуть систему в безошибочное состояние.
Главное отличие в технике транзакций, применяемой
в базах данных, от аналогичной техники, применяемой в журналируемых
файловых системах, состоит в том, что в базах данных сохраняются в
протоколе как сами изменяемые данные, так и вся управляющая
информация, в то время как понятие транзакции в файловых системах
подразумевает сохранение только мета-данных: индексных дескрипторов
изменяемого файла, битовых карт распределения свободных блоков и
свободных индексных дескрипторов. Дело в том, что если сохранять все
изменяемые данные, то теряется смысл кэширования записи на диск и
уменьшается скорость дисковых операций. Мета-данные же, во-первых,
меньше по размеру, а, во-вторых, сохраняются в специально выделенной
области диска, что позволяет избежать чрезмерных затрат времени на
ведение протокола.
Файловые системы ext3fs и JFS являются
журналируемыми. Надо отметить, что ext3fs не является совершенно
новой разработкой, а является просто надстройкой над ext2fs,
обеспечивающей ведение журнала и организацию транзакций. Файловые
системы XFS и JFS являются открытыми версиями коммерческих файловых
систем.
В. Костромин, "16.7. Журналируемые файловые системы" - 14/09/2004
г.ВИТЕБСК
РЕСПУБЛИКА БЕЛАРУСЬ
|