2011. Машбук (1114722), страница 56
Текст из файла (страница 56)
Гибкийлимит — это значение, которое устанавливается в виде лимита; с ним ассоциировано ещеодно значение, называемое счетчиком предупреждений (гибкий лимит превышатьможно, но после этого включается обратный счётчик предупреждений). При входепользователя в систему происходит подсчет соответствующего ресурса (числа именфайлов либо количества используемых пользователем блоков файловой системы). Есливычисленное значение не превосходит гибкий лимит, то счетчик предупрежденийсбрасывается на начальное значение, и пользователь продолжает свою работу. Если жевычисленное значение превосходит установленный гибкий лимит, то значение счетчикапредупреждений уменьшается на единицу, затем происходит проверка равенства егозначения нулю.
Если значение счётчика равно нулю, то вход пользователя в системублокируется, иначе (если значение больше нуля) пользователь получает предупреждениео том, что соответствующий гибкий лимит израсходован, после чего пользователь можетработать дальше. Таким образом, система позволяет пользователю привести свое«файловое пространство» в порядок в соответствии с установленными квотами.211Гибкий лимит блоковУчет использованияквот на блокиЖесткий лимит блоковИспользовано блоковСчетчик предупрежденийГибкий лимит числа файловУчет использованияквот на число файловЖесткий лимит числа файловИспользовано файловСчетчик предупрежденийРис. 113.
Квотирование пространства файловой системы.Рассмотренная модель имеет большую эффективность при использовании именнопары этих параметров. Если в системе реализован лишь гибкий лимит, то можнореализовать упоминавшуюся картину: пользовательский процесс может «забить» всесвободное пространство файловой системы. Данную проблему решает жесткий лимит.Если же в системе реализована модель лишь жесткого лимита, то возможны ситуации,когда пользователь получает отказ от системы, поскольку он «неумышленно» превзошелуказанную квоту (например, из-за ошибки в программе был сформирован очень большойфайл).4.1.10 Надежность файловой системыПонятие надежности файловой системы включает в себя множество требований,среди которых, в первую очередь, можно выделить то, что системные данные файловойсистемы должны обладать избыточной информацией, которая позволяла бы в случаеаварийной ситуации минимизировать ущерб (т.е.
минимизировать потерю информации)от этих сбоев.Минимизация потери информации при аварийных ситуациях может достигаться засчет использования различных систем архивирования, или резервного копирования.Архивирование может происходить как автоматически по инициативе некоторогопрограммного робота, так и по запросу пользователя. Но целиком каждый раз копироватьвсю файловую систему неэффективно и дорого. И тут перед нами встает одна из проблемрезервного копирования — минимизировать объем копируемой информации без потерикачества.
Для решения поставленной задачи предлагается несколько подходов. Вопервых, это избирательное копирование, когда намеренно не копируются файлы,которые заведомо восстанавливаются. К таким файлам могут быть отнесены исполняемыефайлы ОС, систем программирования, прикладных систем, поскольку считается, что вналичии есть дистрибутивные носители, с которых можно восстановить эти файлы (нофайлы с данными копировать, конечно же, придется). Также можно не копироватьисполняемые файлы, если для них имеется в наличии дистрибутив или исходных код,который можно откомпилировать и получить данный исполняемый файл. Также можно некопировать файлы пользователей определенных категорий (например, файлы студентов вмашинном зале, которые имеют небольшие объемы, - их можно достаточно легковосстановить, переписав заново, но количество этих файлов огромно, что повлечетогромные накладные расходы при архивировании).Следующая модель заключается в т.н.
инкрементном архивировании. Эта модельпредполагает создание в первое архивирование полной копии всех файлов — это т.н.мастер-копия (master-copy). Каждая следующая копия будет включать в себя только тефайлы, которые изменились или были созданы с момента предыдущего архивирования.212Также при архивировании могут использоваться дополнительные приемы, вчастности, компрессия. Но тут встает дилемма: с одной стороны сжатие данных приархивировании дает выигрыш в объеме резервной копии, с другой стороны компрессиякрайне чувствительна к потере информации. Потеря или приобретение лишнего бита всжатом архиве может повлечь за собой порчу всего архива.Еще одна проблема, которая может возникнуть при резервном копировании, — этокопирование на ходу, когда во время резервного копирования какого-то файлапользователь начинает с ним работать (модифицировать, удалять и т.п.).
Если дляпримера рассмотреть инкрементное архивирование, то мастер-копию стоит создать вполном отсутствии пользователей в системе (этот процесс зачастую занимает довольнопродолжительное время). Но последующие копии вряд ли удастся создавать в отсутствиипользователей, поэтому необходимо грамотно выбирать моменты для архивирования:понятно, что если большая часть пользователей работает в дневное время суток, топодобные операции стоит проводить в ночные часы, когда в системе почти никто неработает.Еще один полезный прием заключается в распределенном хранении резервныхкопий. Всегда желательно иметь две копии, причем храниться они должны в совершенноразных местах, чтобы не могла возникнуть ситуация, когда пожар в офисе уничтожаеткомпьютеры и все резервные копии, хранящиеся в этом офисе, иначе польза от резервногокопирования может оказываться нулевой.Среди стратегий копирования можно выделить физическое и логическоекопирование.
Физическое копирование заключается в поблочном копировании данных сносителя («один в один»). Понятно, что такой способ копирования неэффективен,поскольку копируются и свободные блоки. Следующей модификацией этого способастало интеллектуальное физическое копирования лишь занятых блоков. Так или иначе,но данная стратегия имеет проблему обработки дефектных блоков: сталкиваясь прикопировании с физически дефектным блоком, невозможно связать данный блок сконкретным файлом.
Альтернативой физическому копированию является логическаяархивация. Эта стратегия подразумевает копирование не блоков, а файлов (например,файлов, модифицированных после заданной даты).4.1.11 Проверка целостности файловой системыДалее речь пойдет о моделях организации контроля и исправления ошибочныхситуаций, связанных с целостностью файловой системы. Обратим внимание, что будетрассматриваться целостность именно файловой системы, а не файлов.
Если произошелсбой (например, сломался центральный процессор или оперативная память), тогарантированно потери будут, и эти потери будут двух типов. Во-первых, это потеряактуального содержимого одного или нескольких открытых файлов. Это проблема, но присоответствующей организации резервного копирования она разрешается. Втораяпроблема связана с тем, что во время сбоя может нарушиться корректность системнойинформации. Вторая проблема более существенна и требует более тонких механизмов еерешения.Для выявления непротиворечивости и исправления возможных ошибочныхситуаций файловая система использует избыточную информацию, т.е. данные тем илииным образом (явно или косвенно) дублируются. Далее рассмотрим организациюконтроля целостности блоков файловой системы.Рассмотрим модельный пример. В системе формируются две таблицы, каждая изкоторых имеет размеры, соответствующие реальному количеству блоков файловойсистемы.
Одна из таблиц называется таблицей занятых блоков, вторая — таблицейсвободных блоков. Изначально содержимое таблиц обнуляется.213На втором шаге система запускает процесс анализа блоков на предмет ихнезанятости. Для каждого свободного блока увеличивается на 1 соответствующая емузапись в таблице свободных блоков.На следующем шаге запускается аналогичный процесс, но уже для анализаиндексных узлов. Для каждого блока, номер которого встретился в индексномдескрипторе, увеличивается на 1 соответствующая ему запись в таблице занятых блоков.На последнем шаге запускается процесс анализа содержимого этих таблиц икоррекции ошибочных ситуаций.Рассмотрим, какие ситуации могут возникнуть, и посмотрим, как файловая системапоступает в том или ином случае.
Допустим, что рассматриваемая файловая системасостоит из шести блоков.Если при анализе таблиц для каждого номера блока сумма содержимого ячеек сданным номером дает 1, то считается, что система не выявила противоречий (Рис. 114).012345110101Таблица занятых блоков001010Таблица свободных блоковРис. 114. Проверка целостности файловой системы.