(Prawie) Wszystko o APFS
W najbliższych latach Apple przeniesie wszystkie swoje platformy — iOS, macOS, tvOS i watchOS – na nowy system plików, nazwany Apple File System (APFS).
Ten artykuł pochodzi z archiwalnego iMagazine 3/2017
Od zera
Prace nad APFS rozpoczęto w 2014 roku pod przewodnictwem Dominica Giampaolo, który całość stworzył od zera – nie bazował na żadnym istniejącym kodzie. To było konieczne, ponieważ HFS został zaprezentowany w 1985 roku, a w 1998 „poprawiony” do wersji HFS+, co oznacza, że nie był projektowany pod współczesne nośniki danych, w tym w szczególności pamięci flash oraz SSD, nie wspominając nawet o tym, że HDD mają zdecydowanie większe pojemności niż kiedyś. Co ciekawe, Dominic Giampaolo przyznał w wywiadzie, że nie szukał inspiracji w takich systemach plików jak OpenZFS, btrfs czy HAMMER.
Cechy APFS
Szyfrowanie – Można było się domyślić, patrząc na ostatnie potyczki Apple ze wszelkimi agencjami jak FBI, że szyfrowanie danych będzie dla nich kluczową kwestią… i jest. AFPS będzie wspierał szyfrowanie danych jednym kluczem lub wieloma kluczami, dla metadanych, danych użytkowników, plików itd. Ponadto APFS ma wspierać generowanie tajnego klucza, którego nie można wyciągnąć z systemu i który jest odpowiedzialny za szyfrowanie wszystkich danych. Dzięki temu nie będzie potrzeby wymazywania i nadpisywania dysku, aby nikt potem tych danych nie odzyskał – wystarczy skasować sam klucz.
Snapshoty i backupy – Snapshoty są funkcją pozwalającą zrobić „obraz” dysku i jego zawartości w danej chwili. Można potem modyfikować tę zawartość, ale zawsze jest opcja wrócenia do wersji z chwili zrobienia snapshota. Ważną kwestią jest to, że zmiany w plikach są śledzone przez system, dzięki temu snapshot nie zajmuje dodatkowego miejsca – tylko nowe dane zajmują dodatkową przestrzeń. Dzisiaj APFS nie jest kompatybilny z Time Machine, ale to się powinno zmienić do czasu jego publicznego debiutu w macOS.
Precyzja – HFS+ potrafi rejestrować zmiany na plikach lub folderach z dokładnością do jednej sekundy. APFS poprawia tę wartość i wspiera różnicowanie danych co 1 nanosekundę.
Zarządzanie – APFS wspiera tworzenie kontenerów, w których może znajdować się wiele woluminów, które z kolei zawierają Namespaces, czyli pliki i foldery. Woluminy w ramach jednego kontenera ponadto współdzielą przestrzeń zarezerwowaną dla niego. Dla przykładu plik sleepimage, w którym są przechowywane informacje na temat komputera, gdy jest uśpiony, może być na osobnym woluminie, dzięki czemu nie będzie częścią danego snapshotu.
Sprawność i kompresja – Pomimo że przestrzeni na dyskach SSD czy pamięciach flash mamy coraz więcej, to jednak nadal jesteśmy ograniczeni w wielu sytuacjach. To nie będzie tak dużym problemem na Macach, ale na iPhone’ach, Apple Watchach czy iPadach już tak. Na temat kompresji jeszcze niewiele wiadomo – rzekomo ma się pojawić przed oficjalnym debiutem APFS, ale jest sporo ciekawych informacji na inne tematy. Oszczędność można również osiągnąć innymi sposobami. Pod APFS, jeśli na przykład macie 10 GB przestrzeni całkowitej, w której znajduje się 1 GB plik, to oznacza, że dany wolumin posiada 9 GB wolnego miejsca. Jeśli zduplikujemy ten plik, to możemy się spodziewać, że zajęte będzie 2 GB miejsca, a wolnego pozostanie 8 GB, ale nic bardziej mylnego. Dopóki kopia danego pliku jest identyczna z oryginałem, to duplikat nie zajmuje dodatkowego miejsca. Dopiero jak jego zawartość się w jakiś sposób zmieni, to APFS wyznaczy mu osobną przestrzeń. Ciekawostka: obecnie duplikaty plików zrobionych za pomocą Findera nie zajmują dodatkowej przestrzeni, ale te zrobione za pomocą komendy cp już tak.
Wydajność – Apple powiedziało, że APFS jest optymalizowany dla pamięci flash, do której zaliczają się również dyski SSD, przestrzeń w naszych iPhone’ach itd. APFS zapisuje dane w sposób przewidywalny dla pamięci flash, aby FTL (Flash Translation Layer) nie musiał wykonywać tyle pracy co przy HFS+. APFS oczywiście wspiera TRIM, dzięki któremu zostaje zachowana wysoka wydajność i sprawność pamięci flash po dłuższym czasie oraz potrafi kolejkować niewielkie operacje We/Wy, aby wykonywać je równocześnie, zwiększając żywotność pamięci w SSD czy w naszych smartfonach i tabletach.
Wady
Niestety, Apple nie „puściło pary z gęby” na temat dbania o integralność naszych danych. O ile APFS wspiera na przykład Copy-on-write (przy jakiejkolwiek zmianie danych są one kopiowane w puste miejsce na dysku, a potem miejsce po starych danych zostaje zwolnione), to nic nie wiadomo na temat sum kontrolnych, które pomogłyby weryfikować, czy z wiekiem dane nie zostały uszkodzone. Bardzo na to liczyłem – ma to szczególne dla mnie znaczenie ze względu na liczbę archiwalnych zdjęć, jakie przechowuję.
Na koniec
APFS to bardzo ważna nowość w świecie współczesnych komputerów. Szczerze przyznam, że spodziewałem się go zobaczyć „na żywo” nie wcześniej niż na WWDC 2017, a realnie spodziewałem się tego dopiero w 2018 roku, ale ostatnia beta iOS już konwertuje dane na ten nowy system plików. To oznacza, że jest szansa na APFS na macOS przed końcem 2017 roku. Biorąc pod uwagę, że HFS ma obecnie ponad 30 lat, to oczekiwałbym, że Apple włoży więcej pracy w takie funkcje jak wspomniane sumy kontrolne, aby można było weryfikować integralność naszych danych (i w razie czego odzyskać to, co zostało uszkodzone). Dobrą wiadomością jest to, że inżynierowie, w tym szef projektu Dominic Giampaolo, wiedzą o tych potrzebach użytkowników, pozostaje więc nam trzymać kciuki, aby zaprezentowali prawdziwie nowoczesny i bezpieczny system plików na następne 30 lat (chociaż patrząc, jak szybko technologia się zmienia, może okazać się, że tylko na 10).