|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Yar Tikhiy 2:5020/118 07 Jul 2004 13:13:10 To : "Sergey A. Cherukhin" Subject : Re: Опа... softupdates -------------------------------------------------------------------------------- >> Softupdates, >> очевидно, помогает только от несвоевременных перезагрузок (сбой >> питания, задетый ногой reset, kernel panic и т.п.) SAC> Действительно ли Softupdates помогает при _всех_ перезагрузках SAC> по питанию, reset'у и т.п.? Чтобы понять ответ на этот вопрос, надо а) представлять, как работает softupdates и б) определиться, что значит "помогает". Ключевая идея softupdates состоит вот в чем: надо записывать мета-данные на диск в такой последовательности, чтобы после неожиданного сбоя все указатели в структурах на диске были валидными. Значит, надо сперва выделить и инициализировать дисковый объект, и только затем записать указатель на него; и наоборот, надо сначала убрать любые указатели на объект, а потом освободить его. Это относится к дисковым индексам (i-node), блокам данных и т.п. Очевидно, что после сбоя могут оставаться выделенные объекты, на которые нет ссылок, но такого рода дефекты можно чинить на лету, просто освобождая эти объекты. В то же время, файловая структура остается целостной. Таким образом, softupdates зависит от двух условий. Во-первых, блоки должны записываться на диск в той последовательности, как ОС передает их контроллеру. Hо современные контроллеры и диски могут сами переупорядочивать запись блоков для оптимизации перемещения головок и т.п. (хотя tagged queuing позволяет ОС это отслеживать). Во-вторых, предполагается, что сбой не может прервать посередине операцию записи блока на диск. Умеют ли диски завершать текущую запись блока при сбое питания, я не знаю (хотя приятно было бы на это надеяться :-) Если эти условия выполняются, то softupdates помогает ровно в одном: не будет дефектов в файловой структуре -- ее можно монтировать даже без fsck. Hо само ее состояние может соответствовать любому моменту времени в прошлом. Так что целостности данных никто не гарантирует. В частности, структурированные файлы (базы данных и т.п.) с точки зрения приложения, вероятно, будут битые. SAC> Какие телодвижения нужно произвести, чтобы при перезагрузке при пропадании SAC> питания гарантировать целостность файловой системы и минимизировать потери SAC> данных? При этом предполагается, что запись на диск идет очень активно, SAC> почти непрерывно. Буду неоригинален: надо поставить блок бесперебойного питания. -- Yar --- ifmail v.2.15dev5 * Origin: Chemistry Department of Moscow State University (2:5020/118) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/11683704a19a3.html, оценка из 5, голосов 10
|