¿Por qué usar AUFS como el backend de almacenamiento de Docker predeterminado en lugar de devicemapper?


La descripción del proyecto Atomic de Docker backends de almacenamiento describe las diferencias técnicas entre AUFS y otras opciones de backend de almacenamiento, como devicemapper. AUFS no está en el kernel de Linux. ¿Por qué se elige AUFS como el backend de almacenamiento predeterminado (por ejemplo, en la Docker de Ubuntu)? ¿Hay algunas propiedades técnicas de AUFS que lo hacen una mejor opción que un backend de almacenamiento como devicemapper que parece ser compatible con un núcleo Linux sin parches?

 28
Author: Markus Hallmann, 2014-07-15

3 answers

AUFS es solo el back-end de almacenamiento predeterminado en los sistemas/distribuciones que lo tienen disponible. De lo contrario, devicemapper es el valor predeterminado. Ubuntu 14.04, por ejemplo, por defecto es 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

Esto cambió en Docker 0.7.0. Antes de la 0.7.0, Docker confiaba en AUFS como su único controlador de almacenamiento, por lo que era el predeterminado en versiones anteriores de Ubuntu.

 14
Author: Ben Whaley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-16 05:06:59

Estoy lejos de ser un experto en sistemas de archivos, pero la gente de Discourse, que lo es, recomienda encarecidamente usar AUFS, y no DeviceMapper. El uso de DeviceMapper puede resultar en"un mundo de dolor".

Por qué usar DeviceMapper para Discourse apesta

 7
Author: Dan Dascalescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-19 02:43:47

La documentación de Docker dice:

El controlador aufs es el más antiguo, pero está basado en un conjunto de parches del kernel de Linux que es poco probable que se fusione en el kernel principal. También se sabe que causan algunos fallos graves en el kernel.

Tuve esos fallos del kernel con Docker 17.06.2~ce-0~ubuntu en Ubuntu 16.04 con kernel predeterminado.

Estoy usando overlay2 en el sistema de archivos ext4; Docker ahora funciona bien.

 1
Author: Shi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-24 20:43:05