PDA

Bekijk Volledige Versie : [openvz] n00b vraagjes



nzyme
25/02/07, 18:59
goed, omdat mn Epia niet met Xen overweg kan ben ik sinds gister ochtend op openvz aangewezen op de thuisserver :)
Er draaien inmiddels 3 debian vm's en 1 ubuntu vm op en die werken allemaal aardig, maar toch heb ik enkele vragen/problemen...

1) Hoe stel ik helder in hoeveel geheugen een VM kan gebruiken, want dat SLM wil dus niet in openvz. Het config bestandje (10x.conf) is nogal expert style geloof ik :p Het komt in de VM ook niet goed naar voren via free -m

2) Hoe moet ik IN een vm iptables gebruiken, venet0:0 mag ik nl niet als netdev gebruiken. (iptables -L werk trouwens wel)

3) Wat zijn normale instellingen voor de config files, en dan met name de buffers enzo. Bijvoorbeeld een bestand van ~5kb overzetten ging nogal wazig @ 1kb/s en een dvd overzetten gaat nu @ ~9 tot ~11mb/s...
Tevens zit ik nu met een "out of memory!' error in een van de VM's als ik een apt-get install mrtg doe :(

4) Ik kan geen dhcp server draaien, wederom omdat hij het netdev niet kan/mag/wil gebruiken. Hoe zit dat ?

Het zal vast vrij basic zijn allemaal, maar ik ben slechts met Xen en vmware bekend, dus dan is openVZ ineens best moeilijk (in zo'n korte tijd) :)

Apoc
25/02/07, 19:53
1) SLM is ook iets wat enkel ondersteund wordt door Virtuozzo, niet openVZ :) Je bent met openVZ aangewezen op de UBC parameters. Voor het instellen van het geheugen heb je de volgende parameters nodig:

vmguarpages (totale hoeveelheid ram)
oomguarpages (gegarandeerde ram)
privvmpages (totale hoeveelheid ram)

Er is een verschil tussen vmguarpages en privvmpages, maar het voert wat te ver om in detail uit te leggen wat het verschil is. In het kort komt het er op neer dat er onder de ene parameter bepaalde dingen wel worden berekend, die onder de andere niet worden berekend. Maar om het simpel te houden: normaliter zou de waarde van vmguarpages gelijk moeten zijn aan die van privvmpages.

Stel nu, je wilt een VPS instellen met 1024mb totale (burstable) RAM, en 256mb gegarandeerde RAM, dan ga je als volgt te werk:

Voor alle parameters geldt dat de eenheid wordt uitgedrukt in een grootheid van 4kb pages. Dat wil zeggen; stel dat je "1" invult, dan heeft de VPS 4kb ram.

Eerst de gegarndeerde RAM. Dit moet 256mb worden:

256mb:: 256 x 1024 = 262144kb
Dit moet nu nog worden omgerekend naar 4kb pages. Ofwel, het moet door 4 gedeeld worden: 262144 / 4 = 65536 pages. Dit is dus de hoeveelheid die je invult bij oomguarpages om 256mb gegarandeerde ram toe te wijzen.

Nu de 1GB totale (burstable) ram:
1GB = 1024mb
1024mb:: 1024 x 1024 = 1048576kb
Omrekenen naar pages (delen door 4 dus): 262144 pages
Deze waarde vul je dus in voor zowel vmguarpages als privvmpages.

Overigens zul je met openVZ met het "free" commando altijd de totale hoeveelheid ram van de hele (fysieke) server zien, niet enkel de ram van de VPS zelf. Dit is enkel te regelen met SLM, wat dus niet bij openVZ is inbegrepen.

2. Je zult eerst moeten zorgen dat de host iptables aan heeft staan en de juist modules gecompileerd heeft. Daarna zou het gewoon moeten werken.

3. Dat is een kwestie van testen :) Je zult het zo moeten instellen dat je de VPS niet te veel inperkt, maar tegelijkertijd wel de andere VPS's beschermt in het geval 1 VPS (bijvoorbeeld) aangevallen wordt. Als je een out of memory error krijgt, kun je met "cat /proc/user_beancounters" kijken welke parameter de error veroorzaakt. Aan de hand daarvan zou je wel verder moeten kunnen komen.

4. Die vraag is nogal vaag.. wat bedoel je met "hij mag het netdev niet gebruiken"?


Het zal vast vrij basic zijn allemaal, maar ik ben slechts met Xen en vmware bekend, dus dan is openVZ ineens best moeilijk (in zo'n korte tijd)

Dat zal je vies tegenvallen. Het instellen is opzich vrij makkelijk, maar je zult ook ervaring op moeten doen met wat er allemaal fout kan gaan. Ik weet niet wat je precies gaat draaien, maar als het iets bedrijfskritisch is, dan zou ik ervoor zorgen om toch zo veel mogelijk ervaring op te doen voordat je van start gaat.

nzyme
25/02/07, 20:33
allereerst bedankt voor de antwoorden :)

en voor de duidelijkheid, het gaat om een thuis server dus echt kritisch is het ook cker niet :) Ik ga echt geen krisische software in productie nemen als ik het niet ken :p

