Karh09 13

13. Твърд магнитен диск. Организация на данните и операции изпълнявани от дисковете. Повишаване производителността. Масиви.


страницата се нуждае от дописване/преглеждане


Характеристики на входно-изходните устройства. (CRT - монитор с лъчева тръба)

untitled48.JPG
Мишките и клавиатурите са с много нисък пренос на данни.

Структура на твърдия диск

untitled49.JPG

1-20 плочи (информация от двете страни)
1-4 глава за всяка работна страна на всяка плоча
500-2500 писти на плоча
32-128 сектора на писта
512-2048 байта за сектор
4-300 GB големина
3600-15000 - оборота в минута (RPM)

плочи, шпиндел, глави, карета, писти, корпус

Най-важното устройство в конфигурацията на компютъра е магнитния диск. Той е част от йерархията на паметта и като такъв е задължителен. Състои се от метални дисковидни плочи. Повърхността на плочата е покрита със специално метално-оксидно покритие с феромагнитни свойства, които имат хистерезисен цикъл на намагнитване. Тази "смес" има 2 устойчиви състояния. Молекулите на този материал се разпределят по повърхността на метала и образуват домейн с осезаем магнитен поток. Промяната в магнитния поток може да индуцира слаб електричен сигнал. Когато се намагнетизира един домейн той помни посоката на намагнетизирането. Намагнетизирането е стабилно и трае поне 50 год. Домейните могат да се намагнетизират и в двете посоки.
untitled50.JPG
Когато тока се движи се създава една или друга посока на магнитния поток. Ако над домените се движи една намотка то в краищата на намотката се индуцира слаб ток и протича слаб електричен поток. Той се получава при преминаване от един домейн при обратно намагнетизиран домейн. Тази намотка всъщност е главата. Състои се от подковообразна структура, около която има тънък проводник.
Шпинделът е оста, около която се въртят дисковете. На всеки диск може да има до 2 работни повърхности. Към всяка работна повърхност има четяща/записваща глава. При твърдите плочи главите са летящи, т.е. профилът на главата е със специален радиус и при въртенето на диска плочата увлича газовите молекули под нея и в близост до главата се образува вятър, който при съприкосновението си с нея образува подемна сила, която облъсква главата нагоре от плочата. От горе пък има пружина, която предпазва главата от прекалено издигане. Така винаги се поддържа дистанция от 1-2 микрометъра и няма триене, което позволява по-бързо въртене (не както при магнитните ленти).
untitled51.JPG
Що се отнася до въртенето - най-бавните дискове са 2400 обората. След това следват 3600-5400-7200-10000-15000 RPM.
Всички глави са свързани в карета и се движат заедно. Когато се изключи захранването на диска главите се отдръпват навън, за да се избегне стържене. Остана само шпинделът, който след известно време спира. Ако глава опре в плочата, то тогава и главата и плочата се надраскват и стават наизползваеми.
Дисковете се затварят в херметическа камера, в която въздухът обикновенно се заменя от инертен газ (защото инертните газове най-общо казано не участват в химични реакции и остават непроменени във времето, а не както въздухът, който променя свойствата си със времето :)). Днес дисковете са от тип Уинчестър, при които главите и плочите са затворени херметически и е много трудно да се оправи развален хард. Диаметърът на стандартния диск е 3.5'', като за нуждите на преносимите устройства навлизат и 2.5''.
При въртене главите заемат точно фиксирани позиции по радиуса на диска. Всяка такава позиция определя една писта. Пистите от всички дискове на една вертикална повърхност образуват цилиндър. Бр. глави х бр. цилиндри = общ брой писти на диска. (тук е по-правилно да се каже брой работни повърхности по брой цилиндри, защото на една работна повърхност може да има повече от 1 глава, с цел по-малко seek (най-близката глава се мести))
Шпинделът винаги се върти с една и съща скорост при всички дискове. Щом се достигне тази нормална скорост (при стартиране) влиза и каретата. Ъгловата скорост на диска е една и съща, но линейната на различните писти е различна. Външните писти са с по-бърза линейна скорост, вътрешните - по-ниска. Оттук - секторите във външните писти са по-разредени, вътрешните - по-нагъсто. Отначало всички писти са имали един и същ брой сектори (еднакъв капацитет). В момента на вътрешните писти има по-малко сектори. Броят сектори не е константен, но размерът на всеки един от тях е.
Дисковете могат да започнат обработка на информация само от началото на пистата. Когато искаме да прочетем 5ти сектор винаги започваме от 1ви докато стигнем 5ти. Така достъпът до секторите е последователен. Между секторите в пистата има служебно разстояние и при висока скорост на въртене то нараства. Това е така за да може при последователно четене на сектори да не се подмине търсения сектор. Номерата на секторите се слагат логически последователно.
Има два начина да се избегне поставянето на голямо служебно разстояние между отделните сектори.

  • логически последователните сектори върху диска се поставят през няколко физически сектора (default 4). Така при 2 операции за четене на последователни сектори, няма опасност контролера да не успее да даде втората команда преди главата да е започнала да чете втория сектор (т.е да се наложи един пълен оборот преди да започне четенето на втория).
  • използва се кеш, като при четене на даден сектор се прочита цялата пътека, и се записва в кеша. Предимство на използването на кеш е наличието на всички сектори от дадена пътека само със едно завъртане на диска. Друго предимство е, че при нужда от четене на някой сектор, първо се проверява наличието му в кеша, и само ако не бъде намерен се извършва физическо четене от самия хард. Недостатък е, че при нужда от запис на един сектор се прочита цялата пътека в кеша, след това се променя съответния сектор в кеша, и после цялата (вече модифицирана) пътека се записва физически върху работната повърхност.

