ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6697

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Вспомогательная память 93

Поскольку у дисков SCSI высокая скорость передачи данных, они использу-

ются в большинстве рабочих станций UNIX, которые производятся Sun, HP, SGI

и другими компаниями. Эти диски также встраиваются в компьютеры Macintosh
и сетевые серверы Intel.

SCSI — это не просто интерфейс жесткого диска. Это шина, к которой могут

подсоединяться контроллер SCSI и до семи дополнительных устройств. Ими мо-
гут быть один или несколько жестких дисков SCSI, компакт-диски, устройства для

записи компакт-дисков, сканеры, накопители на магнитной ленте и другие пери-

ферийные устройства. Каждое устройство имеет свой идентификационный код от
О до 7 (до 15 для 16-битных версий). У каждого устройства есть два разъема: один —

входной, другой — выходной. Кабели соединяют выходной разъем одного устрой-
ства с входным разъемом следующего устройства и т. д. Это похоже на соединение

лампочек в елочной гирлянде. Последнее устройство в цепи должно завершать цепь,
чтобы отражения от концов шины не искажали другие данные в шине. Обычно

контроллер помещается на встроенной карте и является первым звеном цепи, хотя
это не обязательно.

Самый обычный кабель для 8-битного SCSI имеет 50 проводов, 25 из которых

(заземления) спарены с 25 другими, чтобы обеспечить хорошую помехоустойчивость,

которая необходима для высокой скорости работы. Из 25 проводов 8 используют-
ся для данных, 1 — для контроля четности, 9 — для управления, а оставшиеся сохра-
няются для будущего применения. 16-битным и 32-битным устройствам требует-
ся еще 1 кабель для дополнительных сигналов. Кабели могут быть несколько метров

в длину, чтобы обеспечивать связь с внешними устройствами (сканерами и т. п.).

Контроллеры и периферийные устройства SCSI могут быть или задатчиками,

или приемниками. Обычно контроллер, действующий как задатчик, посылает
команды дискам и другим периферийным устройствам, которые, в свою очередь,

являются приемниками. Команды представляют собой блоки до 16 байтов, кото-

рые сообщают приемнику, что нужно делать. Команды и ответы на них оформля-
ются в виде фраз, при этом используются различные сигналы контроля для раз-
граничения фраз и разрешения конфликтных ситуаций, которые возникают, если
несколько устройств одновременно пытаются использовать шину. Это очень важ-
но, так как SCSI позволяет всем устройствам работать одновременно, что сильно
повышает производительность среды, поскольку активизируется сразу несколько
процессов (в качестве примеров можно привести UNIX или Windows NT). В сис-
темах IDE и EIDE если работает одно из устройств, другие не могут действовать
одновременно с ним.

RAID-массивы

Производительность процессоров за последнее десятилетие сильно возросла, уве-

личиваясь почти вдвое каждые 1,5 года. Однако с производительностью дисков
дело обстоит иначе. В 70-х годах среднее время поиска в мини-компьютерах со-
ставляло от 50 до 100 миллисекунд. Сейчас время поиска составляет около 10 мил-
лисекунд. Во многих отраслях технической промышленности (например, в авто-

мобильной или авиационной) увеличение производительности в 5 или 10 раз за

два десятилетия считалось бы грандиозным, но в компьютерной промышленности


background image

94 Глава 2 Организация компьютерных систем

эти цифры вызывают недоумение Таким образом, разрыв между производитель-
ностью процессоров и дисков становился все больше и больше

Как мы уже видели, для тою чтобы увеличить скорость работы процессора,

используется параллельная обработка данных Уже на протяжении многих лет

разным людям приходит в голову мысль, что было бы неплохо сделать так, чтобы

устройства ввода-вывода также могли работать параллельно В 1988 году Паттер-

сон, Гибсон и Кате в своей статье предложили 6 разных типов организации дисков,
которые могли использоваться для увеличения производительности, надежности

или того и другого Эти идеи были сразу заимствованы производителями компью-
теров, что привело к появлению нового класса устройств ввода-вывода под на-
званием

 RAID

 Паттерсон, Гибсон и Кате определили RAID как

 Redundunt Array

of Inexpensive Disks

 — «избыточный массив недорогих дисков», но позже буква I

в аббревиатуре стала заменять слово Independent (независимый) вместо изначаль-
ного слова Inexpensive (недорогой) Может быть, в этом случае у производителей
появилась возможность выпускать дорогостоящие диски? RAID-массиву проти-

вопоставлялся

 SLED (Single Large Expensive Disk

 — «один большой дорогостоя-

щий диск»)