Met vraag 4 bedoel ik dat de dhcp server de VM geen network device kan gebruiken ofzo, maar ik zal het even opnieuw moeten installeren voor een reproductie.

de host heeft iptables, dwz iptables -L geeft me wat info terug.

lsmod |grep tables
ip_tables 12876 2 iptable_mangle,iptable_filter
x_tables 14724 9 xt_length,ipt_ttl,xt_tcpmss,ipt_TCPMSS,xt_multipor t,xt_limit,ipt_tos,ipt_REJECT,ip_tables

en dat geheugen zal ik eens gaan bekijken, bedankt.

nou dit is niet verbeterd:

-bash: fork: Kan geen geheugen toewijzen

met:
vzctl set 102 --oomguarpages 65536:2147483647 --privvmpages 262144:262144 --vmguarpages 262144:2147483647

Apoc
26/02/07, 00:50
Om eerlijk te zijn heb ik zelf nog nooit DHCP geprobeerd te gebruiken op een VPS, omdat wij natuurlijk enkel static IPs gebruiken.

Qua iptables; dat zou dan allemaal in orde kunnen zijn, echter zou het kunnen zijn dat er nog bepaalde modules vereist zijn die niet geladen zijn. Je kan daarvoor het beste even de handleiding van de applicatie waar het om gaat nakijken, om te zien welke modules er benodigd zijn.

Met betrekking tot het geheugen; dat kan natuurlijk ook iets anders zijn, zoals de hoeveelheid processen of iets dergelijks. Kijk daarvoor dus even naar de user_beancounters. In dit geval:


vzctl exec 102 cat /proc/user_beancounters

Als er geen problemen zijn, dan zal de laatste kolom overal "0" aangeven. Staat er ergens iets anders dan 0, dan is dat een parameter waarvan de limiet bereikt is.

nzyme
26/02/07, 10:43
Om eerlijk te zijn heb ik zelf nog nooit DHCP geprobeerd te gebruiken op een VPS, omdat wij natuurlijk enkel static IPs gebruiken.

Qua iptables; dat zou dan allemaal in orde kunnen zijn, echter zou het kunnen zijn dat er nog bepaalde modules vereist zijn die niet geladen zijn. Je kan daarvoor het beste even de handleiding van de applicatie waar het om gaat nakijken, om te zien welke modules er benodigd zijn.

Met betrekking tot het geheugen; dat kan natuurlijk ook iets anders zijn, zoals de hoeveelheid processen of iets dergelijks. Kijk daarvoor dus even naar de user_beancounters. In dit geval:


vzctl exec 102 cat /proc/user_beancounters

Als er geen problemen zijn, dan zal de laatste kolom overal "0" aangeven. Staat er ergens iets anders dan 0, dan is dat een parameter waarvan de limiet bereikt is.

zover was ik inmiddels ook al, want ik heb al meermalen dus bij verschillende counters een >0 gezien :)

Verder gaat het om een thuisserver en daar is dhcp toch wel handig ;)

Wat iptables betreft, ik probeer een standaard filter rule te maken... Ik zal eens kijken of daar niet iets anders voor geladen moet zijn...
Moet ik vanavond eens uitzoeken :)

iptables -A INPUT -t filter -i venet0 -p tcp --dport 80 -j ACCEPT
iptables: No chain/target/match by that name

en in de host werkt die regel wel... Nou kan ik wel op de forward chain in de host iptables gaan toepassen, maar het zou toch ook in de VM moeten kunnen lijkt me :/

Apoc
26/02/07, 14:37
zover was ik inmiddels ook al, want ik heb al meermalen dus bij verschillende counters een >0 gezien :)

Dan kun je het beste alle parameters waarbij errors >0 zijn, verhogen, totdat er geen errors meer bij komen. Tevens zou je waarschijnlijk op de site van openVZ wel informatie moeten kunnen vinden over de aanbevolen waarden.


Wat iptables betreft, ik probeer een standaard filter rule te maken... Ik zal eens kijken of daar niet iets anders voor geladen moet zijn...
Moet ik vanavond eens uitzoeken :)

iptables -A INPUT -t filter -i venet0 -p tcp --dport 80 -j ACCEPT
iptables: No chain/target/match by that name

en in de host werkt die regel wel... Nou kan ik wel op de forward chain in de host iptables gaan toepassen, maar het zou toch ook in de VM moeten kunnen lijkt me :/

Probeer dit eens:

Om te beginnen, open /etc/sysconfig/iptables-config en vervang de IPTABLES_MODULES regel met dit:


IPTABLES_MODULES="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 ipt_LOG ipt_conntrack ipt_helper ipt_state iptable_nat ip_nat_ftp ip_nat_irc ipt_TOS"


Vervolgens open je /etc/sysconfig/vz en vervang je de huidige IPTABLES regel met:


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"


