Руководство FreeBSD


Дополнительная информация о Soft Updates - часть 3


Файловая система находится в том состоянии, в котором она была за 30-60 секунд до сбоя. Используемый алгоритм гарантирует, что все используемые ресурсы маркированы соответствующим образом в своих областях: блоки и индексные дескрипторы. После сбоя могут остаться только ошибки, выделения ресурсов, они помечаются как ``используемые'', хотя на самом деле ``свободны''. fsck(8) разбирается в ситуации и освобождает более не используемые ресурсы. После сбоя система может быть безопасно смонтирована с опцией mount -f. Для освобождения ресурсов, которые могут не использоваться, в дальнейшем потребуется запустить fsck(8). Эта идея лежит в основе background (фоновая) fsck: во время запуска системы записывается только снимок файловой системы. Все системы могут быть смонтированы в ``грязном'' состоянии, и система загружается в многопользовательский режим. Затем, фоновые fsck ставятся в очередь для всех систем, где это требуется, чтобы освободить неиспользуемые ресурсы. (Файловые системы, где не используются Soft Updates, все еще требуют запуска fsck в обычном режиме).

Преимущество этого способа в том, что обновления метаданных происходят почти так же быстро, как при асинхронных обновлениях (т.е. быстрее, чем при журналировании, когда метаданные записываются дважды). Недостаток в сложности кода (подразумевающим больший риск появления ошибок в области, где вероятность потери данных пользователя особенно высока) и в более высоких требованиях к объему памяти. К тому же могут возникнуть некоторые странные на первый взгляд ситуации. После сбоя состояние файловой системы несколько более ``старое''. В ситуации, когда стандартный способ синхронизации оставит несколько файлов нулевой длины после выполнения fsck, в файловой системе с Soft Updates их не останется вовсе, поскольку ни метаданные, ни содержимое файлов не были записаны на диск. Дисковое пространство не будет освобождено пока обновления не будут записаны на диск, что может занять некоторое время после выполнения rm. Это может повлечь проблемы при установке большого количества файлов на файловую систему, где не хватает места для помещения всех файлов дважды.




Начало  Назад  Вперед