czwartek, 29 lipca 2010

ISM - Dysku twardego dokładne opisanie ;)

Lesson: Disk Drive


Dzisiaj będziemy odkrywać Amerykę, czyli poznawać, tajemnicze urządzenie jakim jest dysk twardy ;)
Ciężka praca , ale niestety EMC jest bezlitosne i aplikuje swoim przyszłym certyfikowanym profesjonalistom potężną dawkę informacji na ten fascynujący temat.


Komponenty dysku twardego:

Dysk twardy, za pomocą szybko poruszającego się ramienia, z głowicą na końcu, zapisuje i odczytuje dane z płaskiego talerza pokrytego magnetyczną powłoką. Z tego talerza poprzez głowicę dane są przenoszone do hosta. Kilka talerzy + ramiona z głowicami + kontroler nimi sterujący umieszczone w jednej obudowie są nazywane dyskiem twardym. Dane z dysku mogą być zapisywane i odczytywane praktycznie nieskończoną liczbę razy.

Kluczowe komponenty dysku twardego to: platter ( talerz) , spindle ( wrzeciono ) , read/write head ( głowica zapis/odczyt) , actuator arm assembly ( ramię ) , and controller (kontroler)

Źródło: wikipedia ( LINK )


  • Talerz (platter) - płaski okrągły dysk , pokryty magnetycznym materiałem po swoich obydwu stronach ( góra i dół ). Dane ( 0 i 1 ) są zapisywane na talerzu poprzez polaryzowanie domen magnetycznych które znajdują się w powłoce talerza. Dane mogą być odczytywane i zapisywane po obydwu stronach talerza
  • Wrzeciono (spindle ) - łączy ze sobą wszystkie talerze i jest podłączone do silnika. Silnik wrzeciona nadaje mu ( i wszyskim talerzom ) ruch obrotowy o stałej prędkości. Prędkość ta jest mierzona w obrotach na minutę ( revolutions per minute - rpm ) - Obecnie prędkości dysków to 7,200 rpm , 10,000 rpm i 15,000 rpm. Dyski używane przeważnie w serwerach i macierzach mają średnicę talerza 3,5 cala ( około 90mm ). CIEKAWOSTKA: Przy 15.000 rpm zewnętrzna krawędź talerza porusza się z prędkością 25% prędkości dzwkięku.
  • Głowica zapis/odczyt ( Read/Write head ) - znajduje się na końcu ramienia i zajmuje odczytem i zapisem danych z talerza. W dysku twardym jest tyle głowic, ile powierzchni pokrytych materiałem magnetycznym. Głowica odczytuje polaryzację domeny magnetycznej znajdującej się pod nią ( odczyt ) lub zmienia ją ( zapis ). Sama głowica nigdy nie dotyka powierzchni obracającego się talerza, zawsze między nimi znajduje się mikroskopijna przestrzeń (air gasm),  zwana także wyskością pracy głowicy ( head flying height ). Głowica spoczywa na talerzu wyłącznie podczas zatrzymania ruchu obrotowego talerza i na specjalnie wyznaczonym to tego fragmencie, zwanym jako strefa spoczynku ( landing zone ). Dotknięcie przez głowicę powierzhni dysku podczas jego pracy, nazywane jest uderzeniem głowicy ( head crush) i może skutkować utratą danych z dysku.
  • Ramię ( acutator arm assembly ) - na końcu ramienia znajduje się głowica zapis/odczyt a samo ramie ma za zadanie naprowadzić ją na miejsce gdzie wymagany jest zapis lub odczyt danych.
  • Kontroler ( controller ) - układ elektroniczny, przytwierdzony zwykle do dolnej części dysku twardego. Zawiera firmware , mikroprocesor , pamięć i obwody. Firmware zajmuje się kontrolą dostarczania mocy do napędu wrzeciona i ramienia, zarządza także komunikacją pomiędzy dyskiem a hostem, kieruje także ruchem ramienia.


Fizyczna struktura dysku:

Dane na dysku nagrywane są na ścieżkach ( tracks ). Ścieżki mają kształt koncentrycznych pierścieni z wrzecionem jako środkiem i są ponumerowane  ( ścieżka "zero" jest na zewnętrznej krawędzi talerza) .Jednostką w której mierzy się jak gęsto dane są upakowane na talerzy są tracks per inch (TPI).

