Opublikowana platforma SEF dla programowo zarządzanych pamięci Flash

Organizacja Linux Foundation zaprezentowała pierwszą wersję otwartej platformy dla programowo zarządzanych nośników Flash SEF (Software Enabled Flash), opracowanej na podstawie kodu przekazanego przez firmę KIOXIA (dawniej Toshiba Memory Corporation), w której w 1980 roku wynaleziono pamięć Flash. Źródłowe teksty narzędzi są napisane w języku C i są udostępniane na licencji BSD.

Narzędzie obejmuje zestaw poprawek do jądra Linux, blokowy sterownik dla urządzeń SEF (Software Enabled Flash), narzędzia do zarządzania z linii poleceń, parawirtualizowane sterowniki SEF dla QEMU, bibliotekę z API do tworzenia aplikacji, poprawki do nvme-cli i FIO, które dodają wsparcie dla SEF. SDK zawiera również wzorcową implementację poziomu oprogramowania FTL (Flash Translation Layer), który zapewnia tłumaczenie poleceń urządzeń blokowych na odwołania do rzeczywistego układu pamięci Flash, zarządzanie pamięcią i rozkład danych w komórkach pamięci. FTL implementuje wsparcie dla elastycznego umieszczania danych (FDP – Flexible Data Placement), przestrzenowania (ZNS – Zoned Namespace) oraz specyfikacji NVMe.

W tradycyjnych nośnikach Flash dla zewnętrznych systemów nośnik stanowi czarną skrzynkę, w której część pamięci jest rezerwowana na operacje serwisowe, a wskaźniki wydajności są zmienne, co prowadzi do nieprzewidywalnych opóźnień spowodowanych wewnętrzną aktywnością kontrolera, na przykład podczas zarządzania pamięcią. W przeciwieństwie do tradycyjnych nośników Flash, które zarządzają rozkładem danych, izolowaniem uszkodzonych bloków oraz zarządzaniem pamięcią za pomocą oprogramowania kontrolera, nośniki wspierające SEF pozwalają na przeniesienie logiki niskopoziomowego zarządzania układem pamięci Flash na stronę oprogramowania i systemu operacyjnego.

SEF umożliwia bezpośrednie zarządzanie fizycznym rozmieszczeniem danych, modyfikację algorytmów rozkładu obciążenia, zarządzanie priorytetami oraz QoS, eliminację dodatkowej warstwy translacji bloków, wykorzystanie całej dostępnej pamięci, osiągnięcie przewidywalnej pracy z nośnikiem oraz dzielenie nośnika na wirtualne urządzenia, izolowane na poziomie wejścia/wyjścia i mające różne priorytety w przetwarzaniu. Proponowane podejście w SEF pozwala na zmniejszenie narzutów oraz zwiększenie efektywności interakcji z nośnikiem dzięki dostosowaniu do bieżących potrzeb logiki zbierania śmieci, rezerwacji pamięci oraz rozkładu bloków w celu zmniejszenia zużycia.

Na przykład SEF pozwala na normalizację wydajności w warunkach korzystania z macierzy składającej się z nośników zakupionych w różnym czasie, o różnych charakterystykach. Dla nośników, które głównie wykorzystywane są tylko do odczytu, dzięki SEF możliwe jest zastosowanie prostszych algorytmów rozkładu bloków oraz zmniejszenie pamięci rezerwowanej na cele serwisowe.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster