The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Пояснение принципов работы Softupdates в FreeBSD (freebsd ufs fs )


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: freebsd, ufs, fs,  (найти похожие документы)
Date: Wed, 07 Jul 2004 13:13:10 +0600 From: Yar Tikhiy <yar@comp.chem.msu.su.> Newsgroups: ftn.ru.unix.bsd Subject: Пояснение принципов работы Softupdates в FreeBSD >> Softupdates, >> очевидно, помогает только от несвоевременных перезагрузок (сбой >> питания, задетый ногой reset, kernel panic и т.п.) SAC> Действительно ли Softupdates помогает при _всех_ перезагрузках SAC> по питанию, reset'у и т.п.? Чтобы понять ответ на этот вопрос, надо а) представлять, как работает softupdates и б) определиться, что значит "помогает". Ключевая идея softupdates состоит вот в чем: надо записывать мета-данные на диск в такой последовательности, чтобы после неожиданного сбоя все указатели в структурах на диске были валидными. Значит, надо сперва выделить и инициализировать дисковый объект, и только затем записать указатель на него; и наоборот, надо сначала убрать любые указатели на объект, а потом освободить его. Это относится к дисковым индексам (i-node), блокам данных и т.п. Очевидно, что после сбоя могут оставаться выделенные объекты, на которые нет ссылок, но такого рода дефекты можно чинить на лету, просто освобождая эти объекты. В то же время, файловая структура остается целостной. Таким образом, softupdates зависит от двух условий. Во-первых, блоки должны записываться на диск в той последовательности, как ОС передает их контроллеру. Hо современные контроллеры и диски могут сами переупорядочивать запись блоков для оптимизации перемещения головок и т.п. (хотя tagged queuing позволяет ОС это отслеживать). Во-вторых, предполагается, что сбой не может прервать посередине операцию записи блока на диск. Умеют ли диски завершать текущую запись блока при сбое питания, я не знаю (хотя приятно было бы на это надеяться :-) Если эти условия выполняются, то softupdates помогает ровно в одном: не будет дефектов в файловой структуре -- ее можно монтировать даже без fsck. Hо само ее состояние может соответствовать любому моменту времени в прошлом. Так что целостности данных никто не гарантирует. В частности, структурированные файлы (базы данных и т.п.) с точки зрения приложения, вероятно, будут битые. SAC> Какие телодвижения нужно произвести, чтобы при перезагрузке при пропадании SAC> питания гарантировать целостность файловой системы и минимизировать потери SAC> данных? При этом предполагается, что запись на диск идет очень активно, SAC> почти непрерывно. Буду неоригинален: надо поставить блок бесперебойного питания. -- Yar

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру