poniedziałek, 26 lipca 2010

ISM - Komponenty wchodzące w skład środowiska storage

Lesson: Components of Storage System Environment

Użytkownicy korzystają z danych za pośrednictwem aplikacji. Komputer na którym te aplikację są uruchamiane nazywamy hostem. Host może być zwykłym laptopem czy nawet netbookiem a może być potężny jak mainframe czy kilka serwerów w klastrze.Host składa się z komponentów fizycznych ( hardware ), które komunikują się ze sobą za pomocą komponentów logicznych ( software oraz protokoły ).

Host składa się z trzech głównych podzespołów:

  1. Jednostka obliczeniowa ( CPU )
  2. Pamięć ( RAM + wewnętrzne dyski )
  3. Urządzenia I/O
Wyróżniamy kilka typów komunikacji za pomocą Urządzeń I/O:
  • Komunikacja Użytkownik--Host ( klawiatura , mysz , monitor )
  • Komunikacja Host--Host ( NIC , modem )
  • Komunikacja Host--Storage ( HBA )
Defnicja HBA według EMC: "HBA is an application-specific integrated circuit (ASIC) board that performs I/O interface functions between the host and the storage, relieving the CPU from additional I/O processing workload"

Logiczne komponenty hosta układają się w następujący "stos":

Aplikacja --> System operacyjny --> System Plików --> Volume Manager --> Sterowniki --> HBA

Aplikacja - aplikacje dostarczają logiki do komputerowych obliczeń, są także interfejsem pomiędzy użytkownikiem a hostem, lub pomiędzy dwoma hostami.  Standardowe programy biznesowe wykorzystujące bazę danych zwykle mają trójwarstwową architekturę. Graficzny interfejs użytkownika to pierwsza z tych warstw, sama aplikacja i zawarte w niej algorytmy są środkową warstwą, dolna składa się z bazy danych.
Aplikacja ( lub baza danych ) wysyła żądania do systemu operacyjnego
Dostęp do danych może odbywać się na dwóch poziomach: bloku lub pliku. Zależy to od tego w jaki sposób aplikacja odnosi się do danych.


  • Dostęp na poziomie bloku ( Block-level access ) -  aplikacja wykorzystuje adres logiczny bloku ( logical block adres - LBA ) do adresowania. LBA jest zależny od geometrii dysku i położenia na nim danych. Dane mogą być odczytane/zapisane tylko w ilości równej wielkości bloku lub jego wielokrotności. 
  • Dostęp na poziomie pliku ( File-level access ) -  dostęp do danych poprzez podanie nazwy pliku i ścieżki dostępu do niego. W dalszym ciągu same dane zostają uzyskane na poziomie bloku , ale przed samą aplikacją czy DBMSem ukryte zostaje cały proces tłumaczenia adresów na LBA i operacje z tym związane. 


System operacyjny - kontroluje całość środowiska komputerowego. Pracuje pomiędzy aplikacjami a warstwą sprzętową. Zarządza przydziałami do zasobów sprzętowych. Przeprowadza także podstawowe zarządzanie zasobami storage.

Logical Volume Manager ( LVM ) - aplikacja pomiędzy systemem operacyjnym a fizycznym storage. LVM definiuje struktury storagowe które mogą obejmować sobą wiele fizycznych urządzeń. Dla OSa i aplikacji takie struktury wyglądają jak jenolite i ciągłe fragmenty przestrzeni dyskowej.

Dzięki LVM możliwe jest użycie następującej funkcjonalności:

  • Dynamiczne rozszerzanie FSów (Dynamic extension of file systems)
  • Mirroring na poziomie hosta (Host based mirroring)
  • Striping na poziomie hosta (Host based striping)
Volume Groups ( VG) - jest stworzona przez zgrupowanie jednego lub kilku fizycznych wolumenów. Fizyczne wolumeny mogą być dynamicznie dodawane i usuwane z VG. Do VG można przypisać tylko cały fizyczny wolumen , nie jest możliwe przypisanie jedynie jego części. VG może być aktywna lub nieaktywna. Zwykle na jednej VG umieszcza się dane powiązane ze sobą.

