Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

lxd-p2c


Poder migrar una máquina física a contenedor es muy útil sobretodo cuando hay que actualizar el SO o las librerías de este modo podremos hacer un snapshot antes de tocar el sistema, si algo sale mal tan solo habrá que revertir al snapshot.
En LXD3.X se incorporó la utilidad lxd-p2c para poder migrar una máquina existente a contenedor de forma rápida y sencilla. En este artículo explicaremos como llevar a cabo una migración de una Gentoo física a LXD.

 

Nos bajamos la herramienta en nuestro equipo:

go get github.com/lxc/lxd/lxd-p2c

La copiamos al servidor que vamos a convertir a LXD:

scp lxd-p2c SERVER:/root/

En el servidor iniciamos el proceso de dumpeo indicando cada una de las particiones que tenga el servidor físico con la excepción de /boot ya que no será necesario por tratarse de un CT:

df -h
S.ficheros                         Tamaño Usados  Disp Uso% Montado en
/dev/sda4                             39G    13G   24G  35% /
/dev/sda2                             97M    22M   71M  24% /boot
/dev/mapper/volgroup_01-volumen_01   183G   117G   56G  68% /var
./lxd-p2c https://LXDSERVER:8443 CTNAME / /var
Generating a temporary client certificate. This may take a minute...
Admin password for https://LXDSERVER:8443: 
Transferring container: CTNAME: 686.81MB (9.50MB/s)  

Podemos ver el CT en el servidor LXD:

lxc list
| CTNAME             | STOPPED |                              |      | PERSISTENT | 0         |

Arrancamos el CT:

lxc start CTNAME 
Remapping container filesystem

Comprobamos que está arrancado:

lxc list
| CTNAME             | RUNNING |                              |      | PERSISTENT | 0         |

Entramos dentro del CT:

lxc exec CTNAME -- bash -l

Editamos la configuración de red ya que el nombre de las interfaces seguramente haya cambiado:

sed -i 's/enp6s0f1/eth0/g' /etc/conf.d/net

Quitamos del boot la interfaz de red antigua y metemos la nueva:

cd /etc/init.d
rm net.enp6s0f1
rc-update del net.enp6s0f1 default
ln -s net.lo net.eth0
rc-update add net.eth0 default

Para que Gentoo funcione dentro de LXD correctamente debemos modificar un script de devfs, a priori no parece necesario pero en posteriores actualizaciones del SO dará problemas si no lo hacemos, eliminamos el '-' de lxc:

vi /etc/init.d/devfs
keyword -docker lxc -prefix -systemd-nspawn -vserver

Autor: Kr0m -- 28/08/2019 22:50:39