Към съдържанието

Тема 14 — Архитектура на дисковата памет

Дисковата памет е неизменна съставна част от входно-изходната подсистема на съвременните компютри и представлява основният носител на вторичната памет. Тя е най-отдалечена от централния процесор в логическия смисъл на йерархията на паметта (виж тема 13). Разликите в производителностите между процесора и дисковата памет не само продължават да съществуват, но и нарастват: производителността на процесорите се удвоява всяка година, плътността на паметите — на всеки две години, а плътността на записа — на всеки три години. Именно затова усъвършенстването на дисковата памет е не по-малко значимо от това на процесора.

1. Въведение

Развитието на дисковата памет се осъществява в два аспекта: технологичен и архитектурен. Архитектурният аспект не е алтернатива на технологичния, а го допълва независимо от него. Настоящата тема е съсредоточена върху архитектурния аспект.

2. Характеристика на работното натоварване

Обслужването на заявка към диска зависи от три основни компонента:

Време за достъп (seek time) — времето за позициониране на главите към търсената пътечка. Функция от ускорението при стартиране и броя пресечени пътечки.

Време за изчакване (rotational latency) — времето, необходимо за завъртане на диска до позицията, при която търсеният сектор е под главата. При типична скорост 7 200 об/мин пълният оборот отнема около 8 ms, а средното изчакване — около 4 ms. Дискове с 10 000 или 15 000 об/мин намаляват това значително.

Време за предаване (transfer time) — времето за физическо предаване на данните между диска и компютъра; функция от броя на предаваните байтове.

При неголеми блокове от данни времето за предаване представлява малка част от общото и шината (комуникационната среда) не се използва ефективно. Системи с висока производителност въвеждат механизъм, при който устройството освобождава шината по времe на позициониране, позволявайки съвместяване по времe на множество процедури за позициониране. Включването на буферна памет за пътечките позволява пълно запълване на буфера веднага след позициониране, след което данните се изпращат, когато шината е свободна.

За дадено работно натоварване съществуват три метрики:

  • Производителност — брой заявки за обслужване за единица време.
  • Време за изчакване — времето за обслужване на индивидуална заявка.
  • Пропускателна способност — количество данни, предавани между устройствата.

Суперкомпютрите изискват висока пропускателна способност и минимално латентно при работа с последователни масиви от данни. Системите за обработка на транзакции — напротив — изискват висока производителност (много кратки, случайни заявки) при умерено латентно. Транзакционните системи не са чувствителни към намаляване на времето за предаване, тъй като времето за позициониране и изчакване доминира.

3. Дискови матрици

3.1. Основни положения

Алтернативата на класическите методи за подобряване на производителността е използването на паралелизъм — обединяване на няколко физически диска в дискова матрица (disk array), работеща като един логически диск. Идеята е предложена от Patterson, Gibson и Katz от университета Бъркли, Калифорния, през 1987 г.

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

Основният недостатък е надеждността: с увеличаване броя на дисковете нараства интензивността на отказите. При постоянна интензивност на отказите и независими откази:

MTTF на дисковата матрица = MTTF на един диск / брой дискове

За повишаване на устойчивостта на откази се жертва пропускателна способност или капацитет чрез въвеждане на излишна (redundant) информация. Оттук произтича абревиатурата RAID (Redundant Array of Independent Discs) — матрица от независими дискове с излишък.

При отказ на диск, MTTR (Mean Time To Repair) се минимизира чрез поддържане на „горещ резерв” (hot spare), включващ се автоматично при отказ.

3.2. Нива на RAID

Диаграми на основните нива RAID

RAID 0 — разделяне на данните без излишък (striping). Данните се разпределят по множество дискове за максимална пропускателна способност.

3.2.1. Прости (основни) RAID нива

RAID 0 — Разделяне на данните (Striping)

Данните са разпределени по битове или блокове върху множество дискове. Не съдържа излишък — отказ на един диск води до загуба на всички данни. Осигурява най-висока производителност от всички нива, но нулева отказоустойчивост.

RAID 1 — Огледални дискове (Mirroring)

