Blog (20)
Komentarze (368)
Recenzje (0)
@djgrzenioPrzenoszenie fizycznej maszyny do kontenera OpenVZ

Przenoszenie fizycznej maszyny do kontenera OpenVZ

05.11.2010 13:14, aktualizacja: 05.11.2010 13:53

Witam. W moim pierwszym poście chce przedstawić sposób przeniesienia serwera fizycznego lub wirtualnego (xen, vmware, etc..) do kontenera OpenVZ.

Jako system wykorzystałem dystrybucje Proxmox, a pokaże jak przenieść Debiana oraz CentOS'a. Jedynym problemem jaki spotkałem to to ze w CentOS'ie musiałem zmienić ustawienia startowe a w obu przypadkach musiałem ręcznie dokopiować /dev z stworzonej na boku tymczasowej maszyny.

Na początku musimy pobrać interesujący nas template i zainstalować taka maszynę aby przegrać sobie gotowy plik konfiguracyjny i mieć poprawny katalog /dev

Szablony systemów:

373461

Pobieramy szablon:

373463

Tworzymy maszynę tymczasową:

373465

Umownie nowa maszyna ma VMID 1000 a maszyna tymczasowa VMID 103

Tworzymy sobie linka symbolicznego i zakładamy katalog dla nowej maszyny

ln -s /var/lib/vz /vz

mkdir /vz/root/1000 /vz/private/1000

Wykorzystujemy konfiguracje maszyny którą juz mamy:

cat /etc/vz/conf/103.conf > /etc/vz/conf/1000.conf

Instalujemy rsynca i screen'a na obu maszynach

apt-get install rsync screen

lub jeżeli na starej maszynie mamy CentOS'a

yum install rsync screen

Następnie odpalamy dla wygody screena na maszynie z Proxmoxem i przerzucamy stary serwer do kontenera. Oczywiście to chwile zajmie. Wszystko zalezy od tego ile GB zajmuje stary system.

rsync -Parvpz --numeric-ids --exclude dev --exclude proc --exclude tmp -e 'ssh -l root@ip_serwera_starego' root@ip_serwera_starego:/ /vz/private/1000/

Gdy juz całosć się przegrała należy skonfigurować kontener

vzctl set 1000 --ostemplate debian-4.0-i386-minimal --save
vzctl set 1000 --onboot yes --save
vzctl set 1000 --hostname server1.example.com --save
vzctl set 1000 --ipadd 192.168.0.100 --save
vzctl set 1000 --numothersock 120 --save
vzctl set 1000 --nameserver 145.253.2.75 --nameserver 213.191.92.86 --save
vzctl set 1000 --diskspace 100GB:100GB --save

I tak mam -‑ostemplate tutaj podajemy nazwę starego systemu, uprzednio pobieramy template i wrzucamy do /vz/template/cache. Parametr -‑onboot yes mowi nam o tym aby maszyna startowała automatycznie po restarcie Proxmoxa. W dalszej części ustawiamy nazwę hosta, ip maszyny dnsy oraz ile ma mieć GB miejsca na dysku maszyna.

Teraz wykonujemy to co poniżej. Jest to konfiguracja deva proca fstaba i innych ważnych elementów:

sed -i -e '/getty/d' /vz/private/1000/etc/inittab
rm -f /vz/private/1000/etc/mtab
ln -s /proc/mounts /vz/private/1000/etc/mtab
cp /vz/private/1000/etc/fstab /vz/private/1000/etc/fstab.old
grep devpts /vz/private/1000/etc/fstab.old > /vz/private/1000/etc/fstab
mkdir /vz/private/1000/dev
cp -a vz/private/103/dev /vz/private/1000/dev/
mknod --mode 666 /vz/private/1000/dev/ptmx c 5 2
mkdir /vz/private/1000/dev/pts
rm -f /vz/private/1000/dev/null
mknod --mode 666 /vz/private/1000/dev/null c 1 3
mknod --mode 444 /vz/private/1000/dev/urandom c 1 9
mkdir /vz/private/1000/proc

Musimy usunąć stare śmieci związane z siecią:

Debian

cat /dev/null > /vz/private/1000/etc/network/interfaces

CentOS

 mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.old

I to praktycznie wszystko poza jednym. W CentOS'ie zmieniamy plik:

/etc/rc.d/rc.sysinit

Szykamy w nim:

/sbin/start_udev

Tą linijkę za komentujemy i dorzucamy 2 polecenia (niby dev jest ale inaczej maszyna się kaszani). Wiec powinno to być tak:

#/sbin/start_udev
/sbin/MAKEDEV tty
/sbin/MAKEDEV pty

Startujemy maszynę :) i już korzystamy

vzctl start 1000
vzclt enter 1000

Ja w opisany sposób przerzuciłem CentOS'a 5 64bit z qmail'em do kontenera oraz Debiana 4 32bit z sambą i serwerem wydruku.

Wybrane dla Ciebie
Komentarze (13)