Każda scieżka podzielona jest na mniejsze jednostki zwane sektorami ( sectors ).  Sektor jest najmniejszą adresowalną jednostką. Ścieżki i sektory są nanoszone na talerz przez producenta dysku podczas procesu zwanego formatowaniem ( nikopoziomowym ). Ilość sektorów na ścieżce zależy od modelu dysku.

Zwykle sektor ma wielkość 512 bajtów , ale niektóre dyski mogą mieć je większe. Oprócz danych użytkownika sektory zawierają jeszcze tzw metadane czyli np: informacje o numerze sektora , scieżki i talerza.
Cylinder - zbiór wszystkich ścieżek na obydwu powierzchniach talerzy o tej samej odległości od wrzeciona.


Adresowanie bloków na dysku ( Logical Block Addressing - LBA ):

Kontroler dyskowy używa adresowania CHS ( cylinder, head , sector ) do określenia konkretnej lokacji na dysku. Początkowo system operacyjny na hoscie także używał tego adresowania, przy korzystaniu z zasobów dyskowych , znaczyło to że musiał być świadomy geometrii wszystkich dysków jakich mógł używać.
Aby uniknąć kłopotów z tym związanych wprowadzono adresowanie LBA, które jest adresowaniem liniowym. Kontoler dysku dokonuje translacji z adresu LBA który dostaje od systemu operacyjnego na adres CHS dzięki któremu jest w stanie ustawić głowicę w odpowiednim położeniu.


Wydajność dysku twardego:

Disk service time - czas w jakim dysk wykona żądanie I/O ( I/O request ). Disk service time zależy od:
  • seek time
  • rotational latency
  • data transfer rate
Seek time - czas jaki jest potrzebny do ustawienia głowiny R/W nad ścieżką z której trzeba pobrać/zapisać dane
Zwykle podawane są następujące warianty "seek time":
  • Full Stroke - czas w jakim głowica przesunie się z najbardziej wewnętrznej na najbardziej zewnętrzną ścieżkę
  • Average - czas jaki głowica R/W potrzebuje aby przenieść się z dowolnej ścieżki na inną losowo wybraną. Zwykle przyjmuje się że wynosi to 1/3 Full Stroke
  • Track-to-Track - czas potrzebny głowicy R/W na przeniesienie się między dwoma sąsiadującymi ścieżkami
Seek time mierzy się w milisekundach i przeciętna wartość dla nowych dysków mieści się w granicach 3 do 15 ms. Seek time ma największe znaczenie przy swobodnych (random) operacjach odczytu.
Short-strorking -- metoda używania tylko niektórych cylindrów na dysku tak aby zmniejszyć seek time ( kosztem pojemności )

Rotational Latency - czas jaki upływa zanim dane znajdujące się na ścieżce na obracjącym się talerzu znajdą się pod głowicą R/W. Wartość ta zależy od prędkości obrotowej dysku ( mierzona w ms ). Średnia wartość rotational latency jest równa połowie czasu w jakim dysk wykonuje pełny obrót. Podobnie jak seek time rotational latency ma największy wpływ przy swobodnym odczycie/zapisie danych.
Typowe wartości rotational latency to 5.5ms dla 5400rpm i 2.0ms dla 15.000rpm

Data Transfer Rate - określa przeciętną ilość danych jaka w jednostce czasu może zostać dostarczona do HBA. Transfer danych w dysku wygląda mniej więcej następująco:

HBA <---> Interface <--> Bufor <--> Talerze

Interfejs,bufor i talerze są częściami samego dysku.
Wyróżnić można wewnęrzną prędkość transferu ( mierzoną między buforem a talerzami ) oraz zewnętrzną prędkość transferu ( mierzona między HBA a interfejsem )
Wewnętrzna zależy od wartości seek time i rotation latency, zewnętrzna od szybkości samego interfejsu ( np 133MB/s dla ATA )


Prawa i teoria dotyczące wydajności dysku:

Kolejka (queue ) - miejsce gdzie I/O czeka, aż zostanie przetworzone przez I/O kontorler.
I/O kontroler ( I/O Controller ) - przetwarza I/O czekające w kolejce, jedno po drugim.

