ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6697
Скачиваний: 8
Вспомогательная память 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 раз за
два десятилетия считалось бы грандиозным, но в компьютерной промышленности
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)
Вспомогательная память 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-го уровня.
—Примеч. научн.ред.
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 сек-
тор, необходимо считывать информацию со всех дисков, для того чтобы опять вы-
числить четность, которая должна быть записана заново Вместо этого можно счи-
тать с диска прежние данные и прежнюю четность и из них вычислить новую
четность. Но даже с такой оптимизацией процесса при наличии небольших исправ-
лений требуется произвести два считывания и две записи.
Вспомогательная память
9 7
RAID-массив
уровня 5
Рис. 2.18.
RAID-массивы с нулевого по пятый уровень Резервные копии и диски
четности закрашены серым цветом