Podróż F2FS i dlaczego systemy plików mają znaczenie: wywiad ze Stanem Dmitrievem z Tuxery

XDA przeprowadza wywiad ze Stanem Dmitrievem z Tuxera, fińskiej firmy specjalizującej się w systemach plików. Stan omawia systemy plików i przyszłość F2FS.

Systemy plików nie są zbyt często omawiane na XDA ani na żadnym innym forum. Temat obejmuje wiele prac programistycznych na niskim poziomie, dlatego programiści wolą skupić się na aplikacjach, ROMach lub jądrach. Niemniej jednak system plików jest istotną częścią każdego magazynu. To technologia określająca sposób przechowywania i odzyskiwania danych w pamięci urządzenia. Istnieje wiele różnych rodzajów systemów plików — każdy ma swoje zalety i wady — a wybranie jednego z nich może mieć ogromny wpływ na stabilność i wydajność. W jaki sposób producenci OEM dokonują takiego wyboru? Miałem przyjemność rozmawiać Stana Dymitriewa, kierownik ds. PR i komunikacji w firmie Tuxera, fińska firma dostarczająca rozwiązania w zakresie systemów plików wielu dużym producentom OEM.

P: Czy możesz przedstawić siebie i Tuxerę?

Odp.: Jestem Stan Dmitriew. Odkąd dostałem swój pierwszy telefon z Androidem (HTC EVO 3D), stałem się aktywnym fanem społeczności XDA. Powiedzmy, że zainstalowałem niestandardową pamięć ROM i pierwszego dnia utraciłem gwarancję (
Stana. Dmitriew jest członkiem forum na XDA). Kilka lat temu byłem współzałożycielem projektu startupowego Corgi for Feedly, w tym czasie społeczność XDA bardzo nam pomogła w zdefiniowaniu i rozwoju aplikacji.

Obecnie jestem menadżerem ds. PR i komunikacji w firmie Tuxera, która jest wiodącą firmą na rynku oprogramowania do przechowywania danych wbudowanych, a dokładniej systemów plików. Nasze oprogramowanie obsługuje ponad miliard urządzeń i można je znaleźć w najnowszych flagowych telefonach, samochodach, routerach, dronach i aparatach fotograficznych. Historia firmy rozpoczęła się od NTFS-3G, kiedy nasz prezes i dyrektor ds. technologii Szabolcs „Szaka” Szakactics stworzył system NTFS do pracy z urządzeniami z systemem Linux. Obecnie opracowujemy własne systemy plików i wdrożenia, zarówno dla pamięci zewnętrznych, jak i wbudowanych, i współpracujemy z większością firm motoryzacyjnych, a także wieloma producentami smartfonów.

Tutaj, w Tuxera, dość często odwiedzamy fora XDA, szczególnie podczas rozwiązywania problemów z uszkodzonym urządzeniem lub znajdowania niestandardowej pamięci ROM/jądra do zabawy. Wielu moich kolegów często odwiedza XDA, aby przeczytać najnowsze wiadomości z zakresu zaawansowanych technologii dotyczących ekosystemów Androida i Linuksa.

P: Systemy plików są integralną częścią naszych urządzeń, ale bardzo niewiele osób wie o ich roli, ulepszeniach, mocnych i słabych stronach. Jaki jest w tym dar i dlaczego więcej osób powinno zainteresować się systemami plików przechowującymi ich dane?

O: Systemy plików są istotnym elementem jądra Linuksa, odpowiedzialnym za wszystkie interakcje pomiędzy urządzeniem a jego pamięcią masową. Za każdym razem, gdy robisz zdjęcie, otwierasz aplikację lub oglądasz wideo – system plików odgrywa kluczową rolę dla systemu operacyjnego, umożliwiając dostęp i przechowywanie wszystkich plików. Systemy plików nie były już tak ekscytujące przez jakiś czas, głównym powodem było to, że wąskie gardło w wydajności pochodziło z pamięci masowej.

