How should I impliment virtualization for my home server?

idea

Gawd
Joined
Jan 24, 2005
Messages
615
This is what I have:
Q6600, 4GB RAM, 2x80GB RAID1 and 4x750GB RAID5 (mdadm softraid) running ubuntu-server
Services include WWW for 5 vhosts, FTP, OpenVPN, SMB/AFP fileserving, squid, and more misc services

Stability and flexibility are my top priorities. With me being the only user, performance is not an issue, which explains why I choose to use software RAID.

I would like to try virtualization in order to:
  • Separate some services to run on different virtual machines.
  • Learn about networking machines together in a virtual datacenter
  • Learn about virtualization
  • Install different OS's for testing and learning

Things that are bugging me:
  • I really like having the RAID5 as a central data store right now. How would I configure all the virtual OS's to share the array? Maybe it will run it's own FreeNAS and share it via NFS ?
  • Should I use ESXi, or VMWare on top of an OS? ESXi currently has my vote for the bare-metal factor.
  • If I use ESXi, I would have to configure the RAID using the mobo's ICH10R chipset which is too bad, cause I really enjoy using mdadm running in linux.
  • Should I just build two boxes, one for virtual machines and one for FreeNAS? Ugh.. more hardware costs, more power, more heat...
  • I know I'll have to spend extra money to upgrade hardware. At least a quad core and 8GB RAM. That sucks.
  • Do I really need this project in my life? I have no free time as it is :(
 
This is what I have:
Q6600, 4GB RAM, 2x80GB RAID1 and 4x750GB RAID5 (mdadm softraid) running ubuntu-server
Services include WWW for 5 vhosts, FTP, OpenVPN, SMB/AFP fileserving, squid, and more misc services
Virtual machines like RAM. Fortunately RAM is cheap. Buy another 4 gig if it becomes a problem.

Stability and flexibility are my top priorities. With me being the only user, performance is not an issue, which explains why I choose to use software RAID.
Stability will not be improved - in your usage scenario - as you're basically spliting a lightly loaded "server" into five "virtual machines" running on a potentially unstable VM implementation - IOW you're more, not less, likely to see the server go down.

I would like to try virtualization in order to:
Separate some services to run on different virtual machines.
If you do this remember to give each server a static IP address and think of them (from a networks point of view) as five separate machines.
Learn about networking machines together in a virtual datacenter
Most VMs support several network interfaces and you can network virtual machines together on a private network. You can for instance use one VM machines as a firewall to a private VM network. Neat, but there's not a whole lot to learn here that isn't covered better in a book about networking topologies. :)
Learn about virtualization
Then try all VMs, not just one, and learn about their different approaches. There's qemu, virtual box, JVM, and many others. Topics such as "Hypervisor", "emulation", "recompilation", "byte code" may be of interest.
Install different OS's for testing and learning
Assuming you want to learn about the innards about operation systems there's packages such as Minix and Menuet.

I really like having the RAID5 as a central data store right now. How would I configure all the virtual OS's to share the array? Maybe it will run it's own FreeNAS and share it via NFS ?
Virtual Machines generally work from a Virtual image. Simply insure that the images are on the array.
Should I use ESXi, or VMWare on top of an OS? ESXi currently has my vote for the bare-metal factor.
Why not use linux + virtual box? It's free and if you later find yourself needing VMWare then nothing is lost. BTW, I believe ESXi is for embedded use. Not the best start for simply learning.
If I use ESXi, I would have to configure the RAID using the mobo's ICH10R chipset which is too bad, cause I really enjoy using mdadm running in linux.
ESXi is linux, so mdadm (I don't know what that is) will in all likelihood run fine.
Should I just build two boxes, one for virtual machines and one for FreeNAS? Ugh.. more hardware costs, more power, more heat...
Eum, for a lightly loaded server… no.
I know I'll have to spend extra money to upgrade hardware. At least a quad core and 8GB RAM. That sucks.
A Q6600 is a quad core. More memory helps, but isn't critical. Try first.
Do I really need this project in my life? I have no free time as it is :(
Give it a whirl
 
ESX is not linux
ESX is not linux
ESX is not linux
ESX is not linux
ESX is not linux

ESXi is SO not linux. ESX classic has a RHEL COS which is a virtual machine, and ESXi has a GNU shell interpreter, but that's it. They are not linux. Linux utilities will not work, especially hardware drivers.
 
ESX is not linux
ESXi is SO not linux. ESX classic has a RHEL COS which is a virtual machine, and ESXi has a GNU shell interpreter, but that's it. They are not linux. Linux utilities will not work, especially hardware drivers.
I see. According to Wikipedia it's only used for booting, then bound up in a virtual machine? Oki.
 
I see. According to Wikipedia it's only used for booting, then bound up in a virtual machine? Oki.

Close :) We use a Linux initrd to bootstrap the vmkernel for ESX classic. At a certain point you'll see the vmkernel load, then the rest of the init from there is actually world 0- the console VM.

ESXi uses a custom initrd to boostrap the vmkernel, then they have a funkified shell environment for emergencies :) It's strange, but definitely not linux. We use a special hardware abstraction layer for physical devices in the COS VM so it ~looks~ like linux with actual hardware, but it's not quite really there. :)
 
Close :) We use a Linux initrd to bootstrap the vmkernel for ESX classic. At a certain point you'll see the vmkernel load, then the rest of the init from there is actually world 0- the console VM.

ESXi uses a custom initrd to boostrap the vmkernel, then they have a funkified shell environment for emergencies :) It's strange, but definitely not linux. We use a special hardware abstraction layer for physical devices in the COS VM so it ~looks~ like linux with actual hardware, but it's not quite really there. :)
Ahh, so you're using initrd from Linux. The Linux kernel itself a no show. Got it :)
 
ESXi would far and away be my first choice, but you may find it impossible, or unreasonably difficult, to get ESXi running on your machine.

ESXi is designed to install on a limited set of compatible hardware, mainly a subset of servers from Dell, HP, and IBM plus some weird enterprise stuff. It probes the hardware during install and if it doesn't find what it expects, it refuses to install. People have had some success buying Intel e1000-chipset based ethernet cards, since that seems to be the major stumbling block.

Windows Hyper-V server (the free bare-metal version) will however install on any CPU with hardware virtualization extensions, which includes your Q6600. Unfortunately, administering Hyper-V server is a ROYAL PAIN IN THE ASS compared to ESXi. I gave up sometime during the second day of developing a Hyper-V hosted duplicate of our 3-box ESXi test environment.

Personally I'd just go with VMWare Server 2. But you could try out Virtual Box, or even Xen.
 
Back
Top