50% от дисковете съхраняват дублирана информация (G = C = D/2). Всеки запис се дублира на резервния диск. Две разновидности: с един контролер (производителността при запис се намалява наполовина) и с два контролера (дублиране, прилагано от Tandem Computers). Минимален брой дискове: 2.

RAID 2 — Разслоение по битове с код на Хеминг (Hamming ECC)

Данните се разслояват по битове, а за корекция на грешки се прилагат кодовете на Хеминг. При G = 10 диска се изискват C = ⌈log₂ 10⌉ = 4 контролни диска (71% ефективен капацитет). Тъй като всички съвременни SCSI дискове имат вградена ECC схема, RAID 2 е практически изместено от по-ефективните нива.

RAID 3 — Разслоение по байтове с един контролен диск

Данните се разслояват по байтове върху G диска, а единствен диск съхранява XOR-контролна информация (C = 1). Производителност при четене — равна на RAID 0. При запис единственият контролен диск е тесното място — опашката за записи расте бързо. Подходящо за суперкомпютри, не за транзакционни системи.

RAID 4 — Разслоение по блокове с един контролен диск

Подобно на RAID 3, но разслоението е на ниво блок (сектор). Контролната информация позволява възстановяване при отказ на произволен единичен диск. Нова четност = (стари данни XOR нови данни) XOR стара четност. Производителността при четене е отлична, но единственият контролен диск е ограничение при малки произволни записи. RAID 4 няма предимства пред RAID 5.

RAID 5 — Разслоение по блокове с разпределена четност

Подобно на RAID 4, но контролната информация е разпределена равномерно между всички дискове. Елиминира тесното място на RAID 4. Ако операциите за запис могат да се планират така, че обръщенията към данни и четност да са към различни дискове, е възможно паралелно изпълнение на (G+1)/2 записа. Осигурява еднакво добра производителност при четене и запис за малки и за големи обеми данни. Минимален брой дискове: 3, типично 5.

RAID 6 — Разслоение по блокове с двойна разпределена четност

Матрицата е двумерен масив — контрол по четност едновременно по редове и по стълбове. Позволява коригиране на откази на произволни два диска и много откази на три. При всеки логически запис реално се правят шест обръщения към диска. Подходящо за приложения с изключително високи изисквания за надеждност; не е подходящо за транзакционни системи или суперкомпютри поради голямото натоварване от записи.

RAID 7 — Асинхронно, кеширано разслоение

Не е отворен индустриален стандарт — търговски термин на Storage Computer Corporation. Базира се на RAID 3 и RAID 4, но включва голяма многонивова кеш памет и специализиран процесор в реално време. Осигурява висока производителност при произволни четения/записи, висока отказоустойчивост, но на висока цена.

3.2.2. Съставни RAID нива

Комбинирането на нива обединява техните предимства. Най-популярните са:

RAID 0+1 — огледална конфигурация на два набора с разделяне. Две групи дискове — едната с оригиналните данни (striped), другата с огледалните.

RAID 1+0 (RAID 10) — разделяне на данните върху множество огледални набори. Всяка от D/2 групи съдържа два диска. Осигурява по-добра отказоустойчивост и по-лесно възстановяване от RAID 0+1. Минимален брой дискове: 4.

3.3. Сравнение между нивата

НивоПроизводителностОтказоустойчивостЕфективен капацитет
RAID 0МаксималнаНула100%
RAID 1Добра при четенеОтлична50%
RAID 5Много добраДобра (1 диск)~(N-1)/N
RAID 6ДобраМного добра (2 диска)~(N-2)/N
RAID 10Много добраОтлична50%

RAID 2 рядко се използва днес; RAID 3 и RAID 4 нямат предимства пред RAID 5 при съвременни дискове.

3.4. Програмна или апаратна реализация

Програмна реализация — по-евтина, подходяща за малки системи. Цялата конфигурационна тежест е върху системния администратор. В някои случаи не могат да се реализират напълно предимствата на дадено ниво (напр. RAID 1 върху един физически диск не защитава при пълен отказ на контролера).

