|
|||
Многоуровневые драйверы
53. Отказоустойчивость файловых систем.
· защита от сбоев и отказов аппаратуры · защита от ошибок программного обеспечения Диски и файловые системы, используемые для упорядоченного хранения данных на дисках, часто представляют собой последний «островок стабильности», на котором находит спасение пользователь после неожиданного краха системы, разрушившего результаты его труда, полученные за последние нескольких минут или даже часов, но не сохраненные на диске. Однако те данные, которые пользователь записывал в течение своего сеанса работы на диск, останутся, скорее всего, нетронутыми. Вероятность того, что система при сбое питания или программной ошибке в коде какого-либо системного модуля будет делать осмысленные действия по уничтожению файлов на диске, пренебрежимо мала. Поэтому при перезапуске операционной системы после краха большинство данных, хранящихся в файлах на диске, по-прежнему корректны и доступны пользователю. Коды и данные операционной системы также хранятся в файлах, что и позволяет легко ее перезапустить после сбоя, не связанного с отказом диска или повреждением системных файлов. Тем не менее диски также могут отказывать, например, по причине нарушения магнитных свойств отдельных областей поверхности. В данном разделе рассматриваются методы, которые повышают устойчивость вычислительной системы к отказам дисков за счет использования избыточных дисков и специальных алгоритмов управления массивами таких дисков. Другой причиной недоступности данных после сбоя системы может служить нарушение целостности служебной информации файловой системы, произошедшее из-за незавершенности операций по изменению этой информации при крахе системы. Примером такого нарушения может служить несоответствие между адресной информацией файла, хранящейся в каталоге, и фактическим размещением кластеров файла. Для борьбы с этим явлением применяются так называемые восстанавливаемые файловые системы, которые обладают определенной степенью устойчивости к сбоям и отказам компьютера (при сохранении работоспособности диска, на котором расположена данная файловая система). Комплексное применение отказоустойчивых дисковых массивов и восстанавливаемых файловых систем существенно повышают такой важный показатель вычислительной системы, как общая надежность. 54. Многоуровневые драйверы Драйвер устройстваявляется файлом PE-формата, таким же как обычные exe и dll . Только загружается и работает по другим правилам. Драйверы можно рассматривать как DLL режима ядра, предназначенные для выполнения задач не решаемых из пользовательского режима. Принципиальная разница здесь (не считая уровня привилегий) в том, что мы не сможем напрямую обращаться к драйверу, ни к его коду, ни к его данным, а будем пользоваться специальным механизмом предоставляемым диспетчером ввода-вывода ( Input / Output Manager ). Диспетчер ввода-вывода обеспечивает среду для функционирования драйверов, а также предоставляет механизмы для их загрузки, выгрузки и управления ими. Многоуровневые драйверы Большинство драйверов управляющих физическими устройствами являются многоуровневыми ( layered drivers ). Обработка запроса ввода-вывода разделяется между несколькими драйверами. Каждый выполняет свою часть работы. Например, запрос на чтение файла передается драйверу файловой системы, который, выполнив некоторые операции (например, разбиение запроса на несколько частей ), передает его "ниже" - драйверу диска, а тот, в свою очередь, отправляет запрос драйверу шины. Кроме того между этими драйверами можно добавить любое количество драйверов-фильтров (например, шифрующих данные). Выполнив запрос нижестоящий драйвер ( lower-level driver ) передает его результаты "наверх" - вышестоящему ( higher-level driver ). 55. Дисковый кэш Во многих операционных системах запросы к блок-ориентированным внешним устройствам с прямым доступом (например, диски) перехватываются промежуточным программным слоем — подсистемой буферизации, называемой также дисковым кэшем. Дисковый кэш располагается между слоем драйверов файловых систем и блок-ориентированными драйверами. При поступлении запроса на чтение некоторого блока диспетчер дискового кэша просматривает свой буферный пул, находящийся в системной области оперативной памяти, и если требуемый блок имеется в кэше, то диспетчер копирует его в буфер запрашивающего, процесса. Операция ввода-вывода считается выполненной, хотя физического обмена с устройством не происходило, при этом выигрыш во времени доступа к файлу очевиден.
Дисковый кэш +повышение производительности дисковых операций -потенциальное снижение надежности • Традиционный дисковый кэш • основан на автономном диспетчере кэша, обслуживающем набор буферов системной памяти и при необходимости самостоятельно организующим загрузку блока в буфер, не обращаясь за помощью к другим подсистемам ОС. • Дисковый кэш на основе виртуальной памяти • использует ее возможности по отображению файлов на память. +функции диспетчера дискового кэша сокращаются, уменьшается объем ядра ОС, повышается его надежность. • -во многих файловых системах существуют служебные данные, которые не относятся к файлам, и следовательно, не могут кэшироваться. Поэтому в таких случаях наряду с кэшем на основе виртуальной памяти применяется и традиционный дисковый кэш.
56. Избыточные дисковые подсистемы RAID. Redundant Array of Inexpensive Disks, избыточный массив недорогих дисков RAID (Redundant Array of Inexpensive Disks) – класс устройств ввода-вывода, представляющих массив дисков с избыточностью. Используется для увеличения производительности и надежности дисковых операций. RAID-массив может быть создан на базе нескольких дисковых устройств, управляемых обычными контроллерами, в этом случае в операционной системе должен быть установлен специальный драйвер. Может быть вариант реализации технологии RAID с использованием исключительно аппаратных средств. Для этого в системе устанавливается RAID-контроллер для управления массивом дисков. В любом случае весь набор дисков выглядит с точки зрения операционной системы как один большой дисковой накопитель. В RAID 0 общий для дискового устройства контроллер при выполнении операции записи расщепляет данные на блоки и передает их параллельно на все диски, при этом первый блок данных записывается на первый диск, второй – на второй и т. д. по кругу. RAID 1 называется зеркальным набором. Логическое устройство в этом случае образуется на основе одной или нескольких пар дисков, в которых один диск является основным, а другой (зеркальный) дублирует информацию, находящуюся на основном диске. При записи информация поступает на оба диска одновременно. При чтении может использоваться любая копия. RAID 2 расщепляет данные побитно: первый бит записывается на первый диск, второй – на второй и т. д. Отказоустойчивость реализуется путем использования для кодирования отказоустойчивого кода Хемминга, который обеспечивает исправление однократных ошибок и обнаружение двукратных ошибок. Избыточность обеспечивается за счет нескольких дополнительных дисков для хранения кодов коррекции ошибок. В RAID 3 для каждого слова данных подсчитывается один байт четности, записываемый на отдельный диск. Диск четности является резервным. Если какой-либо диск выходит из строя, то данные с остальных дисков плюс данные о четности резервного диска позволяют не только определить, какой из дисков вышел из строя, но и восстановить утраченную информацию. Организация RAID 4 аналогична RAID 3, расщепляются на дисках не побайтно, а блоками. Для хранения контрольной информации также используется один дополнительный диск. Если любой из дисков выйдет из строя, потерянные байты могут быть восстановлены при помощи той же операции сложения по модулю два. В RAID 5 биты четности равномерно распределены по всем дискам. Восстановление вышедшего из строя диска в этом случае аналогично RAID 4. RAID 10 представляет собой комбинированный способ при котором данные расщепляются (RAID 0) и зеркально копируются (RAID 1) без вычисления контрольных сумм.
|
|||
|