(Ma már nem ez a hivatalos írásmód, én valami perverzióból mégis BHyve-nak írom.)
Ha már egyszer van egy AMD C-60-as procival szerelt netbookom, gondoltam kipróbálom a BHyve-ot. (A NAS-on kívül ez az egyetlen olyan gépem, amelyik alkalmas a futtatására.) Ráadásul a 10.2-s FreeBSD-ben végre hivatalosan is támogatott az AMD-féle AMD-V, így összesen annyi dolgom volt, hogy 10.1-ről felfrissítsem (jelenleg még 10.2-BETA2-n fut, de valószínűleg a nap végére megkapja az RC1-et is).
Azt kezdetnek el lehet mondani, hogy ha az ember nem használ semmi előtét programot, akkor a BHyve használata iszonyat macerás, ezer paramétert kell állítani, ráadásul kell egy loader amivel elindítjuk a VM-et, aztán valami másik amivel futtatjuk azt, és végül egy harmadik, amivel leállítjuk. Van ugyan egy vmrun.sh nevű script a rendszerben a példák között, de abban például a nem-FreeBSD-s VM-ek futtatása nincs támogatva. (FreeBSD-hez a gyárilag rendelkezésre álló bhyveload kell az 1. ponthoz, minden más OS-hez egy grub2-bhyve nevű csomagot kell telepíteni, de ezt a loadert egyelőre nem kezeli a script - mondjuk nem lenne kifejezetten bonyolult belehekkelni.) Én meg pont nem FreeBSD-t akartam benne megnézni, hanem mást. Megjegyzendő, hogy a Handbook kifejezetten részletesen és szájbarágósan leírja ezeket a lépéseket.
Ha jól vettem ki a dolgokat a doksikból, jelenleg 64-bites OS-ekkel lehet értelmesen kisérletezni, így én egy Ubuntu szerver LTS-t és egy CentOS7-t választottam magamnak. Nehezítő tényező, hogy jelenleg a BHyve semmiféle grafikus kártya emulációjára/szimulációjára/virtualizációjára nem képes (sőt ha jól olvastam a közeljövőben nem is várható), a VM-ben - ha megfelelően paramétereztük fel -, a klasszikus COM1/COM2 érhető el, azaz csak soros konzollal működő OS-ek jöhetnek szóba. Mondjuk ez azt is jelzi, hogy szerver virtualizációra van igazából kihegyezve. Hálózatként a host oldaláról egy tun interfészt javasolt használni, amit aztán pl. a host valós interfészével összebridzselve lehet működő hálózatot csiholni.
No a lényeg, megcsináltam a VM diszkjéhez egy 8 GB-os img-t, eldöntöttm, hogy a 4 GB memóriából 1 legyen elég a VM-nek, és elindítottam az Ubuntu telepítőjét. Egész tűrhetően működött, a leírást követve minden szépen ment egészen odáig, míg a mgpartícionált diszkre az általam kiválasztott LVM-struktúra megépítése után el nem kezdett FS-t csinálni - ebbe egy gyönyörű linuxos hibával belehalt - több oldalnyi stack-dump. Újra és újra kipróbálva (más-és más telepítési lehetőségeket kipróbálva - úgy is mint OEM install, nem OEM install), stabilan és megbízhatóan ugyanott szállt szét. Ubuntut félretettem, jött a CentOS. Annak a bootja egy hangyányival macerásabb (nekem kell a grub-ból kiválasztanom a kernel és initrd imidzseket), a telepítés elindul, a diszket ugyanúgy LVM-esítve, a szükséges (nyilván minimalista) csomagkészletet kiválasztva, a rendszer szépen feltelepül. Ugyan nyekereg útközben, hogy a hálózat szerinte off-ban van, de ennek ellenére amikor a kész rendszert indítottam, szépen működött. Kapott DHCP-n címet, és annyira ment, hogy az első körben megejtett yum update - ami pedig lehúzott egy vagon frissítést -, minden további nélkül lefutott.
Miután volt sikerélmény, újra nekiugrottam az Ubuntunak - pont ugyanazzal az eredménnyel. OK, ugorjunk, letöltöttem egy Debian 8.1-es telepítőt, ahhoz is elkészítettem az "infrastruktúrát" és hajrá. És mondhat akárki akármit, az Ubuntu csak egy felpimpelt Debian - pont ugyanott, pont ugyanúgy halt meg. Ezt akkor egyelőre félreteszem, elképzelhető, hogy valami Slackware-t még kipróbálok, esetleg LVM nélküli módban az Ubuntut. Az a legfurcsább, hogy találtam egy eléggé durva cucost a nete, amiben pont ugyanígy FreeBSD, meg BHyve és Ubuntu LTS játszik, a leglényegesebb különbség, hogy ő ZFS fölötti ZVOL-t használ VM-diszknek, nem pedig fájl.img-t. A cikk egyébként a HardenedBSD-s Shawn Webb leírása arról, hogy egy, a FreeBSD által nem támogatott Wifit hogyan használ: mivel Linuxhoz van driver, ezért FreeBSD alatt van egy BHyve VM-ben egy Ubuntu, az megkapja az egész kártyát szőröstül-bőröstül (hogy ezt hogy kell, én doksiban még nem láttam máshol leírva, csak hivatkoznak a lehetőségre), és a VM-ben NAT-ol egyet a FreeBSD-nek - így máris lehet a host-ról is Wifizni. Perverz.
Még egy apróság. A kezdetben a netbookot kábeleztem. Aztán megunván a kényelmetlen drótkígyót, áttértem Wifire - ez meg azért volt kényelmetlen, mert a bridge konfigot is módosítani kellett - ezért aztán gondoltam egy merészet, és az ezer éve leírt módon a wifit és az ethernetet összekapcsoltam egy lagg interfésszé, és még egyszer utoljára módosítottam a konfigon. És az már látszik, hogy valahol valami nem kerek, mert az a tény, hogy az eth+wlan -> lagg interfészt egy bridge-be fogom a tun-nal, egyelőre nem végigtesztelt módon ugyan, de néha azt eredményezte, hogy beállt a hálózat, és bit se ki, se be. Majd még próbálkozom vele, hátha csak az interfészek felkonfigurálási sorrendje kavar, de mivel ha leáll a BHyve-os VM, akkor megjavul, lehetnek itt rejtettebb hibák.
(Egyszer ki akarok benne próbálni valamilyen Windows-t is, bár erre vonatkozó kérdésemre azóta se kaptam választ a lusta haveromtól, hogy vajon van-e olyan win szerver verzió, amelyik tényleg el tud működni soros konzollal, és mi az és honnan lehet pl. teszthez legálisan hozzájutni, mert venni aztán nem fogok, de ehhez lopni kissé gáz.)