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...




3 komentarze:

  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ń