Proxmox VE

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
 
(2 szerkesztő 19 közbeeső változata nincs mutatva)
1. sor: 1. sor:
A [http://pve.proxmox.com/wiki/Main_Page Proxmox PE] egy Debian-ra épülő virtualizációs platform. Nagyon egyszerű és gyors telepítés, könnyen konfigurálhatóság, jól dokumentáltság jellemzi leginkább a Proxmox-ot, csak is ajánlani tudom mindenkinek, aki ilyen téren valami átfogó megoldást keres.
+
Irta: Dobó László, 2009. december
Kiemelném a főbb tulajdonságait, csak hogy egyből megértsük mivel is állunk szemben:
+
* Konténer alapú OpenVZ virtualizáció - konténerek lényegét, hasznosságát lásd később
+
A [http://pve.proxmox.com/wiki/Main_Page Proxmox PE] egy Debianra épülő [[Virtualizációs_technikák,_technológiák#OpenVZ|OpenVZ]]-t és KVM-et támogató
* KVM virtualizáció
+
virtualizációs platform.
  +
A Proxmox egyszerűen és gyorsan telepíthető, könnyen konfigurálható és jó a dokumentaciója; csak
  +
ajánlani tudom mindenkinek, aki virtualizációs megoldást keres.
  +
A Proxmox főbb jellemzői, képességei a következők:
  +
* Konténeralapú virtualizáció - konténerek lényegét, hasznosságát lásd később
  +
* KVM-alapú virtualizáció
 
* Bare-Metal ISO telepítő - magyarán pár perc alatt kézhez kapsz egy üres szervert.
 
* Bare-Metal ISO telepítő - magyarán pár perc alatt kézhez kapsz egy üres szervert.
 
* WEB alapu menedzsment
 
* WEB alapu menedzsment
 
* Cluster támogatás
 
* Cluster támogatás
* Mentés, Visszaállitás, Online Migrálás
+
* Mentés, visszaállitás, online migrálás
   
==Rendszer követelmények==
+
==Rendszerkövetelmények==
   
*64bit-es processor
+
*64bites processor
*1 Gb memórai (4 Gb ajánlott)
+
*1 Gb memória (4 Gb ajánlott)
 
*1 NIC (2 ajánlott az értelmes tűzfalazáshoz)
 
*1 NIC (2 ajánlott az értelmes tűzfalazáshoz)
   
Telepítés előtt érdemes elgondolkodni azon hogy akarunk-e KVM-et használni, mert ha úgy döntünk hogy akár most akár a későbbiekben szükség lehet rá akkor okvetlen olyan processzort válsszunk, ami támogatja az '''Intel VT/AMD-V-t'''.
+
Telepítés előtt érdemes elgondolkodni azon hogy akarunk-e KVM-et használni. Amennyiben úgy döntünk hogy akár most akár a későbbiekben szükség lehet rá, akkor okvetlen olyan processzort válsszunk, ami támogatja az '''Intel VT/AMD-V-t'''.
   
 
==Telepítés==
 
==Telepítés==
   
*Hagyományos:
+
=== Saját telepítőjével ===
A telepítéshez nem sok mindent fűznék hozzá, már majd nem Win szindróma: next,next,finish...
 
Azonban amire érdemes odafigyelni, az az hogy a Proxmox PE nem támogat software raid-et és úgy néz ki nem is fog.
 
Szóval szerver vásárláskor vagy költünk a hw raid-re vagy marad a HACK, már amennyiben szeretnénk adatainkat biztonságban tudni.
 
   
*Már létező Debiánra:
+
Nem nagyon van mit hozzáfűzni: next, next, finish.
  +
  +
Ugyanakkor vegyük figyelembe, hogy a Proxmox PE nem támogatja a [[Software RAID Linux Alatt|software RAID]]-et, és úgy néz ki, nem is fogja. Így aztán vagy vásárolunk hardveres RAID-vezérlőt, vagy manuális gányolással állítjuk be a softraidet, ha fontos a rendelkezésreállás.
  +
  +
=== Már létező Debianra ===
   
 
Szerkesszük meg a sources.list-et:
 
Szerkesszük meg a sources.list-et:
nano /etc/apt/sources.list
 
   
Írjuk bele a következő sort:
+
<pre>
  +
echo deb http://download.proxmox.com/debian lenny pve >>/etc/apt/sources.list
  +
</pre>
   
deb http://download.proxmox.com/debian lenny pve
+
Adjuk hozzá a rendszerünkhöz a Proxmox PE repository kulcsát:
   
Ajuk hozzá a rendszerünkhöz a Proxmox PE repó kulcsot:
+
<pre>
  +
wget -q -O- http://download.proxmox.com/debian/key.asc | apt-key add -
  +
</pre>
   
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
+
Frissítsük a csomaglistát:
   
Frissitsük be a rendszerünket:
+
<pre>
  +
apt-get update
  +
</pre>
   
aptitude update
+
Telepítsük a Proxmox PE kernelét:
aptitude upgrade
 
   
Telepítsük fel a Proxmox PE kernelt:
+
<pre>
  +
apt-get install pve-kernel
  +
</pre>
   
apt-get install pve-kernel
+
Ha szükséges, állítsuk be a bootloaderünket, hogy ezt a kernelt töltse be a következő bootkor, majd rebootoljunk.
   
Amennyiben azt szeretnénk hogy alapértelmezetten a Proxmox PE kernel indúljon el:
+
Telepítsük a Proxmox PE-vel összefüggő további csomagokat:
 
nano /boot/grub/menu.lst
 
   
Proxmox PE csomagok telepítése:
+
<pre>
  +
apt-get install proxmox-ve ntp
  +
</pre>
   
apt-get install proxmox-ve ntp
+
... és már csatlakozhatunk is a webes felületre.
   
már csatlakozhatunk is a web-es felületre
+
===Finomhangolás===
   
==Web-es felület==
+
A Proxmox fő konfigurációs file-ja a /etc/vz/vz.conf-ban található. Ebben módosithatjuk többek között a környezeti változóit,loglevelt és a betöltendő IPv4-6 kernel modulokat.
   
A web-es felület nagyon kényelmes menedzsment felületet biztosit számunkra. Szerver részről tudjuk állitani a system időt,DNS szervert adhatunk meg, szerverünk ip cimét állithatjuk, mentés ütemezést, custeringet állithatunk.
+
== A webes felület ==
Virtuálgép részről pedig elindithatjuk,leállithatjuk,újraindithatjuk őket, valamint migrálhatunk egyik szerverről a másikra, akán online is. Mindössze pár kattintással létre hozhatunk új virtuál gépet.
 
Ja igent sun-java6-plugin-re szükség lesz. [[Fájl:800px-Screen-startpage-with-cluster.png|thumb|150px]]
 
   
  +
A webes menedzsment-felületet igen kényelmes. A következő beállításokat teszi lehetővé a hosztgéppel kapcsolatban:
   
  +
* rendszeridő;
  +
* DNS-szerver;
  +
* IP-címek;
  +
* mentés ütemezése;
  +
* custering.
   
==Virtuál gép telepítés==
+
Emellett a virtuális gépeinket:
   
===Konténer alapú Openvz===
+
* elindíthatjuk;
  +
* leállíthatjuk;
  +
* újraindíthatjuk;
  +
* migrálhatjuk egyik gépről a másikra, akár online is;
   
Linuxos virtuál szerverek üzemeltetéséhez ezt a technológiát ajánlom. Minden egyes virtuál gép egy külön konténerbe kerül, a létre hozáskor megadott adatokat (tárhely, memória, cpu szám, cpu idő) bármikor megváltoztathatjuk. A konténerek igen nagy előnye, hogy file rendszer szinten elérhetők (alapértelmezett esetben a /var/lib/vz/private/vmid alatt). A webes menedzsment felületről pár kattintással létre hozható, ehhez nem fűznék különösebb magyarázatot. Viszont ami kicsit érdekesebb, mi van ha scriptelni szeretnénk a virtuál szerver létrehozást? Nos erre is van lehetőségünk, ime egy példa rá:
+
Néhány kattintással új virtuális gépet is létrehozhatunk.
  +
  +
<tt>sun-java6-plugin</tt>-re szükség lesz. [[Fájl:800px-Screen-startpage-with-cluster.png|thumb|150px]]
  +
  +
==Virtuális gép telepítése==
  +
  +
Kétféle virtualizációs megoldás közül választhatunk, és ezeket szabadon keverhetjük: OpenVZ ill. KVM.
  +
  +
=== Konténeralapú virtualizáció: OpenVZ ===
  +
  +
Linuxot futtató virtuális szerverek üzemeltetéséhez ezt a technológiát ajánlom. Minden egyes virtuális gép egy külön konténerbe kerül; a létrehozáskor megadott adatokat (tárhely, memória, cpu-k száma, cpu-idő korlátozása) bármikor megváltoztathatjuk. A konténerek igen nagy előnye, hogy fájlrendszerszinten elérhetők (alapértelmezett esetben a <tt>/var/lib/vz/private/vmid</tt> alatt).
  +
  +
Egy új virtuális gép a webes menedzsment-felületről pár kattintással létrehozható; ehhez nem fűznék különösebb magyarázatot.
   
 
[[Fájl:1.png|thumb|150px]] [[Fájl:2.png|thumb|150px]]
 
[[Fájl:1.png|thumb|150px]] [[Fájl:2.png|thumb|150px]]
   
#!/bin/bash
+
Ha scriptből szeretnénk virtuális gépet létrehozni, az sem lehetetlen; lássunk egy példát.
#-----------------------------------------------------
 
#Initial VM variables
 
#-----------------------------------------------------
 
vmdescription="debian-test VM"
 
vmid=444
 
vmhostname="test"
 
vmostemplate="debian-5.0-standard_5.0-1_i386.tar.gz"
 
vmrootpasswd='$1$EgSNc8pS$dc4aP14RZUVeUPjZiD5WM1'
 
vmdiskspace=8
 
vmmem=1024
 
vmswap=2048
 
vmcpu=1
 
vmifdev="eth0"
 
vmbridge="vmbr1"
 
vmipaddr="10.0.1.2"
 
vmnetmask="255.255.255.0"
 
vmgateway="10.0.1.1"
 
vmnameserver="1.2.3.4"
 
vmonboot="yes"
 
vmprivate="/var/lib/vz/private"
 
vmtimezone="Europe/Budapest"
 
echo "Creating VM..."
 
pvectl vzcreate $vmid --disk $vmdiskspace --ostemplate $vmostemplate --rootpasswd $vmrootpasswd
 
--hostname $vmhostname --description $vmdescription --onboot $vmonboot --swap $vmswap
 
--mem $vmmem --cpus $vmcpu --netif "ifname=$vmifdev,bridge=$vmbridge"
 
echo "Configuring VM..."
 
echo -e "auto $vmifdev\niface $vmifdev inet static\n address $vmipaddr\n
 
netmask $vmnetmask\n gateway $vmgateway" >> $vmprivate/$vmid/etc/network/interfaces
 
echo "nameserver $vmnameserver" > $vmprivate/$vmid/etc/resolv.conf
 
echo $timezone > $vmprivate/$vmid/etc/timezone
 
echo "Starting VM..."
 
vzctl start $vmid
 
   
A virtuál gép hállózatva való kijuttatását két féleképpen oldhatjuk meg:
+
<pre>
*Virtuális Hálózattal (venet)
+
#!/bin/bash
Előnye: menedzsent felületen összekattingatva már működik is. Hátránya: megjegyezhetettlen, nem átlátható eszköz neveket kapunk.
+
#-----------------------------------------------------
*Hídba kapcsolt ethernettel (veth)
+
#Initial VM variables
Előnye: Átlátható, világos eszköznevek. Hátránya: kézzel kell felkonfigolni a konténer alatti /etc/network/interfaces fileban.
+
#-----------------------------------------------------
  +
vmdescription="debian-test VM"
  +
vmid=444
  +
vmhostname="test"
  +
vmostemplate="debian-5.0-standard_5.0-1_i386.tar.gz"
  +
vmrootpasswd='$1$EgSNc8pS$dc4aP14RZUVeUPjZiD5WM1'
  +
vmdiskspace=8
  +
vmmem=1024
  +
vmswap=2048
  +
vmcpu=1
  +
vmifdev="eth0"
  +
vmbridge="vmbr1"
  +
vmipaddr="10.0.1.2"
  +
vmnetmask="255.255.255.0"
  +
vmgateway="10.0.1.1"
  +
vmnameserver="1.2.3.4"
  +
vmonboot="yes"
  +
vmprivate="/var/lib/vz/private"
  +
vmtimezone="Europe/Budapest"
  +
echo "Creating VM..."
  +
pvectl vzcreate $vmid --disk $vmdiskspace --ostemplate $vmostemplate --rootpasswd $vmrootpasswd --hostname $vmhostname --description $vmdescription --onboot $vmonboot --swap $vmswap --mem $vmmem --cpus $vmcpu --netif "ifname=$vmifdev,bridge=$vmbridge"
  +
echo "Configuring VM..."
  +
echo -e "auto $vmifdev\niface $vmifdev inet static\n address $vmipaddr\nnetmask $vmnetmask\n gateway $vmgateway" >> $vmprivate/$vmid/etc/network/interfaces
  +
echo "nameserver $vmnameserver" > $vmprivate/$vmid/etc/resolv.conf
  +
echo $timezone > $vmprivate/$vmid/etc/timezone
  +
echo "Starting VM..."
  +
vzctl start $vmid
  +
</pre>
   
  +
A virtuális gép hálózatra való kijuttatását kétféleképpen oldhatjuk meg:
   
===KVM vagy más néven Telyes Virtualizáció===
+
# Virtuális Hálózattal (venet)
  +
#* Előnye: menedzsent-felületen összekattingatva már működik is.
  +
#* Hátránya: megjegyezhetetlen, nem átlátható eszközneveket kapunk.
  +
#Hídba kapcsolt ethernettel (veth)
  +
#* Előnye: Átlátható, világos eszköznevek.
  +
#* Hátránya: kézzel kell konfigolni a konténer alatti /etc/network/interfaces fájlban (vagy ennek disztribúciófüggő helyi megfelelőjében).
   
Lényege, hogy minden virtuál gépnek van saját virtualizált hardware-e.XEN ezt a megoldást alkallmazza előszeretettel. Nem linux alapú os-ek esetén érdemes használni. File rendszer szinten nem tudunk belnyúlni a KVM virtuál gépbe. Létrehozása a Proxmox webes felületről szintén pár kattintás, vagy pedig:
+
=== Paravirtualizáció: KVM ===
   
qm create 666 --ide0 8 --ostype other --memory 512 --onboot no --cdrom cdrom --name test1
+
Ez a megoldás a Xenre hasonlít; a virtuális gépek saját virtualizált hardware-en futnak, és a hosztgép kernele a hipervizor. Akkor érdemes használni, ha Linuxtól eltérő operációs rendszert virtualizálunk, vagy ha fontos, hogy a virtuális gépben egy konkrét, a hosztgépétől eltérő kernelverzió fusson.
--vlan0 rtl8139=F6:B4:59:58:4A:B0 --smp 1 --bootdisk ide0
 
Formatting '/var/lib/vz/images/666/vm-666-disk.qcow2', fmt=qcow2, size=8388608 kB
 
   
==Tippek és Trükkök==
+
A megoldás nagy hátránya, hogy a hosztgépről nem tudunk automatikusan közvetlenül hozzáférni a virtuális gép fájlrendszeréhez.
   
===OpenVz virtuál gépekhez bármikor hozzá tudunk férni Proxmox alól===
+
KVM-es virtuális gépet szintén létrehozhatunk a webes felületről, de parancssoros eszközzel is:
vzctl enter vmid
 
ezzel egyből rootkén lépünk be a virtuál gépre. Elejét lehet venni a root kizárásoknak, illetve tegyük fel hogy megtörték a virtuál gépünket és átirták a root jelszavunkat, semmi gond :)
 
   
===OpenVz virtuál gépek listázása===
+
<pre>
vzlist
+
#-----------------------------------------------------
  +
#Initial QM variables
  +
#-----------------------------------------------------
  +
qmname="KVM test VM"
  +
qmid="666"
  +
qmmem="512"
  +
qmdiskspace="8"
  +
qmcpu="1"
  +
qmostype="other"
  +
qmonboot="no"
  +
qmmac="F6:B4:59:58:4A:B0"
  +
qmnetdev="rtl8139"
  +
qm create $qmid --ide0 $qmdiskspace --ostype qmostype --memory $qmmem --onboot $qmonboot --cdrom cdrom --name $qmname --vlan0 $qmnetdev=$qmmac --smp $qmcpu --bootdisk ide0
  +
</pre>
  +
  +
== Mindennapi használat ==
  +
  +
=== OpenVZ-s virtuális gépek menedzselése a hosztról ===
  +
  +
A
  +
  +
<pre>
  +
vzctl enter vmid
  +
</pre>
  +
  +
paranccsal azonnal beléphetünk, rootként, a futó virtuális gépbe (ez ugyanúgy működik, mint a vservernél).
  +
  +
=== OpenVZ-s virtuális gépek listázása ===
  +
<pre>
  +
# vzlist
 
CTID NPROC STATUS IP_ADDR HOSTNAME
 
CTID NPROC STATUS IP_ADDR HOSTNAME
157 38 running - test
+
157 38 running - test
161 36 running - test1
+
161 36 running - test1
sajnos a KVM-es gépek nem látszódnak.
+
</pre>
   
===OpenVz vrituál géphez plusz egy hálózati csatoló===
+
Ebben a listában a KVM-es gépek sajnos nem jelennek meg.
vzctl set 103 --netif_add eth1 --save
 
Saved parameters for CT 103
 
   
===OpenVZ virtuális gépben szükséges modulok a tűzfal működéséhez===
+
=== Új hálózati kártya hozzáadása OpenVZ-s guesthez ===
   
Ahhoz, hogy az iptables működhessen a konténerben, engedélyezni kell ezen modulokat egyrészt az /etc/vz/vz.conf-ban és a konténerben is. Az /etc/vz/vz.conf megfelelő sorát így kell kibővíteni:
+
<pre>
  +
# vzctl set 103 --netif_add eth1 --save
  +
Saved parameters for CT 103
  +
</pre>
   
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS
+
=== Parancs futtatása virtuális gépben ===
ipt_tcpmss ipt_ttl ipt_length \
 
ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_LOG ipt_conntrack ipt_helper \
 
ipt_state iptable_nat ip_nat_ftp ip_nat_irc ipt_TOS "
 
   
A módosítás után újra kell indítani a vz szolgáltatást (/etc/init.d/vz restart). Figyelem, ez leállítja
+
Ahogyan a vservernél, itt is elegendő egy
a futó virtuális gépeket!
+
  +
<pre>
  +
vzctl exec vmid apt-get -y upgrade
  +
</pre>
  +
  +
parancs ahhoz, hogy a megadott virtuális gépen lefuttassunk egy apt-get műveletet. Ehhez nem is kell explicite belépni a virtuális gépbe. A parancs terminálja a vzctl-t futtató user terminálja lesz.
  +
  +
=== Tűzfal OpenVZ-s virtuális gépben ===
  +
  +
Ahhoz, hogy az <tt>iptables</tt> működhessen a konténerben, engedélyezni kell a megfelelő NetFilter-modulokat egyrészt a <tt>/etc/vz/vz.conf</tt>-ban, másrészt magában a konténerben is. A <tt>/etc/vz/vz.conf</tt> megfelelő sorát így kell kibővíteni:
  +
  +
<pre>
  +
IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length \
  +
ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_LOG ipt_conntrack ipt_helper \
  +
ipt_state iptable_nat ip_nat_ftp ip_nat_irc ipt_TOS"
  +
</pre>
  +
  +
A módosítás után újra kell indítani a vz szolgáltatást (<tt>/etc/init.d/vz restart</tt>). Figyelem, ez leállítja a futó virtuális gépeket!
   
 
Az adott konténerben is engedélyezni kell ezen modulok használatát:
 
Az adott konténerben is engedélyezni kell ezen modulok használatát:
   
vzctl set 103 --iptables ipt_REJECT --iptables ipt_tos --iptables ipt_TOS --iptables ipt_LOG
+
<pre>
--iptables ip_conntrack --iptables ipt_limit --iptables ipt_multiport --iptables iptable_filter
+
# vzctl set 103 --iptables ipt_REJECT --iptables ipt_tos --iptables ipt_TOS --iptables ipt_LOG --iptables ip_conntrack \
--iptables iptable_mangle --iptables ipt_TCPMSS --iptables ipt_tcpmss --iptables ipt_ttl
+
--iptables ipt_limit --iptables ipt_multiport --iptables iptable_filter --iptables iptable_mangle --iptables ipt_TCPMSS \
--iptables ipt_length --iptables ipt_state --iptables iptable_nat --iptables ip_nat_ftp --save
+
--iptables ipt_tcpmss --iptables ipt_ttl --iptables ipt_length --iptables ipt_state --iptables iptable_nat \
Saved parameters for CT 103
+
--iptables ip_nat_ftp --save
  +
Saved parameters for CT 103
  +
</pre>
  +
  +
Ezután a konténert is újra kell indítani, hogy érvényt szerezzünk a változtatásoknak.
  +
  +
=== I/O-tuning ===
  +
  +
Ha feltűnően lassú az I/O a virtuális gépekben érdemes a következők valamelyikével próbálkozni:
  +
  +
<pre>
  +
for i in /sys/block/sd?/queue/scheduler; do
  +
echo deadline > $i
  +
done
  +
</pre>
  +
  +
Vagy:
  +
  +
<pre>
  +
for i in /sys/block/sd?/queue/scheduler; do
  +
echo cfq > $i
  +
done
  +
</pre>
  +
  +
=== Softraid és LVM ===
   
Ez után a konténert is újra kell indítani, hogy érvényt szerezzünk a változtatásoknak.
+
A Proxmox alapértelmezés szerint LVM-re telepíti a root filesystemet is, amivel nincs is különösebb gond. Utólag az [[LVM#LVM_.C3.A9s_RAID|LVM szócikkben]] leírtak szerint RAIDesíthetjük a rendszerünket.
   
===Lassú az adatmozgatás a virtuális gépen (OpenVz/KVM)===
+
Én személy szerint úgy éreztem, hogy ha a rootfs-t softraid fölötti LVM-re tettem, attól a rendszerem lelassult, de kimérni nem mértem ki. YMMV.
Érdemes a következővel próbálkozni:
 
echo “deadline” > /sys/block/sda/queue/scheduler
 
   
===Proxmox software raid & LVM===
+
Arról semmiképpen ne feledkezzünk meg, hogy a Proxmox kerneléhez tartozó initrd-t újrageneráljuk úgy, hogy belekerüljön az mdadm, hiszen különben nem lesz, ami az LVM alatt összerakja nekünk a RAIDet a boot során.
A Proxmox alapértelmezetten LVM-re telepíti a root filesystem-et is, amivel nincs is különösebb gond, viszont ha úgy döntünk hogy heggesztünk alá egy software raid-et akkor az a tapasztaladom hogy jelentősen lassúl a rendszer. Szóval érdemes a rootfs-t lvm nélküli software raid-re átrakni, az adatpartició meg LVM-esre, már ha szeretnénk online migrálni. Ehhez [https://unixlinux.tmit.bme.hu/LVM#LVM_.C3.A9s_RAID itt] találhatunk egy kis útmutatót.
 
Miútán befejeztük, ne feledjük el a Proxmox-os kernel initrd-jébe beletenni az mdadm támogatást és újra forditani, mert különben nem fogja felépiteni a md device-okat.
 

A lap jelenlegi, 2009. december 15., 17:02-kori változata

Irta: Dobó László, 2009. december

A Proxmox PE egy Debianra épülő OpenVZ-t és KVM-et támogató virtualizációs platform. A Proxmox egyszerűen és gyorsan telepíthető, könnyen konfigurálható és jó a dokumentaciója; csak ajánlani tudom mindenkinek, aki virtualizációs megoldást keres. A Proxmox főbb jellemzői, képességei a következők:

  • Konténeralapú virtualizáció - konténerek lényegét, hasznosságát lásd később
  • KVM-alapú virtualizáció
  • Bare-Metal ISO telepítő - magyarán pár perc alatt kézhez kapsz egy üres szervert.
  • WEB alapu menedzsment
  • Cluster támogatás
  • Mentés, visszaállitás, online migrálás

Tartalomjegyzék

[szerkesztés] 1 Rendszerkövetelmények

  • 64bites processor
  • 1 Gb memória (4 Gb ajánlott)
  • 1 NIC (2 ajánlott az értelmes tűzfalazáshoz)

Telepítés előtt érdemes elgondolkodni azon hogy akarunk-e KVM-et használni. Amennyiben úgy döntünk hogy akár most akár a későbbiekben szükség lehet rá, akkor okvetlen olyan processzort válsszunk, ami támogatja az Intel VT/AMD-V-t.

[szerkesztés] 2 Telepítés

[szerkesztés] 2.1 Saját telepítőjével

Nem nagyon van mit hozzáfűzni: next, next, finish.

Ugyanakkor vegyük figyelembe, hogy a Proxmox PE nem támogatja a software RAID-et, és úgy néz ki, nem is fogja. Így aztán vagy vásárolunk hardveres RAID-vezérlőt, vagy manuális gányolással állítjuk be a softraidet, ha fontos a rendelkezésreállás.

[szerkesztés] 2.2 Már létező Debianra

Szerkesszük meg a sources.list-et:

echo deb http://download.proxmox.com/debian lenny pve >>/etc/apt/sources.list

Adjuk hozzá a rendszerünkhöz a Proxmox PE repository kulcsát:

wget -q -O- http://download.proxmox.com/debian/key.asc | apt-key add -

Frissítsük a csomaglistát:

apt-get update

Telepítsük a Proxmox PE kernelét:

apt-get install pve-kernel

Ha szükséges, állítsuk be a bootloaderünket, hogy ezt a kernelt töltse be a következő bootkor, majd rebootoljunk.

Telepítsük a Proxmox PE-vel összefüggő további csomagokat:

apt-get install proxmox-ve ntp

... és már csatlakozhatunk is a webes felületre.

[szerkesztés] 2.3 Finomhangolás

A Proxmox fő konfigurációs file-ja a /etc/vz/vz.conf-ban található. Ebben módosithatjuk többek között a környezeti változóit,loglevelt és a betöltendő IPv4-6 kernel modulokat.

[szerkesztés] 3 A webes felület

A webes menedzsment-felületet igen kényelmes. A következő beállításokat teszi lehetővé a hosztgéppel kapcsolatban:

  • rendszeridő;
  • DNS-szerver;
  • IP-címek;
  • mentés ütemezése;
  • custering.

Emellett a virtuális gépeinket:

  • elindíthatjuk;
  • leállíthatjuk;
  • újraindíthatjuk;
  • migrálhatjuk egyik gépről a másikra, akár online is;

Néhány kattintással új virtuális gépet is létrehozhatunk.

sun-java6-plugin-re szükség lesz.
800px-Screen-startpage-with-cluster.png

[szerkesztés] 4 Virtuális gép telepítése

Kétféle virtualizációs megoldás közül választhatunk, és ezeket szabadon keverhetjük: OpenVZ ill. KVM.

[szerkesztés] 4.1 Konténeralapú virtualizáció: OpenVZ

Linuxot futtató virtuális szerverek üzemeltetéséhez ezt a technológiát ajánlom. Minden egyes virtuális gép egy külön konténerbe kerül; a létrehozáskor megadott adatokat (tárhely, memória, cpu-k száma, cpu-idő korlátozása) bármikor megváltoztathatjuk. A konténerek igen nagy előnye, hogy fájlrendszerszinten elérhetők (alapértelmezett esetben a /var/lib/vz/private/vmid alatt).

Egy új virtuális gép a webes menedzsment-felületről pár kattintással létrehozható; ehhez nem fűznék különösebb magyarázatot.

1.png
2.png

Ha scriptből szeretnénk virtuális gépet létrehozni, az sem lehetetlen; lássunk egy példát.

#!/bin/bash
#-----------------------------------------------------
#Initial VM variables
#-----------------------------------------------------
vmdescription="debian-test VM"
vmid=444
vmhostname="test"
vmostemplate="debian-5.0-standard_5.0-1_i386.tar.gz"
vmrootpasswd='$1$EgSNc8pS$dc4aP14RZUVeUPjZiD5WM1'
vmdiskspace=8
vmmem=1024
vmswap=2048
vmcpu=1
vmifdev="eth0"
vmbridge="vmbr1"
vmipaddr="10.0.1.2"
vmnetmask="255.255.255.0"
vmgateway="10.0.1.1"
vmnameserver="1.2.3.4"
vmonboot="yes"
vmprivate="/var/lib/vz/private"
vmtimezone="Europe/Budapest"
echo "Creating VM..."
pvectl vzcreate $vmid --disk $vmdiskspace --ostemplate $vmostemplate --rootpasswd $vmrootpasswd --hostname $vmhostname --description $vmdescription --onboot $vmonboot --swap $vmswap --mem $vmmem --cpus $vmcpu --netif "ifname=$vmifdev,bridge=$vmbridge"
echo "Configuring VM..."
echo -e "auto $vmifdev\niface $vmifdev inet static\n	address $vmipaddr\nnetmask $vmnetmask\n	gateway  $vmgateway" >> $vmprivate/$vmid/etc/network/interfaces
echo "nameserver $vmnameserver" > $vmprivate/$vmid/etc/resolv.conf
echo $timezone > $vmprivate/$vmid/etc/timezone
echo "Starting VM..."
vzctl start $vmid

A virtuális gép hálózatra való kijuttatását kétféleképpen oldhatjuk meg:

  1. Virtuális Hálózattal (venet)
    • Előnye: menedzsent-felületen összekattingatva már működik is.
    • Hátránya: megjegyezhetetlen, nem átlátható eszközneveket kapunk.
  2. Hídba kapcsolt ethernettel (veth)
    • Előnye: Átlátható, világos eszköznevek.
    • Hátránya: kézzel kell konfigolni a konténer alatti /etc/network/interfaces fájlban (vagy ennek disztribúciófüggő helyi megfelelőjében).

[szerkesztés] 4.2 Paravirtualizáció: KVM

Ez a megoldás a Xenre hasonlít; a virtuális gépek saját virtualizált hardware-en futnak, és a hosztgép kernele a hipervizor. Akkor érdemes használni, ha Linuxtól eltérő operációs rendszert virtualizálunk, vagy ha fontos, hogy a virtuális gépben egy konkrét, a hosztgépétől eltérő kernelverzió fusson.

A megoldás nagy hátránya, hogy a hosztgépről nem tudunk automatikusan közvetlenül hozzáférni a virtuális gép fájlrendszeréhez.

KVM-es virtuális gépet szintén létrehozhatunk a webes felületről, de parancssoros eszközzel is:

#-----------------------------------------------------
#Initial QM variables
#-----------------------------------------------------
qmname="KVM test VM"
qmid="666"
qmmem="512"
qmdiskspace="8"
qmcpu="1"
qmostype="other"
qmonboot="no"
qmmac="F6:B4:59:58:4A:B0"
qmnetdev="rtl8139"
qm create $qmid --ide0 $qmdiskspace --ostype qmostype --memory $qmmem --onboot $qmonboot --cdrom cdrom --name $qmname --vlan0  $qmnetdev=$qmmac --smp $qmcpu --bootdisk ide0

[szerkesztés] 5 Mindennapi használat

[szerkesztés] 5.1 OpenVZ-s virtuális gépek menedzselése a hosztról

A

vzctl enter vmid

paranccsal azonnal beléphetünk, rootként, a futó virtuális gépbe (ez ugyanúgy működik, mint a vservernél).

[szerkesztés] 5.2 OpenVZ-s virtuális gépek listázása

# vzlist
 CTID      NPROC STATUS  IP_ADDR         HOSTNAME                        
  157         38 running -               test                          
  161         36 running -               test1

Ebben a listában a KVM-es gépek sajnos nem jelennek meg.

[szerkesztés] 5.3 Új hálózati kártya hozzáadása OpenVZ-s guesthez

# vzctl set 103 --netif_add eth1 --save
Saved parameters for CT 103

[szerkesztés] 5.4 Parancs futtatása virtuális gépben

Ahogyan a vservernél, itt is elegendő egy

vzctl exec vmid apt-get -y upgrade

parancs ahhoz, hogy a megadott virtuális gépen lefuttassunk egy apt-get műveletet. Ehhez nem is kell explicite belépni a virtuális gépbe. A parancs terminálja a vzctl-t futtató user terminálja lesz.

[szerkesztés] 5.5 Tűzfal OpenVZ-s virtuális gépben

Ahhoz, hogy az iptables működhessen a konténerben, engedélyezni kell a megfelelő NetFilter-modulokat egyrészt a /etc/vz/vz.conf-ban, másrészt magában a konténerben is. A /etc/vz/vz.conf megfelelő sorát így kell kibővíteni:

IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length \
ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_LOG ipt_conntrack ipt_helper \
ipt_state iptable_nat ip_nat_ftp ip_nat_irc ipt_TOS"

A módosítás után újra kell indítani a vz szolgáltatást (/etc/init.d/vz restart). Figyelem, ez leállítja a futó virtuális gépeket!

Az adott konténerben is engedélyezni kell ezen modulok használatát:

# vzctl set 103 --iptables ipt_REJECT --iptables ipt_tos --iptables ipt_TOS --iptables ipt_LOG --iptables ip_conntrack \
--iptables ipt_limit --iptables ipt_multiport --iptables iptable_filter --iptables  iptable_mangle --iptables ipt_TCPMSS \
--iptables ipt_tcpmss --iptables ipt_ttl --iptables ipt_length --iptables ipt_state --iptables iptable_nat \
--iptables ip_nat_ftp --save
Saved parameters for CT 103

Ezután a konténert is újra kell indítani, hogy érvényt szerezzünk a változtatásoknak.

[szerkesztés] 5.6 I/O-tuning

Ha feltűnően lassú az I/O a virtuális gépekben érdemes a következők valamelyikével próbálkozni:

for i in /sys/block/sd?/queue/scheduler; do
  echo deadline > $i
done

Vagy:

for i in /sys/block/sd?/queue/scheduler; do
  echo cfq > $i
done

[szerkesztés] 5.7 Softraid és LVM

A Proxmox alapértelmezés szerint LVM-re telepíti a root filesystemet is, amivel nincs is különösebb gond. Utólag az LVM szócikkben leírtak szerint RAIDesíthetjük a rendszerünket.

Én személy szerint úgy éreztem, hogy ha a rootfs-t softraid fölötti LVM-re tettem, attól a rendszerem lelassult, de kimérni nem mértem ki. YMMV.

Arról semmiképpen ne feledkezzünk meg, hogy a Proxmox kerneléhez tartozó initrd-t újrageneráljuk úgy, hogy belekerüljön az mdadm, hiszen különben nem lesz, ami az LVM alatt összerakja nekünk a RAIDet a boot során.

Személyes eszközök