Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Przenoszenie fizycznej maszyny do kontenera OpenVZ

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:

Pobieramy szablon:

Tworzymy maszynę tymczasową:

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. 

Komentarze

0 nowych
  #1 05.11.2010 14:13

Ciekawy artykuł, czekam na kolejne

skrzypek   12 #2 07.11.2010 09:04

Mało komentarzy bo nikt nie wie o co chodzi :P (ja na pewno :D)

djgrzenio   8 #3 07.11.2010 10:27

nie liczę na dużą liczbę komentow :). a chodzi o oszczędności w prądzie, ekologii, etc... wirtualizacja serwerów :) nie pełna bo to tylko kontener.

  #4 07.11.2010 10:55

@djgrzenio
Wirtualizacją (głównie Citrix Xen i opensource Xen) zainteresowałem się już jakiś czas temu. Ogólnie jestem z tych technologii zadowolony.
Jak wiadomo powszechnie jednak kontenery to najwydajniejsza metoda wirtualizacji stąd moje pytanie.
Czy robiłeś może jakiekolwiek zestawienia wydajnościowe z natywnie zainstalowanymi systemami lub też parawirtualizowanymi?
W internecie znajdowałem do tej pory jedynie mdłe porównania a z chęcią poznałbym zdanie osoby która być może dokonywała takiej konfrontacji.

djgrzenio   8 #5 07.11.2010 18:35

_assback nie nie robilem zadnych testow. tutaj opisywany przyklad opiera sie o proxmoxa w serwerowni ovh. opisywana maszyna przenoszona to centos z qmailem courier-imapem i skrzynkami w wielkosci okolo 200 giga. problem z indexowaniem poczty przez thunderbirda juz nie byl widoczny. na troszke slabszej maszynie w lanie gdy thunderbird indexowal maile to courier zabila serwer. dodam ze na tej maszynie sa jeszcze kontenery z serwerami ftp, www (apache, aol, pound) i 2 inne maszyny z qmiailem. obciazenie maszyny jest znikome.

djgrzenio   8 #6 07.11.2010 18:48

_assback a co do Xena to testowalem Citrixa, z ktorego pawie bylem zadowolony poza faktem iz sadzil mi sie cos interfejs sieciowy podlaczony bezposrednio do modemu DSL tpsy. raz na tydzien musialem resetowac serwer - zainstalowanie debiana czystego rozwiazalo problem:)

  #7 07.11.2010 20:04

@djgrzenio: pytałem z czystej ciekawości, ponieważ kontenery to właściwie ostatnia z głównych rodzajów wirtualizacji której nie dotykałem (może dlatego że nie mam do czynienia z usługami typowo webowymi), ale nadzwyczajnie w świecie jestem ich ciekaw.
Respekt za poświęcony czas na napisanie artykułu i życze więcej na łamach dp ;)
U mnie Citrix pracuje tylko na jednym serwerze ze względu na MS Windows Server + zupełnie testowo CentOS, do pozostałych linuksów używam tylko i wyłącznie Xen'a opensource na Debianie właśnie ;) i tam różnice w wydajności pomiedzy Citrixem są znikome.

skrzypek   12 #8 07.11.2010 23:35

Chodzi mi o to, że gdyby ludzie wiedzieli o co chodzi to by się interesowali i dyskutowali, a tak jak widać. Garstka :). Moje przygody z wirtualizacją kończą się na vmware.

Pigmej   5 #9 08.11.2010 03:38

proxmox jest 'spoko' tyle ze... robi syf w configu maszyny...

uruchom vzmemcheck i zobacz jaki masz 'piekny' output :D

Genrealnie o ile samo openvz jest swietne to o proxmox mam negatywne zdanie. Zreszta... proxmox to tylko 'nakladka' na openvz + kvm...

@djgrzenio, jakby Ci kernel ubijal procesy albo cos... to poustawiaj 'porzadnie' config maszyny/maszyn.

djgrzenio   8 #10 08.11.2010 09:00

proxmox jest bo jest. wsumie cala konfiguracje i tak reczenie robie z konsoli

Radius01   3 #11 08.11.2010 21:06

W miarę zrozumiałe, ale trzeba poczytać lub wiedzieć więcej na te tematy. Pierwszy raz widzę tą dystrybucję. Czekamy na kolejne wpisy.

Pozdrawiam

  #12 26.03.2014 19:21

Wiem, że artykuł już bardzo stary, ale mam pytanie.

Co się tak właściwie stanie jeżeli nie zakomentujemy /sbin/start_udev?

Nie widzę, żadnych problemów w pracy wirtualki...

djgrzenio   8 #13 02.04.2014 08:10

W moim przypadku kilku krotnie maszyna nie wystartowała, wisiałą na rc3, kwestia zwiazana z hardwarem