Akinek gondja lenne a VirtualBox vdrp felbontással, mert nem menne olyanban mint amilyen gépen éppen nézné, akkor próbálja ki az alábbit:
VBoxManage controlvm <virtuálisgép neve> setvideomodehint 1280 800 16
Akinek gondja lenne a VirtualBox vdrp felbontással, mert nem menne olyanban mint amilyen gépen éppen nézné, akkor próbálja ki az alábbit:
VBoxManage controlvm <virtuálisgép neve> setvideomodehint 1280 800 16
64 bites új architektúra miatt gondoltam kipróbálom milyen lehetne, ha újrahúznám az egész hóbelebancot. Csináltam két dvavi-> mp2ts konverziót 32 illetve 64 bites ubuntuval. Az eredmény a következő:
32 bit:
real 82m9.074s
user 0m20.405s
sys 132m8.275s
64 bit:
real 72m9.609s
user 123m6.350s
sys 1m27.010s
Input #0, avi, from '/mnt/d1/2011_12_16_MuvHaz.avi':
Duration: 00:58:15.48, start: 0.000000, bitrate: 30339 kb/s
Stream #0.0: Video: dvvideo, yuv420p, 720×576, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream #0.1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Input #0, mpeg, from '/mnt/d1/2011_12_16_MuvHaz.64.mpg':
Duration: 00:58:15.40, start: 0.500000, bitrate: 5361 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720×576 [PAR 64:45 DAR 16:9], 9000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x1c0]: Audio: mp2, 48000 Hz, 2 channels, s16, 192 kb/s
root@petike-desktop:~# md5sum /mnt/d1/2011_12_16_MuvHaz.mpg /mnt/d1/2011_12_16_MuvHaz.64.mpg
960de53579c3501744f5a6cb4ff6191e /mnt/d1/2011_12_16_MuvHaz.mpg
960de53579c3501744f5a6cb4ff6191e /mnt/d1/2011_12_16_MuvHaz.64.mpg
Hát ennyi. Valamivel gyorsabb 64 biten. Mivel sok videot számolok ezért lehet megéri az os upgrade.
A cím lehetne az is, hogy megoldásaim, mert ezeken kívül még biztos nagyon sokféle van. Az is biztos, hogy nem térek ki mindenre teljes részletességgel.
A feladat
Az elmúlt időben számos olyan feladat adódott, ahol egyszerűbb volt virtuális gépeken megvalósítani egy-egy apróbb feladatot. A FreeBSD-től nem igazán szeretek megválni, de sajnos a VMWare server nem fut (legalábbis nem találtam) FreeBSD-n.
VmWare Server – Ubuntu 8.04 LTS Server
Az első ilyen “éles” megoldás egy Ubuntu Serverre került fel. A gép és az oprendszer adott volt. Windowsos fájlmegosztást végzett egy kis üzemben. A gép kihasználtsága nem volt magas (a feladatához mérve még túl erős is volt), így könnyedén fel lehetett telepíteni a VmWare Server 2-t. A telepítésről nem igazán érdemes sokat mondani. Ugyan nem Windowsokon megszokott Next-Next-Ok módon zajlik a telepítés, de minden egyszerűen érthető. X nem kell neki és service-ként elindul. A gépet sem kellett újraindítani. Az aktuális kernel forrását le kell tölteni (ha nem lenne amúgy is ott), mert a saját moduljait a telepítő lefordítja. A telepítés kulturáltan végig megy és a hálózat újraindítása után miden klappol. Elindít egy webes management felületet, amin keresztül szinte minden beállítható.
A Webes felülettel egy apró gondom volt. A frontend szerint a kiszolgáló webservice mindig megáll. Ennek okát (még) nem találtam meg, de ha elég lassan kattintgatok (értsd: kattintás után megvárom míg a műveletet befejezi), akkor minden OK. Egyetlen szépséghibája, hogy szerintem IE alatt jobban megy a felület, mint más böngészőből.
A hálózatok a korábban megszokott VmWare-es analógiára épülnek itt is. Megjelenik mindegyik interfész a host gépen és minden ugyanúgy érvényes rá mint más ethernetes interfészekre.
Röviden összegezve, letölt, kulcsot aktivál, feltelepít és megy. Ennyi. Viszonylag kis erőforrást visz el és a virtuális gépek is barátságos teljesítménnyel szaladnak.
VirtualBox OSE – FreeBSD 7.2
VirtualBox-ot eddig nem használtam, de kellemesen csalódtam. A VmWare után kicsit mazochistább dolog, de kivitelezhető. Biztos ami biztos alapon nem az éles gépen telepítettem fel első körben. A teszt masina egy öreg IBM Netfinity ( 🙂 ) vas. Legnagyobb előnye, hogy van. Ennyit tud üzembiztosan. A VirtualBox lefordítása is meglehetősen sok időt vett igénybe, de screenben futott, így nem érdekelt, hogy mikorra lesz kész.
A bajok ott kezdődtek, hogy viszonylag ritkán frissítgettem a “játszótérnek” használt gépet, és a VB-nek is szükséges csomagok meglehetősen régiek voltak. Egyszer élünk alapon mondtam, hogy frissítse le, majd meglátjuk mi lesz. Hát az lett, hogy a munin, az mc és pár saját applikáció megszűnt működni :). Sebaj Tóbiás, van itt hatalmas számítási teljesítmény, hamar megoldjuk. A következő 2 napban frissített és fordított szegény masina, de a vége az lett, hogy nagyjából minden megy. (megjegyezném, hogy a munin-mastert le kellett állítani, mert míg minden noderól újrarajzolta a grafikonokat, addig rendszeresen eldumpolt a VB) Ez a művelet arra volt jó, hogy legalább nem okozott problémát amikor az éles helyen került telepítésre a VirtualBox. Na meg persze tényleg nem érdemes Virtualizálni kicsi vason. Ennyi.
Az éles telepítés nem volt több fél óránál. És az első virtuális gép el is indult. Kapott egy procit, 512Mb ramot meg egy XP-t (azért Win-t, mert ez volt a feladat, kellett egy kicsi wines alkalmazásnak állandó hálózat meg ilyenek). A sebessége normális, logmein-nel tökéletes.
A VirtualBox közelebb áll a lelkemhez, mint a vmware, mert számomra érthetőbb a parancssoros része mint a vmware-nek. Az “éles” BSD-re már nem is telepítettem semmi grafikus dolgot hozzá, kivéve a vnc-s consolet, amit akkor indítok el, ha valami gáz lenne vele. A hálózati része kicsit más. Nem ad oda rögtön minden interfészt, hanem alapból minden további nélkül natol. Ez kliensekhez szerintem egész jó dolog. Persze itt is van Host-Only, meg Bridged megoldás hasonlóan a vmware-hez. Kényelmes, mert nem kell webes marhaságokkal tökörészni, de tény és való, hogy a VmWare megoldása nagyon elegáns.
Freebsd Jail – Futottak még kategória
A Jail több, mint egy chroot, de kevesebb, mint egy virtuális gép. Lebecsülni nem szabad, mert nagyon jó és teljesítményben biztosan jobb, mintha hasonló funkciót egy komplett virtuális géppel valósítanánk meg. Nagyon sok mindent lehet benne korlátozni. Nekem az egyik gépen úgy van, hogy a host freebsd nem csinál semmit, csak tartja a jaileket és ő a tűzfal. A jailek meg a saját IP-jükkel nyújtják a szolgáltatásokat. Az IP-ket itt aliasként kell felvenni a host hálókártyájára és a jail-ek konfigjában kell ezt beállítani. A jailekből elméletileg nem lehet kilátni és a jailek között nem lehet átlátni. Ez valamilyen kernelvirtualizált megoldás vagy mi, ha már szép szavakkal kell illetni. Sajnos a régebbi BSD-ken nem igazán lehet jól szabályozni a a jailek erőforrásait. Diszket persze olyat lehet alá becsatolni amilyet szeretnénk, de ez manapság édes kevés.
Összegzés
Remélem az általános dolgokon túl tudok majd írni érdekesebb dolgokat is, de egyelőre ennyi. A VmWare Server és a VirtualBox szerintem nagyon jó megoldás arra, hogy “igazi” virtuális gépeket futtassunk. Szerencsére a VirtualBox OSE ingyenes és open, a VmWare-nek van ingyenes verziója is (Server 2 is és ESXi), a jail meg a BSD része. Minden adott, hogy ingyen hozzájuthassunk jó megoldásokhoz. Azt, hogy melyiket használjuk, az az adott feladat függvénye. Ha lesznek egyéb tapasztalatok, lesznek újabb posztok.
Ez a kis okosság egy megadott könyvtár tartalmát (nem rekurzívan) mindig betölti egy sql táblába. A táblát minden frissítés előtt üríti.
#!/bin/sh
myDir='/root'
myDb='dbname'
myTable='linuxdir'
sqlcmd="mysql -uroot -ppass $myDb"
echo "TRUNCATE TABLE $myTable" | $sqlcmd
cd $myDir
for i in *; do
echo "INSERT INTO $myTable (filename) values ('$i')" | $sqlcmd
done
u.i.: thx Dávidnak az ötletekért 🙂
Ubuntunál kicsit zavaró, ha a gyagyás cron jobok telehánnyák a syslogot mindenféle üzenettel és esetleg nem lehet látni tőle valamilyen tényleg hibás dolgot. A syslog konfigjában kell módosítani az alábbiak szerint:
Az eredeti:
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
A módosított:
*.*;cron,auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
Ezekután mindenki boldog. A cron.log rotálását ne felejtsük el bekapcsolni.
Az alábbi móka egy tűzfalak mögött lévő ubuntu-s masináról épít ki egy tunnelt egy távolról is elérhető gépre. Az ubuntu localhostjának 22-es portját a távoli gép 5022-es portjára “forwardolja”, így a távoli gépen ha a localhost 5022-es portra ssh-zok akkor az ubuntu sshd-je válaszol. Ezt lehet még cifrázni, de nekem elég volt annyi, hogy el tudjam érni a gépet. Az rc.local azért kellett, hogy a gép esetleges újraindítása után is automatikusan felépüljön a kapcsolat. A távoli gépen kulccsal authentikál, így ez tényleg magától megy.
root@xxx.host:~# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/usr/bin/autossh -p14243 -M 5122 -N -R 5022:localhost:22 autossh_user@a.masik.host &
exit 0
root@xxx.host:~#
-p a távoli sshd portja, -M monitor port, a -N azt csinálja, hogy ne csináljon semmit. Nincs shell vagy ilyesmi.
Ha szeretnénk akkor a -R port:host:port többször is megismételhető, így egy paranccsal több portot is áthúzhatunk.
Apróság, de hasznos lehet:
root@xxx.host:~# sudo -i -u petike whoami
petike
root@xxx.host:~# whoami
root
root@xxx.host:~#
Az upgrade után a mysql szerver nem volt hajlandó elindulni. Telehányta a logot az alábbi hibával:
kernel: [ 1258.446907] type=1502 audit(1258315574.799:372): operation="open" pid=6330 parent=6329 profile="/usr/sbin/mysqld" requested_mask="r::" denied_mask="r::" fsuid=0 ouid=0 name="/sys/devices/system/cpu/"
A megoldás viszonylag egyszerű volt, google-n kukáztam. Nem tudom az okokat, de ha kiveszem a következő sort a my.cnf-ből akkor minden OK.
skip-bdb
Egyszerűen kommenteztem és elindult.
Ami még kellemetlenül érintet, hogy valamilyen oknál fogva a szálak stack mérete is kevésnek bizonyult, így azt megnöveltem. (A tárolt eljárások nem futottak le…)
thread_stack = 1024K
A csicsás beállító programban mindent megtaláltam, kivéve azt, hogy PAL legyen a TV-out. (lehet, hogy valami újabb verzióban már benne van).
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "1"
Option "TVStandard" "PAL-B"
Option "metamodes" "CRT: nvidia-auto-select +0+0, TV: 1024x768 +1024+0"
SubSection "Display"
Depth 24
EndSubSection
Így már minden OK.