Dlaczego systemy plików nakładkowych zwiększają liczbę zapisów kontenerów na serwerze domowym?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Systemy plików nakładkowych zwiększają ilość zapisów w kontenerach serwerów domowych, ponieważ zmiana pliku warstwy obrazu może wymagać skopiowania go do warstwy zapisywalnej, zanim nowe dane zostaną zapisane.

Największe zwiększenie zapisu występuje, gdy aplikacja modyfikuje duże pliki w dolnej warstwie, tworzy struktury bogate w metadane lub przechowuje aktywne dane w systemie plików root kontenera. Widoczny zapis może być niewielki, ale OverlayFS musi zachować niezmienne warstwy obrazu, zaktualizować scaloną przestrzeń nazw i skierować wszystkie zmiany do oddzielnego katalogu górnego.

Pierwsza modyfikacja dolnej warstwy wywołuje kopiowanie w górę

OverlayFS nie może edytować pliku dolnej warstwy tylko do odczytu bezpośrednio. Przy pierwszej modyfikacji kopiuje plik lub wymagane metadane do warstwy górnej, a następnie stosuje tam zmianę. Przewodnik OverlayFS dotyczący kopiowania w górę łączy to zachowanie z wolniejszymi zapisami, wyszukiwaniem inode i wzrostem warstw.

Edytowanie jednego kilobajta dużego pliku może więc wymagać odczytu i zapisu znacznie większej ilości danych niż jeden kilobajt. Późniejsze modyfikacje zwykle dotyczą bezpośrednio kopii w warstwie górnej, więc kara nie jest identyczna przy każdym zapisie. Historia obciążenia ma znaczenie: test wydajności na świeżym kontenerze może wykryć zdarzenie kopiowania w górę, które w rozgrzanym kontenerze już miało miejsce.

Zmiany metadanych mogą się mnożyć bez dużych danych

Zmiany nazw, usuwanie, zmiany właściciela i operacje na katalogach modyfikują scalony widok. Whiteouty ukrywają wpisy z dolnej warstwy bez usuwania ich z niezmiennego obrazu, a metadane katalogów mogą wymagać własnej reprezentacji w warstwie górnej. Aktualny przewodnik po wewnętrznych mechanizmach przechowywania kontenerów wyjaśnia, jak współpracują katalogi lower, upper, work i merged.

Menedżery pakietów i aktualizatory aplikacji są szczególnie wymagające, ponieważ zastępują wiele plików, dostosowują uprawnienia i aktualizują indeksy. Wynik może wzrosnąć tylko o kilka megabajtów, podczas gdy system plików wykonuje tysiące operacji na metadanych.

Akcja kontenera Praca Overlay Potencjalne zwiększenie Lepsza lokalizacja
Edytuj mały plik konfiguracyjny dolnej warstwy Kopiowanie w górę, a następnie modyfikacja Kopiuje więcej niż zmienione bajty Wolumen konfiguracyjny, jeśli trwały
Aktualizacja drzewa pakietów Wiele kopiowań w górę i zmian metadanych Duży ruch inode i dziennika Odbudowa obrazu, gdy to możliwe
Zapis bazy danych Powtarzające się zapisy w warstwie górnej po początkowym kopiowaniu Zwiększenie zapisu systemu plików i bazy danych Dedykowany wolumen
Usunięcie pliku obrazu Utworzenie whiteoutu Bajty dolnej warstwy pozostają zapisane Usunięcie w odbudowanej warstwie obrazu

System plików bazowy może dodać drugą warstwę CoW

Jeśli OverlayFS działa na systemie plików NAS z kopiowaniem przy zapisie (CoW), jedna zmiana w kontenerze może najpierw skopiować plik do katalogu górnego, a następnie spowodować, że system plików bazowy przydzieli nowe bloki i metadane. Migawki mogą zachować poprzednie bloki, zwiększając koszt przestrzeni poza aktywną warstwą kontenera.

To nie oznacza, że każda kombinacja CoW jest nieużyteczna. Oznacza to, że efektywna ścieżka zapisu ma wiele granic alokacji. Przewodnik po wydajności sterownika magazynu overlay zaleca przeniesienie ścieżek intensywnie zapisujących do wolumenów, aby ominąć ścieżkę kopiowania w górę warstwy obrazu.

Wolumeny omijają zapisywalną warstwę obrazu

Zamontowany wolumen prezentuje własną ścieżkę przechowywania w wybranym katalogu. Strony bazy danych, przesyłane pliki, pamięci podręczne i logi zapisywane tam nie modyfikują najpierw plików dolnej warstwy obrazu. Zmniejsza to pracę nakładki i oddziela dane trwałe od wymiany kontenera.

Badania wydajności porównujące zapisy OverlayFS i montowanie wolumenów wykazały dużą różnicę w niektórych testowanych środowiskach. Dokładny współczynnik nie jest uniwersalny, ale granica architektoniczna jest jasna: wolumen omija system plików root nakładki dla zamontowanej ścieżki.

Mierz zapisy na hoście, nie tylko wyjście aplikacji

Porównuj bajty aplikacji z zapisami systemu plików i urządzenia, testuj zarówno pierwszą modyfikację, jak i stan ustalony. Obserwuj rozmiar warstwy górnej, aktywność inode, ruch dziennika, wzrost migawek i liczniki zapisów SSD na hoście. Wysoki współczynnik może pochodzić z bazy danych, kopiowania w górę nakładki, bazowego CoW lub zbierania śmieci na pamięci flash.

Dyskusja o danych kontenera i zużyciu SSD dodaje kontekst cyklu życia serwera domowego: logi, pliki tymczasowe i aktywne wolumeny powinny być zarządzane oddzielnie, zamiast traktować każdy zapis jako dane obrazu.

FAQ

Czy OverlayFS kopiuje plik dolnej warstwy przy każdej edycji?

Zazwyczaj główne kopiowanie w górę następuje przy pierwszej modyfikacji. Późniejsze zapisy dotyczą kopii w warstwie górnej, chociaż dziennikowanie, migawki i zachowanie aplikacji mogą nadal zwiększać fizyczne zapisy.

Czy wolumen nazwany wyeliminuje całkowicie zwiększenie zapisu?

Nie. Omija kopiowanie w górę nakładki dla tej ścieżki, ale bazy danych, dzienniki, systemy plików CoW, RAID i zbieranie śmieci SSD mogą nadal powodować zwiększenie zapisu.

Dlaczego usuwanie plików nie zmniejsza warstw obrazu?

Dolne warstwy obrazu są niezmienne. Warstwa górna rejestruje, że wpis jest ukryty, podczas gdy oryginalne bajty pozostają, dopóki warstwa obrazu nie jest już referencjonowana i nie zostanie usunięta.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.