Ponieważ jednak prędkość flashowania staje się niezwykle duża, szczególnie po wprowadzeniu UFS, obecnie oprogramowanie wymaga modernizacji, aby dotrzymać kroku wydajności flash. System plików może nie tylko wpływać na prędkość przechowywania, ale także odgrywa ważną rolę w utrzymaniu wydajności telefonu w dłuższej perspektywie. Jeśli zostanie to zrobione źle, pamięć ulegnie fragmentacji, co powoduje, że nieefektywne wykorzystanie pamięci może zmniejszyć wydajność urządzenia. Ograniczenie takiej możliwości do minimum jest ważną cechą systemu plików.

P: Co to jest F2FS (podstawa) i dlaczego zaczął pojawiać się na Androidzie? Którzy producenci OEM przewodzili temu oskarżeniu?

O: F2FS to system plików typu open source, którego głównym założeniem jest to, że jest przeznaczony dla architektury pamięci flash. Pamięć NAND (flash) jest używana we wszystkich obecnych telefonach z Androidem, zwykle jako rozwiązania eMMC lub UFS. Projekt został pierwotnie opracowany przez firmę Samsung i spotkał się z dużym zainteresowaniem niektórych mobilnych producentów OEM. Nie mamy danych, według których producenci OEM rozpoczęli tę zmianę. Ale z tego, co wiem, osobiście Motorola była pierwsza, a wielu innych producentów OEM, takich jak OnePlus i Huawei, wkrótce podążyło tą zmianą.

P: Jakie korzyści zapewniało to rozwiązanie? Producenci OEM wymieniają szybsze operacje przechowywania i wydajność interfejsu użytkownika, ale czy są jakieś inne zalety?

O: poziom było całkiem proste, F2FS zapewnia wyższą wydajność pamięci flash. Twój system uruchomiłby się szybciej (większa prędkość odczytu), prędkość zapisu byłaby wyższa, co umożliwiłoby nagrywanie filmów w zwolnionym tempie i 360 stopni w rozdzielczości 4K, z większą liczbą klatek na sekundę. Ponadto opóźnienie między systemem a pamięcią będzie bardzo niskie, co oznacza, że ​​animacja i otwieranie aplikacji będzie znacznie szybsze.

P: Problemy wydają się skupiać w szczególności na pogarszającej się wydajności. Czy mógłbyś to wyjaśnić szerzej? Jaka jest przyczyna?

O: Pomysł z F2FS był naprawdę świetny, aby osiągnąć najszybszą możliwą wydajność dla urządzeń flash. Ale ważne jest również, aby skupić się na wynikach w dłuższej perspektywie. Sprzęt zawsze może być szybki od razu po wyjęciu z pudełka, ale utrzymanie tych prędkości w sposób ciągły jest znacznie trudniejszym wyzwaniem. W przypadku korzystania z Androida pamięć urządzenia jest przez większość czasu prawie pełna, a czasami nawet w ciągu sekundy wykonywane są tysiące operacji odczytu i zapisu. Wiele popularnych aplikacji uruchamia usługi w tle, co oznacza, że ​​aplikacja wykonuje pewne operacje odczytu/zapisu, nawet jeśli jej nie otwierasz. Jeśli zostaną wykonane źle, operacje zapisu mogą drastycznie zwiększyć fragmentację pamięci, sprawiając, że każda następna operacja odczytu/zapisu będzie jeszcze wolniejsza.

Uważamy, że fragmentacja pamięci jest jedną z przyczyn spadku wydajności urządzeń z systemem Android. Teraz należy ustalić, czy problemy są spowodowane kompatybilnością sprzętu i sposobem działania systemu plików pamięci masowej od różnych producentów OEM, czy też architektura F2FS skupia się na prędkościach początkowych, a to wpływa na dłuższą metę wydajność. Problemy mogą być również spowodowane błędami, ponieważ system plików jest wciąż w fazie rozwoju.