Wolumeny logiczne ( LV - Logical Volume ) są tworzone w obrębie VG. System operacyjny traktuje LV jako fizyczne urządzenie i traktuje jako plik specjalnego typu ( w systemach Unixowych ). Dany LV może należeć tylko do jednej VG, ale może być rozrzucony po wielu fizycznych urządzeniach. Na LV moze być umieszczony system plików.

Sterownik ( device driver ) - jest to software który umożliwia systemowi operacyjnemu komunikację z zarządzanie określonym urządzenie takim jak np: drukarka , dysk , mysz itd. Dzięki sterownikowi OS może rozpoznać urządzenie i używać go. Sterowniki są pisane pod konkretne modele urządzeń i poszczególne systemy operacyjne.

Plik (file) - zbiór powiązanych ze sobą rekordów lub danych przechowywane jako jedna całość i mające nadaną nazwę. System plików ( file system ) - to hierarchiczna struktura plików. System plików zezwala na łatwy dostęp do plików umieszczonych na dysku, partycji lub LV. Struktura systemu plików używa folderów ( lub katalogów ), które są kontenerami w których można przechowywać inne katalogi lub pliki.
Przykłady systemów plików: FAT 32 , NTFS , UFS , EXT2/3.
Oprócz plików i katalogów system plików zawiera także pewną ilość innych obiektów nazywanych metadanymi. Metadane zawierają różne informacje ( np: ilość wolnego miejsca , typy plików, różne atrybuty ) które pozwalają systemowi plików pozostać konsystentnym.

Blok systemu plików jest najmniejszą ilością danych jakie mogą zostać zaadresowane. Każdy z nich jest ciągłą przestrzenią na dysku fizycznym. Wielość bloku danych dla systemu plików jest ustalana przy jego stworzeniu i nie może ulec zmianie. 

Proces mapowanie pliku na dyski fizyczne z użyciem LVMa wygląda następująco:
  1.  Plik jest używany przez użytkownika i aplikacje
  2.  Plik jest umiejscowiony w strukturze katalogów na systemie plików
  3.  Pliki na systemie plików następnie są mapowane na bloki systemu plików
  4.  Bloki systemu plików są z kolei mapowane na logiczne extents ( elementarne jednostki "bloki" z których składa się LV )
  5.  Logiczne extends są mapowane na fizyczne extends przed system operacyjny lub przez LVMa
  6.  Fizyczne extends są mapowane na konkretne sektory na dyskach. 
Jeżeli nie ma LVMa to nie ma także logicznych extends - bloki systemu plików są odrazu mapowane na sektory na dysku

Connectivity - można to tłumaczyć jako łączność, ale to słowo nie oddeje w pełni znaczenia tego terminu, dlatego zostanę przy wersji orginalnej. Podczas kursu najbardziej skupiamy się na connectivity pomiędy hostem a urządzeniami strorage choć oczywiście to pojęcie ma znacznie szerszy zakres.
Elementy connectivity w środowisku storage można podzielić na fizyczne - łączące storage z hostem  i logiczne - protokoły określające komunikację pomiędzy storage a hostem. Fizyczne to magistrala (bus) , port i kabel (cable ).
Logiczną częścią connectivity są protokoły, czym jest taki protokół?

Connectivity protocol - "a defined format for communication between sending and receiving devices"

Jest to formalny sposób komunikacji pomiędzy urządzeniami wysyłającymi i odbierającymi dane.
Protokoły komunikacyjne są definiowane dla urządzeń i komponentów które są:
  • ściśle powiązanymi jednostkami - np CPU i RAM 
  • bezpośrednio połączonymi jednostami - np: komputer i drukarka czy host i storage zewnętrzny
  • sieciowo połączonymi jednostkami - np komputery w sieci , NAS lub SAN





Popular Connectivity Options: PCI

PCI jest używane jako wewnętrza magistrala przesyłania danych wewnątrz hosta. Umożliwia komunikację pomiędzy procesorem ( procesorami ) a kartami rozszerzeń. Może być 32 lub 64 bitowa a jej przepustowość w wersj 32 bity wynosi 133MB/s
PCI Express jest rozbudowaną wersją PCI z większą przepustowością i szybszym taktowaniem.