Основная идея RAID состоит в следующем Рядом с компьютером (обычно боль-

шим сервером) устанавливается бокс с дисками, контроллер диска замещается
RAID-контроллером, данные копируются на RAID-массив, а затем производятся

обычные действия Иными словами, операционная система воспринимает RAID
как SLED, при этом у RAID-массива выше производительность и надежность

Поскольку SCSI-диски обладают высокой производительностью при довольно

низкой цене, при этом один контроллер может управлять несколькими дисками
(до 7 дисков на 8-битных моделях SCSI и до 15 на 16-битных), то естественно,

что большинство устройств RAID состоит из RAID SCSI-контроллера и бокса

SCSI-дисков, которые операционная система воспринимает как один большой диск

Таким образом, чтобы использовать RAID-массив, не требуется никаких измене-

ний в программном обеспечении, что очень выгодно для многих системных адми-
нистраторов

Системы RAID имеют несколько преимуществ Во-первых, как мы уже сказа-

ли, программное обеспечение воспринимает RAID как один большой диск Во-вто-
рых, данные на всех RAID распределены по дискам таким образом, чтобы можно
было осуществлять параллельные операции Несколько различных способов рас-

пределения данных были предложены Паттерсоном, Гибсоном и Катсом Сейчас
они известны как RAID-массив нулевого уровня, RAID-массив первого уровня
ит д до RAID-массива пятого уровня Кроме того, существует еще несколько уров-
ней, которые мы не будем обсуждать Термин «уровень» несколько неудачный,
поскольку здесь нет никакой иерархической структуры Просто существует б раз-
ных типов организации дисков

RAID-массив нулевого уровня показан на рис 2 18, а Он представляет собой

виртуальный диск, разделенный на полосы, зоны (strips) no k секторов каждая,

при этом секторы с 0 по к-1 — полоса 0, секторы с

 к

 по 2к-1 — полоса 1 и т д Для

к=1 каждая полоса — это сектор, для к=2 каждая полоса — это два сектора и т д

RAID-массив нулевого уровня последовательно записывает полосы по кругу, как

показано на рис 2 18,

 а

 На этом рисунке изображен RAID-массив с 4 дисками

Такое распределение данных по нескольким дискам называется

 разметкой (striping)


background image

Вспомогательная память 95

Например, если программное обеспечение вызывает команду для считывания блока

данных, состоящего из четырех последовательных полосок и начинающегося на

границе между полосками, то RAID-контроллер разбивает эту команду на 4 от-

дельные команды, каждую для одного из четырех дисков, и выполняет их парал-
лельно. Таким образом, мы получаем устройство параллельного ввода-вывода без

изменения программного обеспечения.

RAID-массив нулевого уровня лучше всего работает с большими запросами,

чем больше запрос, тем лучше. Если полосок в запросе больше, чем дисков в RAID-
массиве, то некоторые диски получают по несколько запросов, и как только такой

диск завершает выполнение первого запроса, он приступает к следующему. Зада-

ча контроллера состоит в том, чтобы разделить запрос должным образом, послать
нужные команды соответствующим дискам в правильной последовательности, а

затем правильно записать результаты в память. Производительность при таком

подходе очень высокая, и осуществить его несложно.

RAID-массив нулевого уровня хуже всего работает с операционными систе-

мами, которые время от времени запрашивают данные по одному сектору за раз.

В этом случае результаты будут, конечно, правильными, но не будет никакого па-

раллелизма и, следовательно, никакого выигрыша в производительности. Другой
недостаток такой структуры состоит в том, что надежность у нее потенциально

ниже, чем у SLED. Рассмотрим RAID-массив, состоящий из четырех дисков, на
каждом из которых могут происходить сбои в среднем каждые 20 000 часов. Сбои
в таком RAID-массиве будут случаться примерно через каждые 5000 часов, при
этом все данные могут быть утеряны. У SLED сбои происходят также в среднем
каждые 20 000 часов, но так как это один диск, его надежность в 4 раза выше.

Поскольку в описанной разработке нет никакой избыточности, это не настоящий

1

RAID-массив.

Следующая разновидность — RAID-массив первого уровня. Он показан на

рис. 2.18,

 б

 и, в отличие от RAID-массива нулевого уровня, является настоящим

RAID-массивом

2

. Он дублирует все диски, таким образом получается 4 изначаль-

ных диска и 4 резервные копии. При записи информации каждая полоса записы-
вается дважды. При считывании может использоваться любая из двух копий, при
этом одновременно может происходить загрузка информации с большего количе-
ства дисков, чем у RAID-массива нулевого уровня. Следовательно, производитель-
ность при записи будет такая же, как у обычного диска, а при считывании — гораздо
выше (максимум в два раза). Отказоустойчивость отличная: если происходит сбой
на диске, вместо него используется копия. Восстановление состоит просто в уста-
новке нового диска и копировании всей информации с резервной копии на пего.