Tevens even opletten dat er in geen enkele VPS configuratie IPTABLES="" of iets dergelijks staat. Dit kun je nagaan in de configuratie van iedere VPS in /etc/sysconfig/vz-scripts. Indien er in een van de VPS configuraties nog een IPTABLES= regel staat, dan kun je die regel geheel verwijderen. Als er namelijk in een VPS configuratie geen IPTABLES regel staat, dan wordt de globale IPTABLES regel uit /etc/sysconfig/vz gebruikt.

Tenslotte VZ opnieuw starten (let op: hiermee restart je ook alle VPS's):


service vz restart

nzyme
26/02/07, 15:02
vzctl set 102 --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_TOS2 disabled no --save
Dat moet ook werken lijkt me, toch ? << ja dus :)

Apoc
26/02/07, 15:04
vzctl set 102 --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_TOS2 disabled no --save
Dat moet ook werken lijkt me, toch ? << ja dus :)

Jep maar dan stel je het enkel voor die VPS specifiek in. Als je het doet op de manier zoals ik het omschreef, dan kan elke VPS iptables gewoon gebruiken, zonder het apart in te hoeven stellen per VPS.

nzyme
26/02/07, 15:11
Jep maar dan stel je het enkel voor die VPS specifiek in. Als je het doet op de manier zoals ik het omschreef, dan kan elke VPS iptables gewoon gebruiken, zonder het apart in te hoeven stellen per VPS.

klopt, maar die bewuste files zitten in debian niet (ik kan ze iig niet zo 123 vinden) en ach het lukt zo ook best :)

Nu nog ff op de openvz site wat recommended settings uitzoeken :)

edit:
mijn beancounters:


cartman:~# cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
102: kmemsize 2242751 2754376 2752512 2936012 21
lockedpages 0 0 32 32 0
privvmpages 45708 49452 49152 53575 448
shmpages 1296 1312 8192 8192 0
dummy 0 0 0 0 0
numproc 42 57 65 65 0
physpages 14575 17230 0 2147483647 0
vmguarpages 0 0 6144 2147483647 0
oomguarpages 14575 17230 6144 2147483647 0
numtcpsock 10 14 80 80 0
numflock 4 18 100 110 0
numpty 3 3 16 16 0
numsiginfo 0 9 256 256 0
tcpsndbuf 11160 98208 334800 647280 0
tcprcvbuf 0 243960 334800 647280 0
othersockbuf 20088 26864 132096 336896 0
dgramrcvbuf 0 128400 132096 132096 5
numothersock 20 26 120 120 0
dcachesize 0 0 1048576 1097728 0
numfile 1147 1391 2048 2048 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 16 16 128 128 0


privvmpages ?
49452 - 45708 !=448
wazig :/

Apoc
26/02/07, 16:56
privvmpages ?
49452 - 45708 !=448
wazig :/

Nee zo wordt dat niet berekend. Failcnt wil zeggen "fail count", oftewel de aantal malen dat de bewuste limiet bereikt is. Stel dat er 100 keer tegen die limiet aangestoten is, dan is de failcnt 100.

Gezien je huidige gebruik zou ik aanraden om zowel privvmpages als kmemsize aanzienlijk te verhogen. Je hebt bij deze VPS overigens duidelijk niet mijn instructies gevolgd ;) privvmpages en vmguarpages zouden dezelfde waarden moeten hebben.

Momenteel heb je:

privvmpages (totale ram) = 53575 pages = 209mb ram
oomguarpages (gegarandeerde ram) = 6144 pages = 24mb ram
vmguarpages (totale ram) = 6144 pages = 24mb ram

Dat gaat natuurlijk nooit goed werken :)

nzyme
26/02/07, 17:02
Nee zo wordt dat niet berekend. Failcnt wil zeggen "fail count", oftewel de aantal malen dat de bewuste limiet bereikt is. Stel dat er 100 keer tegen die limiet aangestoten is, dan is de failcnt 100.

Gezien je huidige gebruik zou ik aanraden om zowel privvmpages als kmemsize aanzienlijk te verhogen. Je hebt bij deze VPS overigens duidelijk niet mijn instructies gevolgd ;) privvmpages en vmguarpages zouden dezelfde waarden moeten hebben.

Momenteel heb je:

privvmpages (totale ram) = 53575 pages = 209mb ram
oomguarpages (gegarandeerde ram) = 6144 pages = 24mb ram
vmguarpages (totale ram) = 6144 pages = 24mb ram

Dat gaat natuurlijk nooit goed werken :)
ah, ok. Het is dus letterlijk een teller. Verder heb ik initieel WEL je instructies opgevolgd, maar omdat het daarmee helemaal niet lukte heb ik de oude weer toegepast ;)
Ik stoei nog wel even verder (voorzover mogelijk via een ssh sessie)...

edit:


vzctl set 102 --oomguarpages 65536:2147483647 --privvmpages 262144:262144 --vmguarpages 262144:2147483647
dit had ik eerst dus ;)

Apoc
26/02/07, 17:08
Dat laatste zou prima moeten werken. Als je daarnaast de kmemsize flink verhoogt zou je probleem verholpen moeten zijn. Om te testen zou je bijvoorbeeld een 0 achter de huidige waarden kunnen zetten.

nzyme
26/02/07, 17:55
nvm :/

vanavond de details iig :)