Żądania I/O są generowana przez aplikacje i wysyłane do I/O kontorlera, który je obsługuje ( zapisuje lub odczytuje dane z dysku ). Prędkość z jaką nowe I/O requesty przychodzą do kolejki jest nazwana arrival rate. Jeżeli kontorler w danym momencie nie może obsłużyć tego I/O ( procesuje inne ), wtedy nowe I/O wpada do kolejki. Wydajność dysku zależy od długości kolejki , prędkości przychodzenia I/O , oraz czasowi jaki kontroler potrzebuje żeby żądanie obsłużyć. Wydajność tą mierzy się za pomocą czasu odpowiedzi ( response time )

PRAWO LITTLE:

N = a * R

gdzie:

N - całkowita liczba żądań w systemie kolejkowym ( żądanie w kolejce + żądanie w I/O kontrolerze )
a - arrival rate - ilość nowych żądać na jednostkę czasu
R - średni czas odpowiedzi, czyli czas od momentu przyjścia do obsłużenia I/O

PRAWO UTYLIZACJI:

U = a *RS

gdzie:

U - utylizacja I/O kontrolera
RS - service time ( średni czas jaki kontroler potrzebuje na przetworzenie I/O) - 1/RS = service rate

Dla dysków mała utylizacja ( poniżej 60% ) skutkuje bardzo małymi czasami odpowiedzi , jeżeli utylizacja przekracza 70% wtedy czasy odpowiedzi zaczynają drastycznie rosnąć.


 EFD ( Enterprise Flash Drives ):

Dyski oparte na technologii półprzewodnikowej, nie posiadają mechanicznych obracających się części. Charakteryzują się lepszym czasem odpowiedzi , wyższą przepustowością oraz lepszym współczynnikiem zużycia energii per GB lub per IOPS niż dyski tradycyjne ( FC ). EMC nazywa storage oparty na dyskach EFD "tier 0". Półprzewodniki w dyskach EFD mogą być "single-level cell" (SLC) lub  "multi-level cell" (MLC).  Dyski oparte na SLC mają lepszą wydajność ale ich wytworzenie jest droższe.
Dyski EFD są w stanie obsłużyć do 30 razy więcej IOPS niż dyski FC ( w zapisie swobodnym ) ich czasy odpowiedzi są poniżej 1ms. Zużywają także 38% mniej energii per TB i 98% mniej energii per IOPS.
Brak ruchomych części zapewnia większą niezawodność.





Tyle wiedzy na temat dysków twardych wymaga od nas EMC.
Kolejna lekcja: RAID , odkrywania Ameryki ciąg dalszy...




5 komentarzy:

  1. Co to jest IOPS? Nie chodzi mi o definicje ale tak prostymi słowami.

    OdpowiedzUsuń
  2. I/O - Input/Output Operation - Oznacza operację jakie dysk/RAID/macierz itd... musi wykonać. Mówiąc inaczej dostając I/O dysk(albo np cała macierz) musi wykonać jakieś działanie (odczyt albo zapis).
    IOPS - to I/O per second czyli ilość operacji jakie dana struktura musi wykonać w ciągu sekundy.
    W IOPSach zarówno można określać wydajność, np: dysk FC15k ma średnio 150IOPSów (czyli może obsłużyć 150 operacji zapisu i odczytu na sekundów) ale mogą być również nim określane obciążenia generowane przez np: serwer czy aplikację. Np: program xyz generuje 10.000IOPSów.

    OdpowiedzUsuń
  3. Zbieram właśnie informacje na temat dysków twardych, bo stoję przed wyborem kupna nowego, widziałem kilka propozycji na stronie https://www.oleole.pl/dyski-twarde-zewnetrzne,_WD.bhtml ale powiem szczerze, że na razie jeszcze nie mam pojęcia, na co zwracać uwagę. Na szczęście mogę liczyć na pomoc internetu.

    OdpowiedzUsuń
  4. Zanim uda się stworzyć dobrze działające urządzenie, w tym komputer producenci sprawdzają jego działanie pod każdym możliwym względem. Aby nie narażać się na wysokie koszty zamawiają prototypy możliwych części, w tym obwodów drukowanych. Od producenta https://tspcb.pl/oferta/produkty/prototyp-tska można właśnie takie zamawiać. Prototypy PCB pozwalają wyeliminować ewentualne błędy projektu, co minimalizuje ryzyko problemów w późniejszych etapach produkcji.

    OdpowiedzUsuń