В отличие от нулевого и первого уровней, которые работают с полосами секто-

ров, RAID-массив второго уровня имеет дело со словами, а иногда даже с байтами.

Представим, что каждый байт виртуального диска разбивается на два кусочка по

4 бита, затем к каждому из них добавляется код Хэмминга, и таким образом полу-
чается слово из 7 битов, у которого 1,2 и 4 — биты четности. Затем представим, что
7 дисков, изображенные на рис. 2.18,

 в,

 были синхронизированы по позиции рыча-

1

 На самом деле настоящий, но нулевого уровня. —

 Примеч. научи, ред.

2

 На рис. 2.18, б изображен RAID уровня 0+1, а не 1-го уровня.

 —Примеч. научн.ред.


background image

96 Глава 2 Организация компьютерных систем

га и позиции вращения. Тогда было бы возможно записать слово из 7 битов с ко-

дом Хэмминга на 7 дисков, по 1 биту на диск

Подобная схема использовалась в так называемых думающих машинах СМ-2.

К 32-битному слову с данными добавлялось 6 битов четности (код Хэмминга). В ре-

зультате получалось 38-битное кодированное слово, к которому добавлялся допол-

нительный бит четности, и это слово записывалось на 39 дисков. Общая произво-

дительность была огромной, так как одновременно могло записываться 32 сектора
данных При утрате одного из дисков проблем также не возникало, поскольку по-

теря одного диска означала потерю одного бита в каждом 39-битном слове, а с этим

код Хэмминга справлялся моментально.

С другой стороны, эта схема требует, чтобы все диски были синхронизированы

по вращению Кроме того, она имеет смысл, только если имеется достаточно боль-

шое количество дисков (даже при наличии 32 дисков для данных и 6 дисков для

битов четности накладные расходы составляют 19 процентов). К тому же требует-

ся большая работа контроллера, поскольку он должен вычислять контрольную

сумму кода Хэмминга каждый раз при передаче бита.

RAID-массив третьего уровня представляет собой упрощенную версию RAID-

массива второго уровня. Он изображен на рис. 2.18, г. Здесь для каждого слова дан-

ных вычисляется 1 бит четности и записывается на диск четности. Как и в RAID-

массиве второго уровня, диски должны быть точно синхронизированы, поскольку
каждое слово данных распределено на несколько дисков.

На первый взгляд может показаться, что один бит четности только обнаружи-

вает, но не исправляет ошибки. Если речь идет о случайных необнаруженных ошиб-
ках, это наблюдение верно Однако если речь идет о сбое на диске, бит четности

обеспечивает исправление 1-битной ошибки, поскольку позиция неправильного

бита известна. Если происходит сбой, контроллер выдает информацию, что все

биты равны 0 Если в слове возникает ошибка четности, бит с диска, на котором

произошел сбой, должен быть 1, и следовательно, он исправляется. Хотя RAID-
массивы второго и третьего уровней обеспечивают очень высокую скорость пере-

дачи данных, число запросов устройств ввода-вывода в секунду не больше, чем

при наличии одного диска.

RAID-массиавы четвертого и пятого уровней опять работают с полосами, а не

со словами с битами четности, и не требуют синхронизации дисков RAID-массив

четвертого уровня (см. рис. 2.18,

 д)

 устроен так же, как RAID-массив нулевого уров-

ня, с тем различием, что у RAID-массива четвертого уровня имеется дополнитель-
ный диск, на который записываются полосы четности Например, пусть каждая
полоса состоит из к байтов Все полосы должны находиться в отношении «исклю-
чающего ИЛИ», и полоса четности для проверки этого отношения также должна

состоять из к байтов Если происходит сбой на диске, утраченные байты могут быть

вычислены заново при использовании информации с диска четности

Такая разработка предохраняет от потерь на диске, но обладает очень низкой

производительностью в случае небольших исправлений. Если изменяется 1 сек-

тор, необходимо считывать информацию со всех дисков, для того чтобы опять вы-
числить четность, которая должна быть записана заново Вместо этого можно счи-
тать с диска прежние данные и прежнюю четность и из них вычислить новую
четность. Но даже с такой оптимизацией процесса при наличии небольших исправ-

лений требуется произвести два считывания и две записи.


background image

Вспомогательная память

9 7

RAID-массив

уровня 5

Рис. 2.18.

 RAID-массивы с нулевого по пятый уровень Резервные копии и диски

четности закрашены серым цветом