<
  • Главная
Статьи

Podstawowe elementy platformy Flash Virtualization Platform (FVP), część 2. Korzystanie z własnej platformy lub systemu plików

Jednym z tematów, które omawiałem z Satyamem i Murali Vilayannurem, był system plików używany do przechowywania danych na urządzeniach flash. Należy pamiętać o następujących godnych uwagi faktach: Satyam stworzył VMFS3, Murali był wiodącym twórcą VMFS5. Z tego punktu widzenia użycie VMFS wydaje się oczywiste. Jednak wielką niespodzianką dla mnie było to, że dla urządzeń flashowych nie używamy VMFS, jeszcze większą niespodzianką było to, że w ogóle nie używamy systemu plików.

Dlaczego nie VMFS?
Systemy plików zapewniają funkcje, które nie są wymagane, a czasem nawet kolidują z wymaganiami platformy, która przetwarza aktywne we / wy na urządzeniach flash. Jednym z największych problemów związanych z używaniem systemu plików podobnego do VMFS na urządzeniu flashowym jest to, że jest on zoptymalizowany dla systemów pamięci masowej SAN i ich modeli zarządzania danymi; Satyam napisał artykuł na ten temat dla ACM podczas pracy w VMware. Niestety, czyni to system plików nieodpowiednim narzędziem do zadań FVP.

Systemy plików z adresami bezpośrednimi przeciążają urządzenia flash, zmniejszając ich żywotność, nie przetwarzają optymalnie dowolnych operacji we / wy, testują ich (często bardzo delikatne) algorytmy usuwania śmieci pod kątem siły, a ich obiekty (pliki i katalogi) są mniej odpowiednie dla poziom maszyny wirtualnej i jakość zarządzania usługami, co jest niezwykle ważne dla zadań FVP. W następnej części omówiono problem zarządzania danymi na urządzeniach flash, ale na razie krótki wniosek: jeśli urządzenie flash jest dla Ciebie drogie, nie umieszczaj na nim bezpośredniego systemu plików adresowania.

Systemy plików zapewniają również możliwości znacznie przekraczające potrzeby FVP. Na przykład blokady dysku. VMFS ma zaawansowanego menedżera blokowania rozproszonego, który kontroluje dostęp różnych hostów ESXi do dysków. FVP zarządza dyskami lokalnymi hosta i nie wymaga blokad na innych hostach, w wyniku czego menedżer blokady rozproszonej staje się całkowicie zbędny. To samo można powiedzieć o kompatybilności z POSIX i transakcjach rozproszonych. I tak dalej.

Operacje flash niskiego poziomu
Oto przykład tego, jak pisanie na urządzeniach flash różni się zasadniczo od nagrań na dyskach twardych. Flash nie może zastąpić istniejących danych. Dane w pamięci flash można zapisać tylko na pustej stronie. Cechą pamięci flash jest to, że nagrywanie może być wykonywane przez strony, a kasowanie może być wykonywane tylko w blokach. Co to jest strona i co to jest blok? Flash przechowuje dane w komórkach; komórki są łączone w strony (4 KB); strony są pogrupowane w bloki. Większość producentów łączy 128 stron w jeden blok. Jeśli chcesz usunąć stronę, musisz skasować cały blok. Wszystkie niezbędne dane z innych stron powinny zostać zapisane w innym miejscu. Powszechnie wiadomo, że urządzenia flash mają ograniczoną liczbę cykli zapisu i kasowania.

W konsekwencji losowe zapisywanie we / wy może mieć większy wpływ niż sądziłeś. Problem polega na tym, że większość systemów plików została opracowana w latach 80-tych i 90-tych i od tego czasu nie postępowała. Systemy plików nie biorą pod uwagę pogorszenia wydajności, które powodują w urządzeniach flash wykorzystujących operacje niskiego poziomu zaprojektowane dla dysków twardych; Większość producentów urządzeń flash wdraża różne mechanizmy, aby uwzględnić postępującą degradację wydajności. Z pomocą kilku schematów rozważamy te mechanizmy i ustalamy, dlaczego fragmentacja ma taki wpływ na urządzenia flash.

Zarządzanie zużyciem
Zauważ, że dla uproszczenia postanowiłem pokazać 9 stron w jednym bloku zamiast 128 stron na blok.

Zacznijmy od procesu zarządzania zużyciem. W tym przykładzie aplikacja utworzyła już dane i zapisała je na stronach A, B i C w bloku 1 (krok 1). Pojawiają się nowe dane (krok 2), które są zapisywane na stronach D, E i F. Aplikacja aktualizuje poprzednie dane (AC) i zamiast korzystać z poprzednich stron, urządzenie flash nadal korzysta z nowych stron. Te nowe dane są oznaczone jako A-1, B-1 i C-1. Dystrybucja rekordów tak równomiernie, jak to możliwe, nosi nazwę „zarządzania zużyciem”. Stare strony są teraz oznaczone jako wygasłe.

Zbieranie śmieci i wielokrotne wprowadzanie
W tym przykładzie blok A jest pełny, a co się stanie, jeśli miejsce dostępne dla użytkownika na nagrywanie się skończy i pojawią się nowe dane?

Flash skopiuje bieżące dane do pustych komórek. Rzeczywiste dane w bloku są odczytywane i zapisywane w innym bloku. Przeterminowane dane pozostaną na stronach i zostaną usunięte wraz z pozostałymi stronami bloku. Ten proces nosi nazwę „usuwania śmieci”.

