W rezultacie stos pamięci masowej systemu Windows podejmie próbę zresetowania urządzenia po odczekaniu na niereagujące odczyty lub zapisy przez określony czas. Część 2: Jak naprawić 100% użycie dysku w systemie Windows. Z różnych konkretnych powodów 100% wykorzystania dysku istnieją różne rozwiązania.
W systemie dziesiątkowym, 1KB = 1000 bajtów, czyli dysk twardy o nominalnej pojemności 500GB będzie się składać z 500 bajtów x 1000 kilobajtów x 1000 megabajtów x 1000 gigabajtów = 500 000 000 000 bajtów. Skoro rozłożyliśmy dysk na bajty, czas przełożyć nasz wynik na system dwójkowy, w którym to 1KB = 1024 bajty. Tym prostym
Istnieje wiele czynników, które należy wziąć pod uwagę przy podejmowaniu decyzji o tym, ile pamięci masowej potrzebujesz, dlatego nie da się jednoznacznie odpowiedzieć na to pytanie. Ostatecznie będziesz musiał sam podjąć decyzję, ale przedstawiamy kilka aspektów , które powinny Ci ją znacznie ułatwić.
cash. Spis treściPrzechowywanie na lokalnych nośnikachCoraz popularniejsze przechowywanie w chmurzeCzy chmura zastąpi fizyczne karty?Przechowywanie na lokalnych nośnikachSposób, w jaki przechowujemy i transportujemy nasze dane, zmieniał się i ewoluował z biegiem czasu. Zastosowaliśmy różne środki, które z biegiem czasu zostały zastąpione innymi o większej wydajności i szybkości. Jednymi z tych, które były używane wiele lat temu były dyskietki cala i cala. Można w nich przechowywać kilka MB informacji. Potem pojawiły się płyty CD i DVD, na których można było już przechowywać znacznie więcej informacji. Na przykład w tym ostatnim możemy przechowywać kilka GB korzystamy z zewnętrznych systemów pamięci masowej, takich jak zewnętrzny dysk twardy lub pendrive. Wszystkie oferują nam znacznie większą pojemność, łatwość obsługi podczas kasowania i zapisywania naszych danych, wygodniejszy transport oraz dobrą niezawodność i trwałość. Również inne lokalne systemy pamięci masowej to karty micro typu karty pamięci można znaleźć w naszych smartfonach, tabletach i nie tylko, o pojemności do 1TB lub 2TB. ten wielka zaleta of za pomocą fizycznej karty czy ta informacja? będzie tylko w naszych rękach . Obecnie pojawiają się wątpliwości, czy chmura zastąpi fizyczne karty, czy będzie to kolejny krok? Mamy też opcję pośrednią, która może polegać na przekształceniu komputera w prywatną chmurę, wtedy dane również pozostaną w naszym posiadaniu, będziesz cieszyć się korzyścią chmury i będziesz miał dostęp do swoich fizycznych popularniejsze przechowywanie w chmurzeChmura przechowywanie ma coraz większy wpływ na nasze życie. Nie ma wątpliwości, że jest to trend wzrostowy i czasami może być najwygodniejszy. W związku z tym mamy rozwiązania do przechowywania w chmurze, takie jak Dysk Google, Microsoft onedrive lub Dropbox, który spełni nasze ramach projektu łatwość dostępu do plików z dowolnego miejsca uczynił ten rodzaj usług przechowywania w chmurze ceniony. W trybie darmowym tych usług będziemy mogli mieć kilka gigabajtów na przechowywanie naszych plików. Do tego musimy dodać najlepsze mobilne połączenia internetowe dzięki 5G i połączenia światłowodowe w naszych domach również ułatwiły większe oznacza to, że zapisując dane w chmurze, podejmujesz szereg środków ostrożności. Wspomnieć o jednym z nich oznaczałoby posiadanie silnego hasła, którego nie używałeś. Przechowywanie w chmurze zapewnia nam również inne pozytywne rzeczy:Oszczędność miejsca na naszych nośnikach łatwego udostępniania chmura zastąpi fizyczne karty?O tym, czy chmura zastąpi fizyczne karty, wszystko wskazuje na tak, przynajmniej w dużej części. Nie oznacza to, że fizyczne karty i inne nośniki, takie jak dyski twarde, przestaną z nich korzystać. Duża część użytkowników będzie chciała mieć pewne poufne informacje pod kontrolą i dlatego obie będą nadal współistnieć. Z drugiej strony niezwykłe będzie to, że nosimy ze sobą pendrive'y i dyski twarde, aby udostępniać lub przeglądać tego typu chmur publicznych będzie to, że dane będą w rękach tej firmy, a jeśli chcemy więcej miejsca, musimy za to zapłacić. Wreszcie, z tych powodów niektóre firmy wybierają chmurę hybrydową, która łączy małą chmurę prywatną do przechowywania poufnych informacji z chmurą publiczną.
Zapewnienie efektywną i zoptymalizowaną wydajność pamięci masowej dla środowisk wirtualnych może być trudne do osiągnięcia, ponieważ jest wiele elementów w stosie infrastruktury, które muszą ze sobą współgrać. Pamięć masową o optymalnej wydajności dla środowiska wirtualnego można dobrać przy pomocy zestawu wskaźników, które są wykorzystywane do pomiaru operacji wykonywanych w środowiskach wirtualnych. Wyróżniamy trzy kluczowe wskaźniki wydajności, które są wspólne dla wszystkich środowisk: opóźnienie (czas dostępu, czas reakcji), przepustowość (pasmo) i IOPS. Opóźnienie określa czas potrzebny do ukończenia jednej operacji I/O (wejścia wyjścia) i jest w istocie miarą tego, jak szybko pamięć masowa reaguje na zapytania odczytu lub zapisu danych. Mierzona wartość jest przedstawiana w milisekundach, obecnie ten parametr w najszybszych dyskach SSD, jakie są dostępne na rynku, jest na poziomie ułamków milisekund. W idealnym środowisku parametr opóźnienia byłby równy zero, co skutkowałoby tym, że operacje odczytu i zapisu na dyski twarde pamięci masowej nie miałyby wpływu na jej wydajność. Ponieważ fizycznie jest to nie możliwe to każda operacja I/O obarczona jest pewnym opóźnieniem. Największym wyzwaniem dla każdej pamięci masowej jest zminimalizowanie wartości opóźnienia, gdyż w większości przypadków w infrastrukturze IT to właśnie pamięć masowa jest tzw. wąskim gardłem. Mniejszy wskaźnik opóźnienia oznacza, krótszy czas oczekiwania na zakończenie operacji I/O a zatem szybsze wykonanie zadania. W środowisku wirtualnym parametr opóźnienia ma bezpośredni wpływ na prędkość działania maszyn wirtualnych (VM) i pulpitów dostępowych. Zmniejszenie opóźnienia wskazuje na lepsze wykorzystanie zasobów procesora i pamięci operacyjnej. W rezultacie w pamięciach masowych wdrażanych do środowisk wirtualnych implementuje się dyski SSD oraz możliwość zarządzania przepływem operacji I/O do macierzy dyskowej. Technologia pamięci flash najczęściej wykorzystywana jest przy sprzętowym, czy też programowym “caching-u”, którego celem jest zredukowanie wartości opóźnienia do jak najmniejszych. Przepustowość – Zdolność do przesłania ustalonej ilości danych w mierzonym czasie określa się mianem przepustowości lub pasma. Typowa przepustowość jest mierzona w jednostkach megabajt na sekundę (MBps). Sieciowe pamięci masowe i urządzenia dyskowe mogą być definiowane przez dwa rodzaje przepustowości – przepustowość stała i przepustowość szczytowa. Stała przepustowość to zdolność pamięci masowej do przesyłania danych ze stałą prędkością w długim okresie czasu. Szczytowa przepustowość wskazuje poziom jaki pamięć masowa jest w stanie osiągnąć, w krótkim okresie czasu. W środowiskach typu VDI (virtual desktop infrastructure) bardzo ważna jest szczytowa przepustowość, przykładowo kiedy mamy do czynienia z “boot storms” – jest to moment, w którym do system loguje się wielu użytkowników i w tym samym czasie uruchamiają swoje wirtualne maszyny. Taka sytuacja generuje ogromną ilość operacji I/O i jeżeli macierz nie jest w stanie efektywnie tym zarządzać to automatycznie wzrasta nam opóźnienie. Duża przepustowość ma istotne znaczenie także dla środowiska serwerów wirtualnych podczas gdy realizowane jest dynamiczne przenoszenie maszyn wirtualnych pomiędzy serwerami. Możliwość zmierzenia przepustowości i zrozumienie zapotrzebowania szczytowego jest krytyczne dla środowisk wirtualnych. IOPS (input output operations per second) – IOPS jest miarą liczby indywidualnych zapytań odczytu/zapisu jaką pamięć masowa jest w stanie obsłużyć w ciągu jednej sekundy. Liczba ta jest ściśle powiązana z przepustowością, ale się od niej różni. In many cases, vendors will use IOPS as a measure of the performance of their products, but these figures need to be considered alongside the size of data chunks being transferred in each operation. W wielu przypadkach, producenci sieciowych pamięci masowych korzystają z IOPS jako parametru wydajności, ale należy pamiętać, że przy doborze odpowiedniej jednostki należy rozważyć wielkość bloków danych jakie będzie musiała obsługiwać macierz. Przykładowo łatwiej jest przetwożyć wiele małych bloków o wielkości 4KB niż jeden duży o rozmiarze 1MB. Warto zwrócić też uwagę na to, że odczyt losowych danych jest bardziej czasochłonna niż ciągły zapis. Reasumując parametr IOPS musi być dokładnie osądzony pod kontem wielkości bloków przechowywanych na pamięci masowej oraz rodzaju operacji na nich wykonywanych. Zależność między opóźnieniem, przepustowością i IOPS Opóźnienie, IOPS i przepustowość są ściśle związane. Pamięć masowa, która będzie w stanie przetworzyć operacje I/O z małym opóźnieniem, będzie miała dużą wydajność IOPS. Liczba oblicza się z prostego wzoru 1/opóźnienie, więc jeżeli będzie na poziomie 3 milisekund (1/ to otrzymamy 333 IOPS. Pamięć masowa, która zapewni dużą liczbę IOPS dla dużych bloków danych będzie miała wysoką przepustowość, jej wartość oblicza się poprzez przemnożenie ilości IOPS przez wielkość I/O. Pamięci masowe zarządzają operacjami I/O równolegle lub współbieżnie, co daje im możliwość przetworzenia w tym samym czasie więcej niż jedną operację I/O. Współbieżność osiąga się przez doprowadzenie kilku niezależnych ścieżek do pamięci masowej i wykorzystaniu pamięci systemowej jako cache, w którym kolejkowane są transakcje. Ta metoda sprawia, że trzeba zastosować kolejny parametr pomiaru – długość kolejki (queue depth) – który opisuje ile zapytań I/O pamięć masowa jest w stanie obsłużyć jednocześnie. Pojedynczy dysk posiada parametr długości kolejki na poziomie jedno lub dwucyfrowej, podczas gdy duża korporacyjna macierz dyskowa długość kolejki będzie miała na poziomie dziesiątek lub setek cyfr na jeden LUB, na jeden port lub kombinację obu. Dzięki kolejkowaniu kilku zapytań razem pamięć masowa może zoptymalizować proces zapisu, tym samym redukując opóźnienie związane z przechowywaniem danych, jest to szczególnie skuteczne w przypadku dysków twardych, w ten sposób można znacznie zmniejszyć ruch głowicy. Profil obciążenia oraz gdzie dokonywać pomiaru Identyfikacja i zbieranie danych o poszczególnych wskaźnikach macierzy umożliwiają nam zrozumienie jaką wydajność daje nam dana pamięć masowa, ale wszystkie te informacje trzeba wykorzystać w kontekście profilu operacji I/O oraz gdzie pomiary zostały dokonane. A to dlatego, że każda aplikacja jest inna, co za tym idzie ma inne potrzeby. Przykładem może być VDI i wirtualny serwer, gdzie ruch jest wysoce zróżnicowany ze względu na rozproszenie aktywnych danych w całej objętości wolumenu przechowującego wirtualne dyski. VDI to w 80% odczyt danych więc małe opóźnienie dla operacji I/O daje zauważalne przyspieszenie. Miejsce pomiaru wskaźników jest także bardzo ważne, gdyż pomaga prawidłowo ocenić osiągi I/O na całej ścieżce transportu danych. W dzisiejszych czasach jesteśmy w stanie monitorować operację I/O od początku do końca, dzięki czemu jesteśmy w stanie zweryfikować na którym etapie procesowania występuje opóźnienie. Pomiaru możemy dokonywać w trzech wymiarach, bezpośrednio na pamięci masowej, przy pomocy hypervisor-a lub z poziomu samego hosta. Nie ma dobrych lub złych miejsce do pomiarów; każde daje perspektywy funkcjonowania systemu. Pomiary wykonane z poziomu pamięci masowej pokazują jak dobrze macierz radzi sobie z zewnętrznymi zapytaniami. Pomiary dokonane z poziomu hosta mogą przykładowo pokazać jak zawartość serwera ma wpływ na osiągi danego hosta, a pomiar przy pomocy hypervisor-a pokazuje efektywność sieci macierzy dyskowych. Oba najbardziej popularne hypervisory (vSphere ESXi i Hyper-V) pozwalają na wygenerowania dużego obciążenia w celu optymalizacji osiągów pamięci masowej. Storage DRS w przypadku vSphere, potrafi również na podstawie historycznych pomiarów opóźnień I/O podczas migracji VM zaproponować optymalne osiągi. Podczas gdy Intelligent Placement w Hyper-V dokonuje kalkulacji bazując na IOPS VM. Nie zapomnij o … Wszystko o czym pisaliśmy wyżej bazuje tylko na technologii, ale trzeba pamiętać, że często o wyborze odpowiedniej pamięci masowej decyduje także budżet jakim dysponujemy. W tym przypadku wskaźnikiem będzie PLN/GB, który mierzy koszt pojemności. Jednak wszyscy wiemy, że w przypadku rozwiązań z pamięcią flash współczynnik PLN/GB jest znacznie większy niż w przypadku zwykłych mechanicznych dysków, dlatego w przypadku wymagających aplikacji ten współczynnika warto zastąpić parametrem PLN/IOPS. Praktyka Wzorcowym przykładem jak producenci macierzy powinni prezentować powyższe wskaźniki jest firma Qsan Technology. Prezentują wszystkie parametry, które nas interesują przy doborze macierzy dyskowej do środowiska wirtualnego. Firma Qsan Technology przygotowała bardzo dokładne raporty wydajności dla każdej pamięci masowej dedykowanej do sieci SAN. W ich raportach zawarto informacje o ilości IOPS dla różnych wielkości bloków, nie tylko dla tych przy których macierz ma najlepszą wydajność, żeby ładnie wyglądało to marketingowo. To samo w przypadku wydajności, nie dość, że pokazano wyniki dla różnych wielkości bloków to również zaprezentowano wyniki z podziałem na profil obciążenia, tj. zapis oraz odczyt losowy i sekwencyjny. Żeby tego było mało pokazano jakie wyniki macierz osiągają przy włączonym i wyłączonym cache. Dla tych, którzy chcą zobaczyć jak wyglądają profesjonalne raporty poniżej linki do trzech najbardziej popularnych modeli: Qsan P400Q- S212, Qsan P600Q-S212, Qsan F600Q-S212 Dzięki takim raportom i przeczytaniu tego artykułu nie powinniście już mieć problemów z wyborem odpowiedniej sieciowej pamięci masowej. Jeżeli jednak nie wiecie ile IOPS potrzebujecie to zawsze możecie wypożyczyć macierz Qsan i sprawdzić we własnym środowisku czy spełni wasze wymagania. Podsumowanie Ze względu na losowe charakter środowiska wirtualnego, opóźnienie jest kluczowym wskaźnikiem, który należy brać pod uwagę podczas monitoringu osiągów pamięci masowych. Opóźnienie jest istotne zarówno gdy mamy jedną lub sto maszyn wirtualnych. W momencie, gdy po uwagę bierzemy pojemność pamięci masowej, żeby mieć możliwość obsługi dużej ilości maszyn wirtualnych to wtedy bardzo ważna rolę gra przepustowość. Wynika to z tego, że możliwość skalowania środowiska wirtualnego wymaga odpowiedniego potencjału przepustowości. Jak już wspomnieliśmy szczytowe obciążenie, w krótkich okresach czasu generowane przez VDI dla operacji odczytu i zapisu będzie sprawiać spore problemy. Z punktu widzenia hosta, IOPS jest parametrem, który najlepiej definiuje wydajność. Jest on także wykorzystywany zarówno w prywatnych, jak i wirtualnych infrastrukturach chmury.
Twarde dyski są wolne i znacznie szybsze nie będą. Z tego powodu nasze komputery nie działają tak szybko, jak by mogły. Procesor, zamiast wykonywać zlecone mu zadania, musi czekać na dane, których dysk nie jest mu w stanie dostarczyć w krótkim czasie. Przekonywanie, że jest inaczej, to mydlenie oczu nieistotnymi informacjami. Czy SSD jest wybawieniem z tej sytuacji? Aby się o tym przekonać warto poznać czym w rzeczywistości jest wydajność napędów dyskowych. Trochę historii… W 1956 r. firma IBM publicznie zaprezentowała komputer IBM RAMAC 305. Była to maszyna wyjątkowa ze względu na fakt zainstalowanej w niej pamięci masowej zbudowanej z rotujących, magnetycznych talerzy. Komponent ten miał nazwę IBM 350 i był to pierwszy twardy dysk. Wywołało to rewolucję w informatyce. Wcześniej dane przechowywano najczęściej na kartach perforowanych. W dużych firmach ich ogromne ilości były układane w skrzyniach (tub files). Gdy zachodziła konieczność użycia danych (np. wystawienie faktury), pracownik ręcznie odszukiwał odpowiednie karty (dane klienta i kupowanych produktów), ładował je do czytnika i uruchamiał właściwy program (tworzenie faktury). Następnie zabierał je oraz ewentualnie nowe karty wynikowe (faktura) i odkładał w tub file. Aby optymalnie wykorzystać cenny czas pracy komputera zlecenia wykonania obliczeń zbierane były w większe paczki. Karty układano w sekwencje zgodnie z kolejnością zleceń w paczce i dla wszystkich uruchamiano przetwarzanie. Dzięki temu nie trzeba było biegać między tub files a komputerem za każdym razem, jak pojawiło się nowe zlecenie. Ten wsadowy tryb pracy (batch), mimo, że jest efektywny, ma jedną istotną wadę – oczekiwanie na wynik wymaga cierpliwości. Głównym zadaniem inżynierów IBM przy tworzeniu RAMAC 305 było stworzenie nowego rodzaju systemu, którego podstawą jest uzyskiwanie rezultatów działania bezpośrednio po jego zleceniu. Z czasem taki tryb pracy z komputerem przyjął nazwę OLTP – OnLine Transaction Processing. Rozważano także użycie technologii taśmowej. Stosowano ją wtedy w systemach komputerowych już od pięciu lat. Prędkość sekwencyjnych zapisów i odczytów na taśmy była ponad 2x większa niż w przypadku IBM 350. Jednak próby losowego dostępu do danych nie przynosiły dobrych rezultatów. Podobnie jak w przypadku tub files, taśmy można było efektywnie używać tylko do przetwarzania w trybie wsadowym. Pomysł na umieszczenie danych na rotujących magnetycznych talerzach okazał się najlepszy. Zastosowanie IBM 350 umożliwiło szybki, losowy dostęp do danych. Zmieniło to sposób pracy z komputerem. Operator IBM RAMAC 305 mógł uruchomić program dla dowolnych danych w dowolnym czasie i od razu uzyskać wynik obliczeń. Taki sposób dostępu do informacji był tak istotny, że od niego wzięła się właśnie nazwa RAMAC – Random Access Method of Accounting and Control, czyli Losowa Metoda Dostępu dla Księgowości i Kontroli. Fizyczność dysku Ten historyczny rys miał na celu pokazanie jakie były powody powstania dysków twardych. Mimo, że od tamtych wydarzeń minęło już ponad pół wieku, są one nadal aktualne. Znacznie zwiększyła się jednak ilość danych oraz nasze wymagania. Pracując z komputerem oczekujemy natychmiastowego wyniku naszych operacji. Jeżeli do ich wykonania wymagane jest skorzystanie z informacji zapisanych na dysku, powinny być one szybko odszukane i dostarczone. Nie chcemy też czekać na zapisanie wyników naszej pracy. Aby sprostać tym oczekiwaniom dysk musi kręcić się z wielką prędkością, a jego głowica szybko i precyzyjnie lokalizować sektory szerokości zaledwie kilku atomów. Jest to konieczne dla uzyskania wysokiej wydajności i pojemności. Budowa dysków twardych wymaga od ich konstruktorów przełamywania kolejnych fizycznych barier. Niestety większość z nich jest już niemożliwa do sforsowania. W 2000 roku firma Seagate zaprezentowała pierwszy dysk kręcący się z prędkością 15 tys. obrotów na sekundę (RPM). Dzisiaj jest to nadal najlepszy wynik, dostępny tylko w najdroższych modelach. Większość dostępnych na rynku HDD ma 7200 RPM. Ruchy głowicy w najszybszym aktualnie dysku są tylko o 25% szybsze od wspomnianego Seagate’a. Oznacza to, że realna wydajność dysków twardych w ciągu 9 lat wzrosła o 16%. Jest to fakt, którym producenci nie chcą się chwalić i w sumie nie ma co się dziwić, jako że przemilczanie tej prawdy jest wymogiem współczesnego marketingu, podobnie jak eksponowanie nieistotnych parametrów. W przypadku HDD przykładem takiej nieistotnej informacji jest maksymalna prędkość transmisji danych wyrażana w MB/s. Mydlenie oczu Podawana przez producentów maksymalna prędkość transmisji danych jest z roku na rok coraz większa. Wynika to głównie z coraz szybszych interfejsów (SATA, SAS, FC). Ich możliwości ciągle się zwiększają, co jest związane z postępem w dziedzinie elektroniki. Nie oznacza to bynajmniej, że jednocześnie rośnie wydajność dysku. Do osiągnięcia wyników transferu prezentowanych w specyfikacjach niezbędne jest wykonanie testu, który nie ma nic wspólnego z rzeczywistością. W tym celu generowany jest sekwencyjny strumień danych złożony w wielkich bloków (1, 2, 4 MB). Jest to dobra metoda na sprawdzenie mocy napędów taśmowych, które są przeznaczone do obsługi sekwencyjnych strumieni danych. Nie sprawdza się jednak w przypadku dysków, których główne przeznaczenie to udostępnianie danych w sposób losowy. Aby poznać wydajność HDD trzeba sprawdzić jak będzie on sobie radził w warunkach, w których najczęściej przyjdzie mu pracować. Parametrem, który to najlepiej obrazuje, jest średnia ilość losowych operacji zapisu/odczytu na sekundę (IOPS). Wartości tej nie można znaleźć w specyfikacjach dysków twardych. Są tam jednak dostępne informacje, dzięki którym łatwo go obliczyć samodzielnie – prędkość obrotowa dysku (RPM) i średni czas pozycjonowania głowicy (average seek time). Parametry te określają generowane przez dysk opóźnienia w dostępie do danych. Cała reszta danych dostarczanych przez producentów nie jest istotna dla wydajności. Dotyczą one elektroniki, a w porównaniu z elementami mechanicznymi jest ona dużo szybsza. IOPS to informacja o tym, ile razy w ciągu sekundy dysk jest w stanie ustawić głowicę nad zadanymi sektorami. W tym celu trzeba obliczyć ile średnio trwa pojedynczy losowy dostęp do danych (average access latency). Jest to równe sumie opóźnień generowanych przez obroty dysku (average rotation latency) i ruch głowicy (average seek latency): average rotation latency = 60s / RPM / 2 average seek latency = (read seek time + write seek time) / 2 average access latency = average rotation latency + average seek latency Teraz wystarczy tylko wyliczyć ile operacji I/O przy takim opóźnieniu jest w stanie wykonać się w ciągu sekundy i otrzymujemy nasze średnie IOPS dla operacji losowych: average random IOPS = 1000ms / average access latency Przykład: dysk Seagate Barracuda 1TB 7200 RPM read seek time: 8,5 ms write seek time: 9,5 ms avarage rotation latency 60s / 7200 / 2 = 4,2ms avarage seek latency (8,5ms + 9,5ms) / 2 = 9ms average access latency 4,2ms + 9ms = 13,2ms average random IOPS 1000ms / 13,2ms = 75,75 Użycie takiego kalkulatora ułatwia liczenie. Dopiero znając wartość parametru IOPS można wyliczyć prędkość transferu danych dla różnych wielkości bloku: 75,75 * 4 kB = 303 kB 75,75 * 8 kB = 606 kB 75,75 * 32 kB = 2424 kB 75,75 * 128 kB = 9696 kB 75,75 * 512 kB = 38784 kB 75,75 * 1 MB = 75,75 MB Jak widać przy losowych operacjach, dopiero bardzo duże wielkości I/O pozwalają na uzyskanie szybkiego transferu danych. Wiemy, że w rzeczywistości komputery operują głównie małymi blokami. Dlatego też przy codziennej pracy trudno zaobserwować prędkości większe od 20 MB/s. Im więcej IOPS, tym wyniki będą lepsze. Problem jest taki, że najszybszy twardy dysk średnio wykonuje 186,92 losowych IOPS i raczej nie ma perspektyw na polepszenie tego wyniku. Od czasu IBM 350 pojemność dysków wzrosła 476625 razy (4,4 MB vs 2 TB). Wydajność tylko 112 razy (1,66 IOPS vs 186,92 IOPS). Niecałe 200 IOPS przy tak dużej ilości danych magazynowanych na pojedynczym HDD to bardzo mało. Już od dawna sposobem na zwiększenie komfortu pracy z dyskiem jest wykorzystanie pamięci półprzewodnikowej. Stosuje się ją jako cache w wielu miejscach: system operacyjny, kontroler, macierz, a także w samym HDD. Odciąża ona dysk. Dzięki temu operacje na najczęściej używanych obszarach danych są wykonywane znacznie szybciej. Im więcej pamięci podręcznej tym lepsze są efekty. Ta zasada była podstawą dla powstania rozwiązań SSD – Solid State Drive, czyli pamięci masowej pozbawionej ruchomych elementów mechanicznych. My name is Solidny, Stan Solidny Dane w tego typu rozwiązaniach przechowywane są nie na materiale magnetycznym, a w pamięci półprzewodnikowej. Warunkiem, jaki musi ona spełniać, jest utrzymanie stanu komórek po odłączeniu zasilania. Dla komputera prezentują się jako zwykły twardy dysk, co sprawia, że ich implementacja jest łatwa. SSD staje się coraz bardziej popularne. Dużą zasługę w tym ma dynamiczny wzrost produkcji i sprzedaży pamięci flash. Krótko mówiąc, technologia ta stała się na tyle tania, że używanie jej jako storage jest już opłacalne. Najbardziej znaną postacią SSD są pendrive’y USB. Idealne do przenoszenia danych między komputerami. Zastąpiły zawodne i mieszczące mało danych nośniki magnetyczne (dyskietki, zipy, taśmy). Kolejnym krokiem w rozwoju Solid State Drive było zastosowanie tej technologii w komputerze jako podstawowej pamięci masowej. W tym celu powstała ich nowa forma – kości flash zamknięte w obudowie standardowego dysku 3,5″, 2,5″ lub 1,8″. Do komunikacji z komputerem wykorzystują typowe interfejsy – SATA, SAS, FC. Pamięci flash w porównaniu z magnetycznymi talerzami mają wiele zalet: brak opóźnień wynikających z ruchu elementów mechanicznych dużo większa odporność na wstrząsy, upadki itp. zdecydowanie niższy pobór prądu bezgłośna praca czas odpowiedzi mniejszy o rząd wielkości (ms vs ns) brak konieczności chłodzenia napędu Na wydajność przekłada się to w postaci rewelacyjnej obsługi losowych operacji odczytu. Problemy z pisaniem W przypadku losowych zapisów nie jest już tak kolorowo. Wynika to z konstrukcji pamięci flash. Powstała ona jako pamięć o zapisie sekwencyjnym. Jej początkowe przeznaczenie to przestrzeń na firmware’y i BIOS’y gdzie taki tryb pracy sprawdza się znakomicie. Flash nie umożliwia bezpośredniej zmiany zawartości komórek pamięci. W tym celu należy wykonać najpierw operację kasowania. Dodatkowo nie można tego zrobić na pojedynczej komórce, tylko na całym bloku (erase segment). Wyklucza to losowy dostęp dla zapisu danych. Zapewnienie takiej funkcjonalności wymaga dodatkowych zabiegów. Każdy producent SSD realizuje to w inny sposób, różnymi algorytmami i z wykorzystaniem różnych dodatkowych komponentów sprzętowych. Brak standardu występuje również w przypadku sposobów radzenia sobie z drugą wadą pamięci flash, jakim jest jej stosunkowo krótka trwałość. Operacja kasowania segmentu komórek wymaga użycia wysokiego napięcia. Twórca tej technologii porównywał to z błyskiem lampy fotograficznej (flash). Efektem takiego traktowania półprzewodników jest degradacja ich właściwości. Zależnie od typu kości, prawidłowe funkcjonowanie komórki szacowane jest na od kilkudziesięciu tysięcy do kilkudziesięciu milionów cykli kasowania-zapisu. Jest to wystarczające dla pendrive’ów wykorzystywanych jako pamięć przenośna. Bez dodatkowych mechanizmów te liczby mogą się jednak okazać za małe w przypadku przestrzeni roboczych, na których zapisy są wykonywane bardzo intensywnie. Jak poznać SSD? Pamięć masowa oparta na półprzewodnikach to ciągle nowość. Aktualnie kilkanaście firm oferuje napędy SSD. Każda z nich ma swoje pomysły na ich budowę. Nie zawsze są one dobre. Różnice w jakości i wydajności są znaczne, a wybór właściwego rozwiązania jest trudny. O ile dla dysków twardych możliwe jest obliczenie mocy produktu na podstawie jego specyfikacji, to w przypadku SSD takiej możliwości już nie ma. Jedyny sposób na poznanie możliwości konkretnego produktu to właściwie przeprowadzone testy wydajnościowe. Wynikiem takich benchmarków będzie oczywiście średnia liczba losowych operacji. Część producentów publikuję te informacje. Trudno jednak uznać ich rzetelność skoro nie wiadomo, w jaki sposób zostały one obliczone/zmierzone. Organizacja Storage Performance Council, zajmująca się testowaniem rozwiązań pamięci masowej, póki co też nie opublikowała jeszcze wyników dla SSD. W takiej sytuacji pozostaje wykonać taki benchmark samodzielnie. Uzyskanie wiarygodnych wyników jest uzależnione od prawidłowego wykonania testów. W tym celu powinny zostać spełnione następujące warunki: Przed testami cała powierzchnia SSD kilkakrotnie zapisana losowymi danymi – Jakość algorytmów odpowiedzialnych za losowy zapis i przeciwdziałających utracie danych można poznać dopiero wtedy, gdy wartość każdej z komórek pamięci flash zostanie kilkakrotnie zmieniona. Osobne testy dla odczytu, zapisu i mieszanego strumienia I/O – W przypadku HDD zapis trwa tylko odrobinę dłużej niż odczyt. Do określenia wydajności wystarcza w tym wypadku tylko jeden parametr – IOPS. Duża różnica w czasie wykonania tych operacji na urządzeniach SSD wymusza zebranie aż trzech wyników: średnia ilość losowych operacji odczytu (OPS) – 100% odczytów; średnia ilość losowych operacji zapisu (IPS) – 100% zapisów; średnia ilość losowych operacji odczytu/zapisu (IOPS) – 50% odczytów / 50% zapisów Operacje I/O wykonywane bezpośrednio na surowym urządzeniu – Testy na systemie plików (NTFS, EXT3, …) nie będą wiarygodne ze względu na cache systemowy. Każdy test powinien trwać kilka godzin – Napędy SSD to w dużej części skomplikowane algorytmy zapisane w firmware. Aby się przekonać czy działają prawidłowo dobrze jest je sprawdzić pod maksymalnym obciążeniem w długim okresie czasu. Niedopasowana wielkość operacji I/O (un-aligned I/O) – Aktualnie pamięć Flash do zapisu używa 4kB segmentów danych. Pisanie mniejszym blokiem wymusza uruchomienie algorytmu, który najpierw odczyta zawartość całego segmentu, zmodyfikuje go nowymi danymi, a na koniec zapisze w docelowym miejscu (read-modify-write). Trwa to znacznie dłużej niż zapis całego segmentu. Testy można wykonać różnymi programami. Muszą one jednak mieć możliwość: generowania zarówno sekwencyjnego jak i losowego strumienia danych regulacji stosunku operacji odczytu do zapisu ustawienia różnych wielkości operacji I/O użycia surowych urządzeń określenia współczynnika trafień w cache Wszystkie te funkcjonalności ma aplikacja Vdbench. Jest to oprogramowanie napisane w języku Java co sprawia, że można je używać w różnych systemach operacyjnych i platformach sprzętowych. Przebieg testu przedstawiany jest w sposób tekstowy, ułatwiający interpretację wyników i tworzenie wykresów. Vdbench jest dostępny na zasadach wolnego oprogramowania. Na koniec… Historia HDD rozpoczęła się ponad 50 lat temu. Dzisiaj to urządzenie powszechne. Jest obowiązkowym elementem niemal każdego komputera. Kręci się w iPod’ach, kamerach, telewizorach… Znacząca większość informacji i wiedzy ludzkości jest magazynowana i udostępniana z dysków twardych. Technologia ta cały czas się rozwija. Dotyczy to jednak jedynie pojemności. Wydajność pozostaje bez zmian już od bardzo dawna. Mimo usilnych starań marketingu i reklamy, nie da się ukryć, że dysk jest “metalową kulą u nogi” współczesnych komputerów. Rozpowszechnienie rozwiązań Solid State jest szansą na znaczne polepszenie mocy pamięci masowej. Skok w wydajności przypomina przesiadkę z kart perforowanych na IBM 350. O ile o mocy HDD wiemy praktycznie wszystko, to wokół SSD ciągle jest mnóstwo tajemnic, spekulacji, nieprawdziwych lub nieaktualnych danych. Jednocześnie są to bardzo drogie rozwiązania. Część z dostępnych aktualnie produktów wydajnością nie odbiega od dysków twardych. Czasami okazuje się, że w realnych warunkach sprawują się one nawet gorzej. Inne rozwiązania sprawdzają się z powodzeniem nawet w macierzach. Na horyzoncie pojawiają się też nowe technologie pamięci półprzewodnikowych, które z czasem zastąpią niezbyt doskonały flash. Minie jeszcze parę lat zanim ta sytuacja się ustabilizuje. Prawdopodobnie pozostanie na rynku kilka firm, których napędy będą miały porównywalną wydajność. Wtedy wybór będzie równie prosty jak dziś w przypadku HDD. Póki co, aby nie wydać niepotrzebnie pieniędzy na produkt, który nie będzie spełniał naszych oczekiwań, pozostaje nam sprawdzać wyniki opisanych testów. Aktualnie są one trudno dostępne i szczątkowe. Ta sytuacja poprawi się wraz ze wzrostem popularności SSD. Niemniej, z pewnością Solid State Drive jest właściwym kierunkiem rozwoju pamięci masowej. Marek Wołynko, ekspert ds. pamięci masowych, Netia SA wmarow@
dlaczego nośniki pamięci masowej mają coraz większe pojemności