Апаратна реализация — по-скъпа, но предлага: горещо подмяна на дефектирал диск без спиране на работата; по-богата проверка за грешки; конфигурационен контрол, предпазващ от грешки на администратора. Почти всички апаратни RAID системи поддържат RAID 0, 1, 0+1 и 5.

4. Архитектура на контролерите

За функционирането на дискова матрица е необходима и промяна в архитектурата на контролерите. Шината между процесора и дисковите устройства включва три основни компонента:

Адаптер на шината (HBA — Host Bus Adapter) — управлява интерфейса между компютъра и дисковата матрица, обикновено с използване на DMA (Direct Memory Access) за предаване на данни.

Контролер на матрицата — осигурява интерфейса с отделните дискови контролери; включва буфери на паметта и схеми за изчисление на четността; реализира ключовата функция — съответствие между логически и физически сектори (например разместване на разслоени сектори при RAID 5).

Контролер на диска — реализира управление на физическо ниво; осигурява логически интерфейс с контролера на матрицата; отговора за ECC; включва буфер за пътечките; може да синхронизира позициониращите механизми при синхронни дискове.

Шината между контролера на матрицата и дисковите контролери може да бъде обща мултиплексна или отделна за всеки диск (напр. SCSI).

Организацията може да се разшири в двумерна матрица: контролерите на отделни дискове се заменят с контролери на редове от дискове. Дисковете в една колона образуват група; произволен диск може да се избира индивидуално или като част от групата.

За максимална отказоустойчивост цялото оборудване на контролерите и комуникационната среда се дублира (виж Фиг. 14-5). Такава организация гарантира, че единичен отказ в произволна точка на системата не може да доведе до загуба на данни.

5. Архитектура на дисковата памет в паралелните компютри с разпределена памет

При компютрите с разпределена памет входно-изходната подсистема е принципно различна от тази при компютрите с обща памет. Изгражда се разпределена входно-изходна подсистема от независими входно-изходни възли, всеки от които поддържа едно или повече дискови устройства.

Всеки входно-изходен възел действа като компонент от разпределен файлов сървър — посредник между дисковете и изчислителните процесори.

При свързването на външната памет са възможни два подхода:

Силно свързана система — всеки процесор от изчислителната среда има присъединен набор дискове. Малко латентно при прехвърляне между процесора и локалния диск; висока обща ширина на лентата. IBM LCAP-1/LCAP-2 са примери за тази организация.

Слабо свързана система — входно-изходните възли са разпределени по границата или вътре в изчислителната матрица. Увеличено латентно; намалена обща ширина на лентата. Два практически варианта: входно-изходни възли по периферията (Intel Touchstone Delta — 16 входно-изходни възли с по 2 диска по всяка страна на матрица 16×32) или вътре в матрицата (Intel Paragon — всеки диск реализира RAID 3).

Специфични проблеми при разпределената дискова памет:

  • Мащабируема производителност — производителността на входно-изходните устройства трябва да следва броя на процесорите.
  • Балансирано натоварване — определя се от съответствието между декомпозицията на данните на приложно ниво и разпределението им по дисковата матрица.
  • Увеличен комуникационен трафик — между изчислителните и входно-изходните възли; зависи от задачата, топологията на мрежата и балансирането на натоварването.
  • Ограничена ширина на лентата — определя се от броя и размера на каналите между изчислителната матрица и дисковите устройства.

Резюме

  • Производителността на дисковата подсистема е ограничаващ фактор за общата производителност на компютъра и нараства разликата спрямо процесорната скорост с времето.
  • Дисковите матрици (RAID) използват паралелизъм за увеличаване на пропускателната способност и/или отказоустойчивостта за сметка на капацитета.
  • RAID 0 осигурява максимална производителност без защита; RAID 1 — пълно дублиране; RAID 5 — разпределена четност с добър баланс цена/надеждност; RAID 6 — двойна защита.
  • Апаратната реализация на RAID е за предпочитане пред програмната за критични приложения, тъй като позволява горещо подмяна и по-пълноценно използване на нивото.
  • В паралелните компютри с разпределена памет дисковата подсистема е сама по себе си разпределена; балансирането на натоварването и мащабируемостта са основни проектни предизвикателства.