Usuwanie śmieci jest w porządku, ale wielokrotne wprowadzanie podczas działania powoduje znaczne uszkodzenia urządzeń flash. Aby nagrać 3 strony, urządzenie flash musi odczytać 6 stron i zapisać 6 stron w innym miejscu, zanim będzie mogło zapisać nowe dane. I nie zapomnij o cyklu kasowania. Załóżmy, że scenariusz, w którym dysk jest pełny, gdzie będziemy (tymczasowo) przenieść dane przed nagraniem nowych danych? W moim diagramie dodałem blok B dla tej opcji. Aby to zrobić w rzeczywistej sytuacji (podczas korzystania z systemu plików), należy przydzielić nadmiar miejsca zarezerwowany przez lampę kontrolną.

Aby to zrobić w rzeczywistej sytuacji (podczas korzystania z systemu plików), należy przydzielić nadmiar miejsca zarezerwowany przez lampę kontrolną

Nadmiar przestrzeni
Pojemność pamięci flash może być zarezerwowana dla procesów zarządzanych przez kontroler flash. Może to zrobić zarówno producent urządzenia flash, jak i użytkownik. Na przykład, gdy kupujesz akcelerator flash PCIe 160 GB, w rzeczywistości otrzymujesz kartę 192 GB. 160 GB jest dostępne dla użytkownika, a 32 GB jest zarezerwowane dodatkowo dla operacji na poziomie kontrolera typu flash, takich jak usuwanie śmieci, korekcja błędów i oprogramowanie układowe kontrolera. Kiedy kupujesz nieprzemysłowy dysk SSD, zazwyczaj masz trochę zarezerwowanej przestrzeni nadmiarowej. Podczas formatowania tego urządzenia flash w dowolnym systemie plików należy pamiętać o tych funkcjach i ewentualnie zarezerwować dodatkowe miejsce poza dostępną pojemnością. Obecnie nie ma standardowych zaleceń dotyczących skalowania, więc musisz dokonywać wyborów na podstawie własnych doświadczeń. W najgorszym przypadku znajdziesz się na rozdrobnionym dysku, a dysk SSD będzie musiał stale przesyłać dane, aby pisać nowe. Wyobraź sobie, że dzieci bawią się w tagi, tylko wzór ruchu jest nieco bardziej skomplikowany.

Ponowne rozpatrywanie zarządzania danymi na urządzeniach flash
Inżynierowie PernixData opracowali nowy format zarządzania danymi na urządzeniach flash dla FVP. Szczegóły zostaną ujawnione w kolejnych artykułach, a teraz kilka podstawowych punktów.

Zoptymalizowany do flashowania
Format jest przeznaczony do przechowywania tymczasowych danych we / wy z minimalnym możliwym zestawem metadanych i pracy z urządzeniem flash z maksymalną dostępną wydajnością. Konwertuje losowe wpisy na kolejne, aby wykorzystać wyższą wydajność pamięci flash w trybie zapisu sekwencyjnego. Zmniejsza to liczbę nadpisań nadmiarowych danych i usuwa cykle. Algorytm nie zawiera odziedziczonych ograniczeń systemów plików, takich jak duże rozmiary bloków, katalogi, pliki, długie transakcje, menedżery blokad itp.

Dynamicznie współdzielona pojemność między maszynami wirtualnymi
Dzięki głęboka integracja Dzięki VMkernel FVP może śledzić bloki danych i określać, czy ich maszyna wirtualna odczytuje lub zapisuje. Niezależnie od śledzenia takich operacji platforma może skalować bufory odczytu i zapisu w przestrzeni przydzielonej dla maszyny wirtualnej. FVP może buforować lub usuwać dowolny zestaw danych maszyny wirtualnej z pamięci podręcznej. Natomiast polityka ewakuacji danych w tradycyjnym systemie plików dla urządzenia flash będzie nieoptymalna i spowoduje wielokrotne przepisywanie, ponieważ system plików może zapisywać dane tylko na końcu pliku lub usuwać bloki z końca.

Oznacza to również, że nie trzeba przypisywać statycznej konfiguracji przestrzeni pamięci podręcznej dla każdej maszyny wirtualnej, tak jak w przypadku korzystania z systemu plików z bezpośrednim adresowaniem. To była dla nas świetna decyzja; doświadczenie użytkownika z produktu powinno być tak intuicyjne, jak to możliwe.

Cytuję naszego menedżera produktu Bala: „Elegancja produktu, moim zdaniem, polega na tym, że wykonuje podstawowe zadania, NIE wymagające żadnych nowych lub niezwykłych działań ze strony użytkownika”.

Jeśli chodzi o codzienną pracę, jest to doskonałe: nie trzeba wstępnie skalować pamięci podręcznej dla każdej maszyny wirtualnej. Oznacza to, że nie musisz znać i przewidywać przyszłego użycia flasha - FVP zrobi wszystko za Ciebie. Brak alokacji zasobów oznacza brak wykorzystania flasha przez nieobciążone maszyny wirtualne i pojawienie się nadmiarowych cykli czyszczenia bloków dla aktywnych maszyn wirtualnych o niewystarczającym rozmiarze pamięci podręcznej flash. Minimalizuje to problem wielu nagrań i zapewnia maksymalną wydajność i niezawodność urządzeń flash.

Artykuł oryginalny .

Od 2016 FVP wycofany ze sprzedaży.

Dlaczego nie VMFS?
Co to jest strona i co to jest blok?
Załóżmy, że scenariusz, w którym dysk jest pełny, gdzie będziemy (tymczasowo) przenieść dane przed nagraniem nowych danych?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью