Migrace KVM virtuální stroje na OpenVZ container: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
(Není zobrazeno 14 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
Následující návod popisuje jak za běhu přemigrovat KVM virtuál (ale lze aplikovat na virtuál na XENu čí fyzický stroj) na OpenVZ container. | |||
Požadavky: | Požadavky: | ||
Nainstalovaný a '''vypnutý''' OpenVZ container se '''stejnou''' distribucí a verzí Linuxu. | Nainstalovaný a '''vypnutý''' OpenVZ container se '''stejnou''' distribucí a verzí Linuxu. | ||
Na fyzickém stroji, kde se nachází nový container, vytvořte soubor /tmp/exclude.txt obsahující výčet souborů, které se nebudou kopírovat. | 1. Na fyzickém stroji, kde se nachází nový container, vytvořte soubor /tmp/exclude.txt obsahující výčet souborů, které se nebudou kopírovat. | ||
Do něj vložte obsah: | Do něj vložte obsah: | ||
Řádek 16: | Řádek 18: | ||
/etc/udev | /etc/udev | ||
Pomocí rsync překopírujte obsah virtuálu (a.b.c.d | 2. Pomocí rsync překopírujte obsah virtuálu (místo a.b.c.d si doplňte adresu současného virtuálu, místo 123 zase CTID containeru): | ||
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@a.b.c.d:/ /var/lib/vz/private/123/ | |||
Pokud máte máte několik samostatných oddílů (např. pro /var, /boot, apod.), opakujte předchozí bod pro každý z nich: | |||
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@a.b.c.d:/var/ /var/lib/vz/private/123/var/ | |||
3. Na virtuálu vypněte všechny služby, které mohou zapisovat na disk (obzvláště mysql, postgresql, cron, apache2, ne však ssh!): | |||
/etc/init.d/mysql stop | |||
/etc/init.d/postgresql stop | |||
/etc/init.d/cron stop | |||
/etc/init.d/apache2 stop | |||
... | |||
'''V tuto chvíli se se bude váš virtuál pro návštěvníky tvářit jako nedostupný!''' | |||
4. Opakujte bod 2., tentokrát to však bude trvat o poznání kratší dobu. | |||
5. Na containeru je třeba ještě upravit některé soubory, takže na fyzickém stroji s ním spusťte (opět si místo 123 doplňte vaše CTID): | |||
sed -i -e 's/^[0-9].*getty.*tty/#&/g' /var/lib/vz/private/123/etc/inittab | |||
ln -sf /proc/mounts /var/lib/vz/private/123/etc/mtab | |||
mv /var/lib/vz/private/123/etc/fstab /var/lib/vz/private/123/etc/fstab.old | |||
egrep '/dev/pts|/dev/shm|/proc|/sys' /var/lib/vz/private/123/etc/fstab.old > /var/lib/vz/private/123/etc/fstab | |||
6. Vypněte starý virtuál, spusťte container a pomocí konzole otestujte (opět si místo 123 doplňte vaše CTID): | |||
vzctl start 123 | |||
vzctl enter 123 | |||
Nyní by mělo již všechno fungovat (otestujte pingem). | |||
==== Jako jeden skript: ==== | |||
# ID containeru | |||
export CTID=123 | |||
# Adresa puvodniho stroje | |||
export HOST="a.b.c.d" | |||
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/ /var/lib/vz/private/$CTID/ | |||
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/boot/ /var/lib/vz/private/$CTID/boot/ | |||
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/var/www/ /var/lib/vz/private/$CTID/var/www/ | |||
sed -i -e 's/^[0-9].*getty.*tty/#&/g' /var/lib/vz/private/$CTID/etc/inittab | |||
ln -sf /proc/mounts /var/lib/vz/private/$CTID/etc/mtab | |||
mv /var/lib/vz/private/$CTID/etc/fstab /var/lib/vz/private/$CTID/etc/fstab.old | |||
egrep '/dev/pts|/dev/shm|/proc|/sys' /var/lib/vz/private/$CTID/etc/fstab.old > /var/lib/vz/private/$CTID/etc/fstab | |||
vzctl start $CTID | |||
vzctl enter $CTID | |||
Převzato z http://wiki.openvz.org/Physical_to_container |
Aktuální verze z 10. 1. 2013, 13:39
Následující návod popisuje jak za běhu přemigrovat KVM virtuál (ale lze aplikovat na virtuál na XENu čí fyzický stroj) na OpenVZ container.
Požadavky:
Nainstalovaný a vypnutý OpenVZ container se stejnou distribucí a verzí Linuxu.
1. Na fyzickém stroji, kde se nachází nový container, vytvořte soubor /tmp/exclude.txt obsahující výčet souborů, které se nebudou kopírovat.
Do něj vložte obsah:
/tmp /boot /lib/modules /etc/blkid /etc/mtab /etc/lvm /etc/fstab /etc/udev
2. Pomocí rsync překopírujte obsah virtuálu (místo a.b.c.d si doplňte adresu současného virtuálu, místo 123 zase CTID containeru):
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@a.b.c.d:/ /var/lib/vz/private/123/
Pokud máte máte několik samostatných oddílů (např. pro /var, /boot, apod.), opakujte předchozí bod pro každý z nich:
rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@a.b.c.d:/var/ /var/lib/vz/private/123/var/
3. Na virtuálu vypněte všechny služby, které mohou zapisovat na disk (obzvláště mysql, postgresql, cron, apache2, ne však ssh!):
/etc/init.d/mysql stop /etc/init.d/postgresql stop /etc/init.d/cron stop /etc/init.d/apache2 stop ...
V tuto chvíli se se bude váš virtuál pro návštěvníky tvářit jako nedostupný!
4. Opakujte bod 2., tentokrát to však bude trvat o poznání kratší dobu.
5. Na containeru je třeba ještě upravit některé soubory, takže na fyzickém stroji s ním spusťte (opět si místo 123 doplňte vaše CTID):
sed -i -e 's/^[0-9].*getty.*tty/#&/g' /var/lib/vz/private/123/etc/inittab ln -sf /proc/mounts /var/lib/vz/private/123/etc/mtab mv /var/lib/vz/private/123/etc/fstab /var/lib/vz/private/123/etc/fstab.old egrep '/dev/pts|/dev/shm|/proc|/sys' /var/lib/vz/private/123/etc/fstab.old > /var/lib/vz/private/123/etc/fstab
6. Vypněte starý virtuál, spusťte container a pomocí konzole otestujte (opět si místo 123 doplňte vaše CTID):
vzctl start 123 vzctl enter 123
Nyní by mělo již všechno fungovat (otestujte pingem).
Jako jeden skript:
# ID containeru export CTID=123 # Adresa puvodniho stroje export HOST="a.b.c.d" rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/ /var/lib/vz/private/$CTID/ rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/boot/ /var/lib/vz/private/$CTID/boot/ rsync -avz -H -X --one-file-system --numeric-ids --exclude-from=/tmp/exclude.txt -e ssh root@$HOST:/var/www/ /var/lib/vz/private/$CTID/var/www/ sed -i -e 's/^[0-9].*getty.*tty/#&/g' /var/lib/vz/private/$CTID/etc/inittab ln -sf /proc/mounts /var/lib/vz/private/$CTID/etc/mtab mv /var/lib/vz/private/$CTID/etc/fstab /var/lib/vz/private/$CTID/etc/fstab.old egrep '/dev/pts|/dev/shm|/proc|/sys' /var/lib/vz/private/$CTID/etc/fstab.old > /var/lib/vz/private/$CTID/etc/fstab vzctl start $CTID vzctl enter $CTID
Převzato z http://wiki.openvz.org/Physical_to_container