В момента хард дисковете използват главно подхода с кеша, заради по-голямото бързодействие.

Характеристики на диска

t_seek - време за позициониране. Каретата с главите знае къде се намира в даден момент, изчислява се къде е новият цилиндър и главите се насочват към него. В началото скоростта на движение е голяма, но в края намалява - движението не е равномерно. Определя се t_avg, време за позициониране между две писти от порядъка на 9 ms. За 3.5''-те дискове максималното време за позициониране е около 20 ms, a между 2 съседни писти - 1 ms. Когато необходимите ни сектори са на една и съща писта нямаме t_seek - затова е по-добре информацията от един файл да бъде записана в един цилиндър. За да се улесни работата на контролера и на операционната система, диска предоставя интерфейс за запис на данни в определен сектор (т.е има номера на сектори, не пътеки, цилиндри и други подобни). Секторите с поредни номера се нареждат на една пътека (а в по-глобален план - на един цилиндър, и съответно на съседни цилиндри). Така ако операционната система записва даден файл във сектори с последователни номера, може да е сигурна, че прочитането на този файл ще бъде максимално бързо.
t_rotation - след позициониране на главата тя е попадната в случайно положения спрямо пистата (т.е не е позиционирана на първия сектор на тази писта). Това е времето, за което каретата ще се добере до началото на пистата (или по-точно - времето, за което диска ще се завърти толкова, че главата да застане на началото на пътеката). Най-тежкият случай е когато точно се е подминало началото на пистата и трябва да се чака 1 цял оборот. Средният случай е когато главата е в средата на пистата - т.е средно се чака половин оборот.
t_transfer - времето, за което един сектор се чете от главата. Зависи от въртенето, плътността…
t_controller - времето, за което секторът е в контролера, за да му се изчисли ECC, буфериран е и заминава по шината. Максимално е 1 микросекунда.
t_queuing - време за стоене по опашката (ако контролерът работи с опашка).
При нормална реализация времето за достъп до паметта в харддиска е около милион пъти по-бавно от това за ОП. :) Капацитетът на диска зависи от броя сектори на писта, т.е. от плътността на битовете върху пистата. Друг начин за увеличаване на големината е намаляване на разстоянието между пистите. Но ако са много близо пистите една до друга, еднакво заредените магнитчета ще запознат да си влияят един на друг, да се отблъскват. Има проблеми и с точното място където да застане главата. Има опити за построяване на дискове с повече от 1 четящи глави за работна повърхност, но направата им е скъпа и ускорението не е достатъчно голямо (цена / скорост -> bad). По-добра алтернатива е използването на дискове с 1 глава на повърхност поставени в RAID масив.

Дискови масиви.

Няколко диска да се подредят и данните да се подредят по дисковете. На ниво ОП тя структурира информацията във файлове, които разполага на сектори в диска. На примера са дадени 3 различни диска и 3 файла като всеки файл еказано че е 2 сектора дълъг.
1н. – единия файл на един диск, втория на друг, третия на трети
2н. – да се разпределят така че единия сектор на един диск, другия на друг. по този начин заявката за четене на файла се разделя на двата диска. Много бърза поява на двата сектора. Докато се обработва първия се обраборва и втория.
3н. – да се сложат върху трите диска раздробяванията на А0. едновременно се четат части от файла. В старите дискове където програмиста сам уточнява как да се разбие инфото и той сам решава как да я разположи.

RAID: redundant array of inexpensive disks
RAID 1 - пълен mirror - има два диска с абсолютна еднаква информация записана на тях. RAID контролерът има голям кеш-буфер и собствено аварийно захранване.(нарича се stripping)
RAID 3 - включва трети диск наречен hot spare, който не работи по default . При проблем в някой от двата работещи диска, hot spare дискът се включва и почва да се пълни със съдържанието на другите дискове. През това време може да се се замени разваления диск докато работи компютъра - така наречения hot pluggable. Тази практика е удобна за сървъри
RAID 5 - включва 4 диска съдържащи информацията и един hot spare. Информацията се поделя между дисковете чрез контролни сектори. При проблем с някой от дисковете информацията се записва върху hot spare-a чрез изчисляване на тези контролни сектори на останалите 3 диска. Един от дисковете се нарича контролен (не съм записал по-особеното при него какво е).
RAID технологията е измислена от Патерсон и основната й цел е сигурността на информацията.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License