Popular Connectivity Options: IDE/ATA

IDE/ATA - Integrated Device Electronics/Advanced Technology Attachement - interfejs przeznaczony do komunikowania się z dyskami twardymi , CD-ROMami , stacjami dyskietek itd... 
Najnowsza wersja IDE/ATA to Ultra DMA/133 która pozwala na przesył 133MB danych na sekundę. IDE/ATA wspiera do dwóch urządzeń na connector ( na taśmę) działających w trybie master-slave, jednak jeżeli nie chcemy mieć utraty wydajności nie powinniśmy mieć więcej niż jednego urządzenia na taśmie.
Złącze ATA ma 40 pinów ( gdy podłączamy dyski) lub 34 piny ( przy podłączaniu stacji dyskietek)

SATA (Serial ATA ) to szeregowa wersja IDE/ATA , zapewnia transfer danych do 6Gb/sek ( wersji 3.0 ). SATA bezpośrednio podłącza każde urządzenie do hosta poprzez dedykowany link i wykorzystując LVDS ( Low voltage differential signal ). LVDS to rodzaj systemu elektrycznych sygnałów które potrafią z dużą szybkością, przekazywać dane poprzez miedzianą skrętkę. Dla transferu danych magistrala SATA używa LVDS z napięciem 250mV . Urządzenia SATA są hot-plug.

Popular Connectivity Options: SCSI

SCSI ( lub Równoległe SCSI ) to jeden z najpopularniejszych interfejsów storage, jest zestawem protokołów  używanych do podłączenia urządzeń peryferyjnych do hostów i przesyłania danych pomiędzy nimi. Najczęściej jest używane do połączeń urządzeń storage takich jak dyski czy napędy taśmowe ale równie dobrze może odpowiadać za komunikację ze skanerem czy drukarką. Najstarsza wersja SCSI ( SCSI-1 ) zapewniała transfer z prędkością 5 MB/s , najnowsze SCSI Ultra 320 - 320 MB/s

Serial Attached SCSI ( SAS ) to rozwinięcie SCSI Ultra 320. Używa zestawu poleceń SCSI i jego złącza są kompatybilne z SATA. Wspiera transfer o prędkości 3 Gb/s ( SAS 300 ). Wspiera połączenia wielu dysków naraz poprzez expandery.

Popular Connectivity Options: Medias and Options
  • Taśmy ( tapes ) - często używane do backupu i archiwizacji z powodu ich niewielkich kosztów. Mają wiele ograniczeń: utrudnione przeszukiwanie i dostęp do informacji (zapis liniowy na taśmie, odczyt tylko sekwencyjny) , brak możliwości dostępu do nośnika przez więcej niż jeden host naraz , zużywanie nośnika podczas używania związane z jego fizycznym kontaktem z głowicą.
  • Dyski optyczne ( optical disk storage ) - np: CD-ROM , DVD. Mają ograniczoną pojemność i prędkość. Zaletą jest łatwość wykonywania kopii WORM ( write once , read many ). Macierz zawierająca dyski optyczne nazywana jest jukebox
  • Napędy dyskowe - najpopularniejsze medium do przechowywania informacji. Szybki dostęp do swobodnych (random) danych. 




I tyle na dziś.
W planach było co prawda zawarcie w kolejnym wpisie 2 lekcji ale uważam, że zebrało by się za dużo materiału i tak jest go teraz sporo.
Widzę , że formatowanie jest dalekie od ideału , brakuje też różnych uprzyjemniaczy czytania pod postacią grafiki czy osadzonego filmu do youtube ale jak na razie nie mam na to czasu i głowy.
Może kiedyś przeedytuję te wpisy do postaci "user-friendly" na razie muszą zostać w tej "surowej" formie.

W kolejnym wpisie będzie kolejna lekcja z Modułu 2 o jakże zachęcającej nazwie Disk Drive ;)



1 komentarz: