Union mount w systemie Linux

11

Unia zamontować przedstawia łączny widok wielu katalogów (oddziały) w jednej hierarchii. Ok, ale jak mam używać jednego w praktyce i który?

Wiele technologii montowania związków jest dostępnych w nowoczesnym systemie Linux: OverlayFS , aufs , UnionFS , różne systemy plików oparte na FUSE,…

Biorąc pod uwagę przypadek użycia, jak zdecydować, które są odpowiednie? W szczególności:

  • Które wymagają dostępu do roota w typowym systemie? (Innymi słowy, czy nieuprzywilejowany użytkownik może utworzyć podłączenie związku?)
  • Na których można zamontować /(oczywiście z dostępem root)?
  • Które obsługują pisanie do podstawowych oddziałów? (Tj. Czy /fooi czy /barsą podłączeni do związku /union, czy mogę pisać do /fooi /bar?)
  • Które obsługują konfigurowalne zasady zapisu? (Np. Czy mogę wysłać nowo utworzone pliki do gałęzi B, mimo że otrzymuję zawartość z gałęzi A, gdy plik istnieje w obu gałęziach?)
  • Które obsługują kolejność priorytetów między oddziałami, która zależy od plików? (Np. Czy zawsze mogę pobrać najnowszy plik spośród wszystkich gałęzi, które go mają?)

Docenione zostaną przykłady użycia.

Unikaj odpowiedzi koncentrujących się na konkretnym punkcie. Szukam wyczerpujących odpowiedzi, które przeglądają dostępne oprogramowanie (coś podobnego do What is bind mount? ). Dobre odpowiedzi zostaną nagrodzone.

Gilles „SO- przestań być zły”
źródło

Odpowiedzi:

12

W każdym z konkretnych punktów:

  • Dostęp do roota: Jeśli używa FUSE, nie potrzebuje roota, jeśli nie używa FUSE, potrzebuje roota, chyba że wykonasz specjalną konfigurację z możliwościami (potencjalnie niebezpiecznymi) lub przestrzeniami nazw.

  • Montowanie /: zakładam, że masz na myśli główny system plików podczas uruchamiania, w którym to przypadku każdy z nich, który działa w trybie jądra, powinien teoretycznie działać, chociaż niektóre są bardziej niezawodne niż inne. Większość LiveCD to robi, dlatego sugerowałbym poszukiwanie informacji na ten temat.

  • Pisanie do podstawowych gałęzi: To zależy od tego, co masz na myśli. Jeśli masz na myśli propagowanie zapisów do zamontowanego widoku do niższych gałęzi, nie mam pojęcia. Jeśli masz na myśli pisanie do niższych gałęzi poza pasmem z samego głównego systemu plików, technicznie wszystkie duże trzy tak robią, ale wszystkie wymagają ponownego podłączenia, aby zapewnić, że zmiana zostanie propagowana do zamontowanego widoku.

  • Konfigurowalne zasady zapisu: nie wiem dokładnie o tym, ale myślę, że duże 3 (UnionFS, AUFS i OverlayFS) nie obsługują tego.

  • Kolejność priorytetów zależna od pliku: Myślę, że ten rodzaj również należy do trzeciego pytania częściowego i podobnie jak tam, nie znam żadnego, który by to konkretnie wspierał.

Jeśli chodzi o więcej szczegółów na temat każdego z nich:

  • UnionFS: O ile mi wiadomo, była to oryginalna implementacja systemu plików unii z możliwością ustawiania piętrowego dla systemu Linux. Jest już od wieków i jest używany przez wiele LiveCD na Linuksie. Działa w trybie jądra i wymaga użycia łatek do jądra.

  • AUFS: Powstał jako rozwidlenie UnionFS, a potem stał się czymś innym. Ten próbował połączyć główną linię i został odrzucony ze względu na jakość kodu. Zastąpił UnionFS w niektórych dystrybucjach LiveCD, głównie pochodnych Debiana i Gentoo. Podobnie jak UnionFS, działa w trybie jądra i wymaga łatek do jądra.

  • OverlayFS: Nie wiem wiele o oryginalnym rozwoju tego, poza tym, że jest on obsługiwany również w kilku pochodnych BSD. Jest to w szczególności implementacja systemu plików nakładki / unii w jądrze Linuksa. Działa również w trybie jądra.

  • UnionFS-FUSE: Ten nieco myląco nazwany projekt w rzeczywistości nie ma nic wspólnego z UnionFS poza zapewnianiem zasadniczo tej samej funkcjonalności. Jest to najczęściej stosowana implementacja FUSE systemu plików unii, ale to wszystko, co o niej wiem.

  • mhddfs: Ten jest dziwną wartością odstającą, która jest bardziej zbliżona do ziarnistości implementacji RAID-0 niż konwencjonalny unijny system plików. Obsługuje równoważenie plików w wielu katalogach kopii zapasowych w oparciu o wykorzystanie miejsca. Jest również oparty na BEZPIECZNIKU.

Należy zwrócić uwagę na kilka konkretnych rzeczy, które nie są specyficzne dla konkretnej implementacji:

  • Wszystkie opcje wbudowane w jądro mają ograniczenia co do tego, jakie mogą być systemy plików kopii zapasowych, w szczególności nie działają z sieciowymi systemami plików lub BTRFS.

  • Wszystkie implementacje FUSE mają problemy, gdy są używane jako główny system plików. Nie dotyczy to implementacji unijnego systemu plików, ale ogólnie jest większym problemem z FUSE.

Austin Hemmelgarn
źródło