2014-07-15 5 views
27

Opis Atomic Docker storage backends opisuje techniczne różnice między AUFS i innymi opcjami zaplecza pamięci masowej, takimi jak devicemapper. AUFS nie znajduje się w źródłowym jądrze systemu Linux. Dlaczego wybrano AUFS jako domyślny backend pamięci (na przykład w Dockerze Ubuntu)? Czy są jakieś techniczne właściwości AUFS, które czynią go lepszym wyborem niż backend pamięci masowej, taki jak devicemapper, który wydaje się być obsługiwany przez niezałatowane jądro Linux?Dlaczego warto używać AUFS jako domyślnego zaplecza magazynu Docker zamiast devicemapper?

Odpowiedz

14

AUFS jest tylko domyślnym zapleczem zaplecza w systemach/dystrybucjach, które go udostępniają. W przeciwnym razie domyślnie jest to devicemapper. Ubuntu 14.04, na przykład, domyślnie devicemapper:

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=14.04 
DISTRIB_CODENAME=trusty 
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS" 
$ docker info | grep Storage 
Storage Driver: devicemapper 

Zmieniło w Docker 0.7.0. Przed wersją 0.7.0 Docker opierał się na systemie AUFS jako jedynym sterowniku pamięci, dlatego był on domyślny we wcześniejszych wersjach Ubuntu.

+1

Ciekawe, że Ubuntu 14.04 również domyślnie jest devicemapper. Jednak link mówi: "Jeśli twój system obsługuje AUFS, będzie nadal używać sterownika AUFS". A co z AUFS sprawia, że ​​Docker woli go od devicemapper, jeśli jest dostępny? –

+0

Po prostu, jeśli system ma obsługę aufs z dockerem przed 0.7, nadal będzie chciał, aby ich obrazy działały. Jeśli zmieni się sterownik pamięci, obrazy będą niekompatybilne, co zepsułoby te systemy. Nie ma żadnej technicznej korzyści dla nas informacji aufs na urządzeniu mapującym. –

+4

Mamy problemy z wydajnością w AWS z devicemapper (instancja m3.medium, dysk EBS podłączony do/var/lib/docker dir). Z systemami plików btrfs/etx4 i devicemapper mamy czasy kompilacji około 20 minut. Z systemem plików btrfs i btrfs devicemapper skracamy czas kompilacji do 12 minut. Z systemem plików ext4 i aufs devicemapper zajmuje to około 6 minut. Istnieją więc różnice w poziomach wydajności przynajmniej w infrastrukturze AWS. – msgre

7

Nie jestem ekspertem od systemów plików, ale ludzie z Dyskursu, którzy są, strongly recommend using AUFS, and not DeviceMapper. Korzystanie z DeviceMapper może spowodować "świat bólu".

Why using DeviceMapper for Discourse sucks

+0

Ostatnio mam problem z kodem wyjścia do modułu dokowania 159, co oznacza, że ​​przekracza pewne ograniczenia rozmiaru pliku. W końcu dowiaduję się, że jest to spowodowane przez urządzenie odwzorowujące urządzenia, więc należy ponownie zainstalować dokowanie i zmienić, aby użyć sterownika nakładki. – Jianyu

0

The Docker documentation mówi:

Kierowca aufs jest najstarszym, ale jest oparty na Linux kernel patch-zestaw, który jest mało prawdopodobne, aby być włączone do głównego jądra. Są one również znane z powodu poważnych awarii jądra.

Miałem awarie kernela z Dockerem 17.06.2 ~ ce-0 ~ ubuntu na Ubuntu 16.04 z domyślnym jądrem.

Używam overlay2 w systemie plików ext4; Docker teraz działa dobrze.

Powiązane problemy