Configurar docker-storage-setup

Recientemente Docker añadió opciones para configurar el método de almacenamiento de los volúmenes. El método por defecto (dispositivos loop) no se considera muy apropiado para entornos de producción, así que veamos cómo configurarlo para que use LVM directamente.

Este ejercicio está realizado en Fedora 23, y asume que ya tienes configurado el ordenador con particionado LVM.

Averigua de dónde puedes sacar espacio

Comprueba qué volúmenes lógicos tienes en tu sistema:

# lvm lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home system -wi-ao---- 411,41g
  root system -wi-ao----  50,00g
  swap system -wi-ao----   3,86g

Comprueba cuánto espacio tienes en cada uno:

# df --human-readable
S.ficheros              Tamaño Usados  Disp Uso% Montado en
devtmpfs                  3,9G      0  3,9G   0% /dev
tmpfs                     3,9G   2,5M  3,9G   1% /dev/shm
tmpfs                     3,9G   1,8M  3,9G   1% /run
tmpfs                     3,9G      0  3,9G   0% /sys/fs/cgroup
/dev/mapper/system-root    50G   6,3G   41G  14% /
tmpfs                     3,9G   336K  3,9G   1% /tmp
/dev/sda1                 477M   136M  313M  31% /boot
/dev/mapper/system-home   405G   238G  147G  62% /home
tmpfs                     798M    16K  798M   1% /run/user/42
tmpfs                     798M    48K  798M   1% /run/user/1000

Aquí vemos que en / y /home me sobra bastante espacio. Voy a quitarle 20GiB a /home, ya que para reducir el tamaño de / es algo más complicado (aunque no demasiado).

Reduce un volumen lógico

Voy a necesitar la cuenta de root habilitada para entrar al modo emergencia, así que voy a activarla:

# passwd --force --unlock root

Ahora entraré en modo emergencia para poder desmontar /home:

# systemd isolate emergency.target

Dentro de este modo, voy a reducir /home. Esto tomará un tiempo, dependiendo del tamaño de la partición:

# lvm lvresize --resizefs --size -20G system/home

Regresaré al modo gráfico y desactivaré la cuenta de root:

# systemd isolate graphical.target
# passwd --lock root

Ahora la próxima vez que arranque Docker, gestionará ese espacio libre automáticamente para crear los volúmenes lógicos que necesite:

# systemctl start docker.service

Limpiando viejos volúmenes

Con lo que hemos hecho ya debería bastar, pero si tuvieras errores o conflictos, te vendrá bien limpiar los viejos volúmenes. Ojo porque esto causará pérdida de información:

# systemctl stop docker.service docker-storage-setup.service
# rm -Rf /var/lib/docker
# systemctl start docker.service

Un comentario en “Configurar docker-storage-setup

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s