Proxmox VE
a (→Web-es felület: nyelvészkedés, formázgatás) |
a (→Virtuál gép telepítés: nyelvészkedés, formázgatás) |
||
81. sor: | 81. sor: | ||
<tt>sun-java6-plugin</tt>-re szükség lesz. [[Fájl:800px-Screen-startpage-with-cluster.png|thumb|150px]] |
<tt>sun-java6-plugin</tt>-re szükség lesz. [[Fájl:800px-Screen-startpage-with-cluster.png|thumb|150px]] |
||
− | ==Virtuál gép telepítés== |
+ | ==Virtuális gép telepítése== |
− | ===Konténer alapú Openvz=== |
+ | Kétféle virtualizációs megoldás közül választhatunk, és ezeket szabadon keverhetjük: OpenVZ ill. KVM. |
− | 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á: |
+ | === 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 |
+ | <pre> |
− | #----------------------------------------------------- |
+ | #!/bin/bash |
− | vmdescription="debian-test VM" |
+ | #----------------------------------------------------- |
− | vmid=444 |
+ | #Initial VM variables |
− | vmhostname="test" |
+ | #----------------------------------------------------- |
− | vmostemplate="debian-5.0-standard_5.0-1_i386.tar.gz" |
+ | vmdescription="debian-test VM" |
− | vmrootpasswd='$1$EgSNc8pS$dc4aP14RZUVeUPjZiD5WM1' |
+ | vmid=444 |
− | vmdiskspace=8 |
+ | vmhostname="test" |
− | vmmem=1024 |
+ | vmostemplate="debian-5.0-standard_5.0-1_i386.tar.gz" |
− | vmswap=2048 |
+ | vmrootpasswd='$1$EgSNc8pS$dc4aP14RZUVeUPjZiD5WM1' |
− | vmcpu=1 |
+ | vmdiskspace=8 |
− | vmifdev="eth0" |
+ | vmmem=1024 |
− | vmbridge="vmbr1" |
+ | vmswap=2048 |
− | vmipaddr="10.0.1.2" |
+ | vmcpu=1 |
− | vmnetmask="255.255.255.0" |
+ | vmifdev="eth0" |
− | vmgateway="10.0.1.1" |
+ | vmbridge="vmbr1" |
− | vmnameserver="1.2.3.4" |
+ | vmipaddr="10.0.1.2" |
− | vmonboot="yes" |
+ | vmnetmask="255.255.255.0" |
− | vmprivate="/var/lib/vz/private" |
+ | vmgateway="10.0.1.1" |
− | vmtimezone="Europe/Budapest" |
+ | vmnameserver="1.2.3.4" |
− | echo "Creating VM..." |
+ | vmonboot="yes" |
− | pvectl vzcreate $vmid --disk $vmdiskspace --ostemplate $vmostemplate --rootpasswd $vmrootpasswd |
+ | vmprivate="/var/lib/vz/private" |
− | --hostname $vmhostname --description $vmdescription --onboot $vmonboot --swap $vmswap |
+ | vmtimezone="Europe/Budapest" |
− | --mem $vmmem --cpus $vmcpu --netif "ifname=$vmifdev,bridge=$vmbridge" |
+ | echo "Creating VM..." |
− | echo "Configuring VM..." |
+ | pvectl vzcreate $vmid --disk $vmdiskspace --ostemplate $vmostemplate --rootpasswd $vmrootpasswd |
− | echo -e "auto $vmifdev\niface $vmifdev inet static\n address $vmipaddr\n |
+ | --hostname $vmhostname --description $vmdescription --onboot $vmonboot --swap $vmswap |
− | netmask $vmnetmask\n gateway $vmgateway" >> $vmprivate/$vmid/etc/network/interfaces |
+ | --mem $vmmem --cpus $vmcpu --netif "ifname=$vmifdev,bridge=$vmbridge" |
− | echo "nameserver $vmnameserver" > $vmprivate/$vmid/etc/resolv.conf |
+ | echo "Configuring VM..." |
− | echo $timezone > $vmprivate/$vmid/etc/timezone |
+ | echo -e "auto $vmifdev\niface $vmifdev inet static\n address $vmipaddr\n |
− | echo "Starting VM..." |
+ | netmask $vmnetmask\n gateway $vmgateway" >> $vmprivate/$vmid/etc/network/interfaces |
− | vzctl start $vmid |
+ | 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: |
||
+ | |||
+ | # 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). |
||
− | A virtuál gép hállózatva való kijuttatását két féleképpen oldhatjuk meg: |
+ | === Paravirtualizáció: KVM === |
− | *Virtuális Hálózattal (venet) |
||
− | 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) |
||
− | Előnye: Átlátható, világos eszköznevek. Hátránya: kézzel kell felkonfigolni a konténer alatti /etc/network/interfaces fileban. |
||
+ | 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. |
||
− | ===KVM vagy más néven Telyes Virtualizáció=== |
+ | 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. |
− | 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: |
+ | KVM-es virtuális gépet szintén létrehozhatunk a webes felületről, de parancssoros eszközzel is: |
− | qm create 666 --ide0 8 --ostype other --memory 512 --onboot no --cdrom cdrom --name test1 |
+ | <pre> |
− | --vlan0 rtl8139=F6:B4:59:58:4A:B0 --smp 1 --bootdisk ide0 |
+ | # qm create 666 --ide0 8 --ostype other --memory 512 --onboot no --cdrom cdrom --name test1 --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 |
+ | Formatting '/var/lib/vz/images/666/vm-666-disk.qcow2', fmt=qcow2, size=8388608 kB |
+ | </pre> |
||
==Tippek és Trükkök== |
==Tippek és Trükkök== |
A lap 2009. december 15., 03:24-kori változata
A 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. 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
- KVM 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
1 Rendszer követelmények
- 64bit-es processor
- 1 Gb memórai (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, 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.
2 Telepíté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.
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.
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.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.
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.
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\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ális gép hálózatra való kijuttatását kétféleképpen oldhatjuk meg:
- 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).
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:
# qm create 666 --ide0 8 --ostype other --memory 512 --onboot no --cdrom cdrom --name test1 --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
5 Tippek és Trükkök
5.1 OpenVz virtuál gépekhez bármikor hozzá tudunk férni Proxmox alól
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 :)
5.2 OpenVz virtuál gépek listázása
vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 157 38 running - test 161 36 running - test1
sajnos a KVM-es gépek nem látszódnak.
5.3 OpenVz vrituál géphez plusz egy hálózati csatoló
vzctl set 103 --netif_add eth1 --save Saved parameters for CT 103
5.4 OpenVz virtuál gép vzctl powa
vzctl exec vmid apt-get -y upgrade
Látható, hogy szinte bármilyen műveletet elvégezhetünk anélkül hogy be kellene lépnünk a VM-re.
5.5 OpenVZ virtuális gépben szükséges modulok a tűzfal működéséhez
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:
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
Ez után a konténert is újra kell indítani, hogy érvényt szerezzünk a változtatásoknak.
5.6 Lassú az adatmozgatás a virtuális gépen (OpenVz/KVM)
Érdemes a következővel próbálkozni:
echo “deadline” > /sys/block/sda/queue/scheduler
5.7 Proxmox software raid & LVM
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 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.