2014-07-15 8 views
27

Descrizione di Project Atomic di Docker storage backends descrive le differenze tecniche tra AUFS e altre opzioni di back-end di archiviazione, come ad esempio devicemapper. AUFS non è nel kernel Linux upstream. Perché AUFS è scelto come back-end di archiviazione predefinito (ad esempio in Docker di Ubuntu)? Ci sono alcune proprietà tecniche di AUFS che lo rendono una scelta migliore rispetto a un back-end di storage come ad esempio il devicemapper che sembra essere supportato da un kernel Linux senza patch?Perché utilizzare AUFS come backend di archiviazione Docker predefinito invece di devicemapper?

risposta

14

AUFS è solo il back-end di memorizzazione predefinito su sistemi/distribuzioni che lo hanno disponibile. Altrimenti, devicemapper è l'impostazione predefinita. Ubuntu 14.04, ad esempio, il valore predefinito è 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 

questo è cambiato in Docker 0.7.0. Prima di 0.7.0, Docker faceva affidamento su AUFS come unico driver di archiviazione, motivo per cui era il default nelle versioni precedenti di Ubuntu.

+1

Interessante che anche Ubuntu 14.04 sia impostato su Devicemapper. Tuttavia, il link dice: "Se il tuo sistema supporta AUFS, continuerà a utilizzare il driver AUFS". Che ne è di AUFS che Docker preferisce su Devicemapper, se disponibile? –

+0

Solo che se un sistema ha un supporto con docker prima di 0.7, vorrebbe comunque che le loro immagini funzionino. Se il driver di archiviazione ha cambiato le immagini sarebbe incompatibile, rompendo così quei sistemi. Non ci sono vantaggi tecnici per noi informazioni su device mapper. –

+4

Abbiamo problemi di prestazioni su AWS con devicemapper (istanza m3.medium, disco EBS montato su/var/lib/directory docker). Con btrfs/etx4 filesystem e devicemapper abbiamo tempi di costruzione di circa 20 minuti. Con btrfs filesystem e btrfs devicemapper riduciamo i tempi di costruzione a 12 minuti. Con ext4 filesystem e aufs devicemapper ci vogliono circa 6 minuti. Quindi, ci sono differenze con i livelli di prestazioni sull'infrastruttura AWS almeno. – msgre

7

Sono lontano da un esperto di filesystem, ma la gente al Discourse, che sono, strongly recommend using AUFS, and not DeviceMapper. L'uso di DeviceMapper può portare a "un mondo di dolore".

Why using DeviceMapper for Discourse sucks

+0

Ho difficoltà con il codice di uscita 159 della docker di recente, il che significa che una sorta di limitazione delle dimensioni del file supera. Finalmente ho scoperto che è causato dal device mapper, quindi ho reinstallato la finestra mobile e cambiato per usare il driver overlay. – Jianyu

0

Il Docker documentation dice:

Il driver aufs è la più antica, ma si basa su un kernel patch-set di Linux che è improbabile che venga fusa nel kernel principale. Questi sono anche noti per causare alcuni gravi crash del kernel.

ho avuto quei crash del kernel con Docker 17.06.2 ~ ce-0 ~ ubuntu su Ubuntu 16.04 con il kernel di default.

Sto usando overlay2 sul file system ext4; Docker ora funziona correttamente.

Problemi correlati