Alexander Larsson, twórca Flatpak pracujący w firmie Red Hat, zaprezentował wstępną wersję poprawek do jądra Linux z implementacją systemu plików Composefs. Proponowany system plików przypomina Squashfs i jest również odpowiedni do montażu obrazów w trybie tylko do odczytu. Różnice sprowadzają się do zapewnienia w Composefs efektywnego współdzielenia treści wielu zamontowanych obrazów dyskowych oraz wsparcia dla uwierzytelniania odczytywanych danych. Jako obszary zastosowania, w których może być poszukiwana FS Composefs, wymienia się montowanie obrazów kontenerów oraz użycie jako repozytorium podobnego do Gita OSTree.
W Composefs stosuje się model przechowywania oparty na adresacji zawartości, tzn. podstawowym identyfikatorem nie jest nazwa pliku, ale hash jego zawartości. Taki model zapewnia deduplikację i pozwala de facto przechowywać tylko jedną kopię identycznych plików, występujących w różnych zamontowanych partycjach. Na przykład obrazy kontenerów zawierają wiele standardowych plików systemowych, a w przypadku zastosowania Composefs każdy z tych plików będzie współdzielony przez wszystkie zamontowane obrazy, bez stosowania sztuczek, takich jak przekierowywanie za pomocą twardych linków. Przy tym wspólne pliki nie tylko są przechowywane jako jedna kopia na dysku, ale także zajmują jedną pozycję w pamięci podręcznej stron, co pozwala oszczędzać zarówno pamięć dyskową, jak i operacyjną.
Aby zaoszczędzić pamięć dyskową, dane i metadane w zamontowanych obrazach są oddzielone. Przy montowaniu wskazuje się:
- Binarna tabela indeksów, która zawiera wszystkie metadane systemu plików, nazwy plików, prawa dostępu i inne informacje, z wyjątkiem samej zawartości plików.
- Podstawowy katalog, w którym przechowywana jest zawartość plików wszystkich zamontowanych obrazów. Pliki są przechowywane w powiązaniu z hashem ich zawartości.
Indeks binarny jest tworzony dla każdego obrazu systemu plików, a katalog bazowy jest wspólny dla wszystkich obrazów. Aby weryfikować zawartość poszczególnych plików i całego obrazu w warunkach współdzielonego przechowywania, można zastosować mechanizm fs-verity, który przy dostępie do plików sprawdza zgodność z podanymi w indeksie binarnym haszami z rzeczywistą zawartością (tj. jeśli intruz wprowadzi zmiany w pliku w katalogu bazowym lub dane uszkodzą się na skutek awarii, takie porównanie ujawni rozbieżności).
Źródło: opennet.ru