P: Czy są jakieś inne, mniej znane problemy z wydajnością lub niezawodnością?

O: Jedną interesującą rzeczą, którą odkryliśmy, jest to, że F2FS generuje nieoczekiwane obciążenie, co najmniej kilkaset MB pamięci na potrzeby buforowania i konserwacji pamięci. To zdecydowanie ma sens, jeśli masz 64 GB lub więcej miejsca na dysku, ale w przypadku budżetowych telefonów z 8 GB i 16 GB pamięci ROM może to stanowić problem.

Głównym wnioskiem jest to, że obecna implementacja F2FS doskonale sprawdza się w środowiskach tylko do odczytu, gdy chcesz osiągnąć wyższe prędkości. F2FS musi skupić się na poprawie długoterminowej wydajności pamięci masowej przy dużej interakcji z małymi plikami, tak jak dzieje się to w środowisku Android.

To w pewnym sensie walka teorii. Możesz sobie wyobrazić, że wydajność sprzętu jest tak szybka, że ​​degradacja nie będzie stanowić problemu. Albo spójrz na to z drugiej strony, gdzie sprzęt jest tak szybki, że należy osiągnąć nieco wolniejszą wydajność, którą można utrzymać na dłuższą metę. F2FS wybrało pierwsze podejście i nie ma tutaj złych opcji, jest to ważny eksperyment do przeprowadzenia i lekcja dla całej branży. Biorąc to pod uwagę, obecnie widzimy, że głównym celem powinny być teraz długoterminowe wyniki.

P: Niektórzy producenci OEM zaprzestali używania F2FS, podczas gdy inni, np. Huawei, nadal obsługują F2FS na najnowszych urządzeniach. Czy sądzisz, że jest jakiś trend w obie strony? (Powolne przyjęcie lub całkowite porzucenie)

Odp.: Istnieje wiele scenariuszy, dla których producenci OEM będą nadal korzystać z systemu F2FS.

  • Producent OEM może mieć własną implementację F2FS, która wprowadza pewne poprawki znanych problemów.

  • Producent OEM może mieć bardzo dobre powiązania z producentem pamięci flash, ponieważ ma dostęp do warstwy FTL NAND i tuningu Dobra współpraca systemu plików ze sprzętem może przynieść znaczące ulepszenia, w tym w zakresie fragmentacji pamięci flash składowanie.

  • Producent OEM mógłby skoncentrować się na początkowej wydajności telefonu, ponieważ średni cykl życia smartfona wynosi około 2 lat, a w miarę jak telefon staje się wolniejszy, będzie już kupować nowy.

  • Producent OEM może również mieć uruchomioną usługę defragmentacji, co może częściowo rozwiązać problemy z F2FS.

Oto niektóre z możliwych scenariuszy, jednocześnie widzimy, że niektórzy producenci OEM już to robią wracając do używania Ext4, na przykład OnePlus 3T używał F2FS, ale wszystkie nowsze modele OnePlus używają Zew4.

P: F2FS potrzebuje obecnie rozwiązania do defragmentacji na bieżąco, które mogłoby rozwiązać problem występujący obecnie w F2FS.

O: Narzędzia do defragmentacji istnieją już od jakiegoś czasu, a ich główną zaletą jest możliwość ponownego przydzielenia/przepisania bloków pamięci w celu ograniczenia fragmentacji pamięci. Problem z tym podejściem polega jednak na tym, że przepisujesz komórki pamięci flash, co skraca żywotność pamięci. Najlepszym scenariuszem byłoby przede wszystkim inteligentne zapisywanie danych. Kontrolowanie szkód nie jest najlepszym rozwiązaniem.

Pomyśl o tym jak o zrobieniu bałaganu w pokoju, rozrzucając mnóstwo rzeczy, a następnie zaczynając je układać w szufladach. Dlaczego nie zrobić tego od razu?

