Hoewel er gebabbeld word over on-topic dingen en Het Grote X topics is het toch wel verstandig om voor de mensen die storage willen virtualiseren te weten dat dat op veel (gratis) manieren kan, als je de juiste hardware maar koopt. Hierboven staat iets onduidelijks over Vt-x/Vt-d; wat verschillende technieken zijn.
Ook lijkt het niet duidelijk te zijn wat Xen/XenServer is/doet.. Daar worden mensen niet mee geholpen
Dus, stel dat je RAID en ZFS samen wil doen en daar leuke safe storage mee wil bouwen, maar niet puur BSD wil draaien, dan moet je dus Linux en BSD of Windows en BSD combineren. Nu is windows dan niet zo'n beste keuze door de bekende beperkingen, dus blijf je met Linux en BSD over.
Nu kan je BSD kernels en Linux/Gnu userland combineren, zoals Debian/kfreebsd toont, een zeer volwassen distro (Debian) die een versie aanbiedt met de FreeBSD kernel (en dus ook ZFS). Gnu/Hurd komt er ook aan, wat mogelijk ook ZFS gaat doen, maar dat is toekomst.
Stel dat je een Debian/kfreebsd oplossing niet ziet zitten, moet je gaan virtualiseren. En om dat je performance wil ga je natuurlijk niet alles zitten emuleren, dus wil je echte virtualisatie. Dan kom je bij intel's VT-d uit, wat directed-io geeft. Dan kan je met Xen of KVM echte hardware aan Guests geven.
Nu is dat nog problematisch met USB, maar stel dat je dat links laat liggen (wat je waarschijnlijk als performance zoekende tweaker doet) kom je snel bij volledige controllers terecht. Dus als je dan een ding van Highpoint of een Areca in je kast hebt hangen, kan je als je Xen en Linux gebruikt, bij het opstarten je kernel het appraat aan pciback laten 'geven'. Dat betekent dat een 'driver' met de naam 'pciback' het appraat overneemt van de 'echte' driver. Op dat moment kan je host het appraat niet meer benaderen.
Daarna start je je VM (DomU) en configureer je die zo dat het appraat dat pciback zojuist gekaapt heeft aan die DomU gegeven wordt. Daar zal dan een systeem dat pcifront heet, of xenpci, een 'device' maken wat door de 'echte' driver opgepakt wordt en gewoon gebruikt wordt als ware het fysiek op die DomU aangesloten (wat in de praktijk ook zo is - hoewel het een virtuele machine betreft). Daar kan je dan met zpools spelen en raid en allemaal andere dingen. Doet er niet toe.
Om dat allemaal mogelijk te maken, moet je een moederbord met VT-x EN VT-d hebben, en de firmware moet dat ook beide ondersteunen. Dan is er je CPU, die dat ook beide aan boord moet hebben. Nu is het vrij lastig om VT-d zonder VT-x te krijgen, maar VT-x zonder VT-d is vrij makkelijk te krijgen. Daar heb je dus nik s aan, want dan kan je je hardware niet doorspelen aan DomU's.
Op het moment zijn combinaties zoals een DQ45CB en een X3230 of X3220 dan niet heel duur en toch zeer goed qua prestaties. Dat is slechts een voorbeeld. Zoals je op ark.intel.com dan kan zien hebben beide onderdelen (CPU en bord) een VT-x en VT-d ondersteuning. Bovendien kan Xen hier prima mee overweg.
Virtualbox, Qemu en Vmware kunnen dit allemaal niet. Die rommelen wat aan, kloten hier en daar een beetje met leuke GUI's en teksten, en that's is. Slechte performance en slechte ondersteuning (in verhouding tot Xen). Om het even grofweg zo te zeggen.
Een voorbeeld setup voor RAID + ZFS is dan bijv. (als je RAID + ZFS wil natuurlijk; ZFS zonder raid kan ook op een snelle SATA controller heel leuk zijn):
DQ45CB + X3230 + 8GB RAM @ Debian Linux 6 (squeeze) met xen4.
Daar draai je dan een FreeBSD domU op.
Dan heb je daarna 2 opties:
1. RAID in Dom0/Debian en de md of raid device als xvdb (xen virtual block device) aan domU geven
2. RAID Controller [PCIe] hardware aan domU geven, en alles in FreeBSD afhandelen
Optie 1 zal waarschijnlijk in een VT-x only situatie zelfs goed werken.
Dan krijg je in FreeBSD hoe dan ook je storage device. RAID Controller of xvdb device, allebei leuk. Allebei snel (op VT-d), en daar kan je dan ZFS een flinke pool data mee laten draaien.
Nu zit je alleen nog met het 'en hoe benader ik nu mijn data snel'-probleem. Vrij simpel, 1GbE of 10GbE PCIe kaartje er in prikken, met VT-d & Xen aan DomU toewijzen, en BAM, dedicated netwerk op full speed.
Dan heb je:
- Linux drivers/stabiliteit/support
- Xen veiligheid & virtualisatie + performance
- FreeBSD storage capabilities & ZFS
Lijkt me een zeer krachtige situatie. Bovendien kan je dat allemaal lekker headless/GPU-less draaien, kan je bij bijvoorbeeld die DQ45CB met de recendere EFI firmwares gewoon je RAID controller in de PCIe slot die voor de GPU bedoeld was steken, en is het allemaal met webGUI's en SSH te beheren. Bovendien kan je gebruik maken van Intel AMT, daarmee heb je een Serial-over-LAN en IPMI/LOM-opties (Dus je kan dan zelfs je BIOS, GRUB, Linux login via Ethernet/Serial benaderen vanaf bijv. Internet, en via HTTPS kan je je server aan zetten, uit zetten, resetten, events bekijken met standard management van intel - helemaal gratis! - je hebt gewoon bijna een IPKVM en Remote power voor nop! Dat is nog eens full remote management).
Daar naast heb je een ander voordeel. Je kan meerdere DomU's/VM's met verschillende functies op die ene server draaien. Ik heb door heel nederland diverse setups draaien met FreeBSD als storage server, Linux als virtualisation server, Windows 2008R2 als Domain server, en nog een Debian Linux server als webserver/appserver, plus een pFsense server als router&firewall. Goedkope oplossing, veel toepassingen. Wel een single point of failure zou je zeggen, maar al die VM's kan je probleemloos naar een ander systeem kopieren dat ook VT-d heeft en een intel chipset, en je draait meteen weer. Dus stel dat je je backups goed bijhoudt, kan je binnen een paar minuten online zijn als bijv. je server in de fik staat. Of als je twee servers hebt en een even offline moet, dan migreer je gewoon je VM.