Migrace virtuálních serverů do LXD
Pro migraci byla inspirací stránka https://snikt.net/blog/2014/03/22/convert-kvm-image-to-lxc-container/
Je zde popsána migrace z KVM, ale tento postup je obecně platný.
Vytvoření kontejneru bez následného spuštění: lxc init ubuntu: smb-symfonie
Smazat soubory e složce rootfs:
cd /var/lib/lxd/containers/NAME_CONTAINER/rootfs/ rm -Rf /var/lib/lxd/containers/NAME_CONTAINER/rootfs/
Nakopírovat soubory s připojeného image VS
Pokud se jedná o virtuální disk(lze zjistit pomocí fdisk fdisk -l NAME.img), použít před mapováním příkaz kpartx
kpartx -av NAME.img mount -o loop smb-sym-disk.dd.img /mnt/loop/
rsync -av /mnt/loop/ /var/lib/lxd/containers/NAME_CONTAINER/rootfs
Vytvoření nódů pro zařízení
Pro vytvoření je použitý skript, který je potřeba spustit ve složce rootfs
- create-lxc-nodes.sh
#!/bin/bash ROOT=$(pwd) DEV=${ROOT}/dev mv ${DEV} ${DEV}.old mkdir -p ${DEV} mknod -m 666 ${DEV}/null c 1 3 mknod -m 666 ${DEV}/zero c 1 5 mknod -m 666 ${DEV}/random c 1 8 mknod -m 666 ${DEV}/urandom c 1 9 mkdir -m 755 ${DEV}/pts mkdir -m 1777 ${DEV}/shm mknod -m 666 ${DEV}/tty c 5 0 mknod -m 600 ${DEV}/console c 5 1 mknod -m 666 ${DEV}/tty0 c 4 0 mknod -m 666 ${DEV}/tty1 c 4 1 mknod -m 666 ${DEV}/tty2 c 4 2 mknod -m 666 ${DEV}/tty3 c 4 3 mknod -m 666 ${DEV}/tty4 c 4 4 mknod -m 666 ${DEV}/tty5 c 4 5 mknod -m 666 ${DEV}/tty6 c 4 6 mknod -m 666 ${DEV}/full c 1 7 mknod -m 600 ${DEV}/initctl p mknod -m 666 ${DEV}/ptmx c 5 2
cd /var/lib/lxd/containers/NAME_CONTAINER/rootfs /usr/local/sbin/create-lxc-nodes.sh
Problém s právy na souborový systém vyřešil příkaz:
lxc config set NAME_CONTAINER security.privileged true
http://stackoverflow.com/questions/33377916/migrating-lxc-to-lxd
https://blog.a2o.si/2015/10/11/migrate-convert-existing-full-centos-6-server-to-lxc-container/
https://blog.a2o.si/2015/10/23/migrate-convert-existing-full-ubuntu-14-04-server-to-lxc-container/
Migrace LXD konteineru mezi servery
https://discuss.linuxcontainers.org/t/backup-the-container-and-install-it-on-another-server/463
Migrace probíhala ze serveru s LXD verzí 2.0.10 na server s verzí 3.8
Záloha
lxc snapshot skolawp backup lxc publish skolawp/backup --alias skolawp-backup lxc image export skolawp-backup . ### export do tgz archvivu v aktuálním adresáři lxc image delete skolawp-backup
Zálohu containeru překopírijte např. pomocí scp
Obnova
lxc image import a8da3a9c33095a028d748187491eaad208303595e87bbcc4ca8dff9f31c1e66a.tar.gz --alias skolawp-backup lxc launch skolawp-backup skolawp lxc image delete skolawp-backup