P: Czy producentom OEM udało się przeciwdziałać niektórym problemom powstrzymującym F2FS lub rozwiązać je? Na przykład Huawei odrzuca pogarszającą się wydajność i reklamuje szybszy UX z biegiem czasu, częściowo dzięki swojej „AI”.

O: Cóż, jeśli sztuczna inteligencja może przeanalizować zachowanie pamięci i przepisać system plików tak, aby działał dla konkretnego urządzenia flash, prawdopodobnie rozwiąże to problem fragmentacji. Sztuczna inteligencja może również analizować, z jakich aplikacji lub funkcji dana osoba najczęściej korzysta, i wstępnie je ładować/przechowywać odpowiednio – zwiększenie wydajności telefonu, co nie rozwiązałoby problemu fragmentacji chociaż. Moje główne założenie jest takie, że większość optymalizacji dotyczy przestrzeni użytkownika, a nie jakieś zaawansowane technologicznie optymalizacje systemu plików.

P: Jakie są inne ekscytujące zmiany w systemie plików, o których powinniśmy wiedzieć? Jaki wpływ miałyby na doświadczenie użytkownika, nawet jeśli byłby to subtelny lub niski poziom?

O: F2FS i Ext4 są nadal bardzo istotne i są najczęściej wybieranymi systemami plików dla oprogramowania typu open source. Ext4 jest bardziej dojrzały i niezawodny, ale może ograniczać wydajność pamięci flash; F2FS jest szybszy, ale także bardziej eksperymentalny. Cała sytuacja, w której oprogramowanie staje się wąskim gardłem, sprawia, że ​​systemy plików znów są ekscytujące. Przechodzimy od każdej sekundy do każdej milisekundy, którą środowiska i systemy plików będą odgrywać ważną rolę w tym zwiększeniu wydajności. Najbardziej ekscytującym osiągnięciem w dziedzinie systemów plików byłoby stworzenie rozwiązania rzeczywiście zoptymalizowanego pod kątem pamięci flash, które byłoby w stanie utrzymać wydajność pamięci flash.

W Tuxera rozwijamy system plików Tuxera Flash, w którym robimy takie rzeczy, jak oprogramowanie specyficzne dla sprzętu optymalizacje zapewniające, że system plików jest zoptymalizowany pod kątem konkretnego urządzenia, przypadku użycia i pamięci flash pamięć. Działając w branży motoryzacyjnej, koncentrujemy się głównie na długoterminowej wydajności i degradacji pamięci flash. Jest to raczej optymalizacja typu hardware x software, o której mówił Steve Jobs. Zastosowanie uczenia maszynowego do stworzenia takich „sterowników” to coś, co naszym zdaniem może być naprawdę ekscytujące dla całej branży pamięci masowych.

P: Nasza fizyczna pamięć flash również staje się coraz szybsza. Jak według Ciebie wpływa to zarówno na doświadczenie użytkownika końcowego, jak i na przyszłość systemów plików?

O: Ponieważ sprzęt staje się coraz szybszy, oprogramowanie musi dotrzymać kroku zaawansowanym architekturom sprzętowym. Jest to obecnie główne wyzwanie, przed którym stoją systemy plików. Możesz mieć niesamowitą charakterystykę szybkości odczytu i zapisu urządzenia, ale jeśli stos oprogramowania zapewnia dodatkowe opóźnienia, wrażenia użytkownika nie będą tak szybkie. To ekscytujący czas na rozwój systemów plików, ponieważ istnieje wyraźna potrzeba szybszej, szybszej i jeszcze bardziej niezawodnej technologii dla urządzeń mobilnych.

Jednak w miarę przyspieszania pamięci flash pojawia się główne pytanie: jaka jest prędkość, przy której wydajność staje się nieistotna? Pomyśl o tym jak o rozdzielczości ekranu Retina, gdzie wyższa gęstość pikseli tak naprawdę nie sprawia, że ​​obraz jest wyraźniejszy dla ludzkiego oka.

P: Dziękuję za poświęcony czas.

O: Dzięki!