How can I set up the virtual server environment I want, using as much open source and as little proprietary software as possible?
I'm the technician / sysadmin at a primary school, which will be updating its on-campus server boxes early next year.
Both our existing boxes run Windows Server 2003. Admin1.admin.local runs SQL Server Express and the school administrative database and serves files to four admin workstations; curricserver.curric.local is pretty much a pure file server for 70 classroom workstations, making extensive use of NTFS permissions to manage access control. All workstations run Windows XP.
Admin1 is the PDC for admin.local (10.145.172.0/23), and curricserver is the PDC for curric.local (10.129.172.0/23). An upstream-managed router connects both subnets to the Internet, and also allows admin.local hosts to send UDP datagrams and establish TCP connections to curric.local, though not the other way around. No broadcast traffic transits the router. The router's link to the admin.local subnet is ten mbits/s, which is fine for internet but sucks for cross-subnet file serving.
Admin1 and curricserver each have a UPS. I use external USB drives for backup. I am pretty happy with the way each of the servers is currently set up.
Next year, we'll also be replacing our existing MS Access-based student reports package with a new web-based one from the same company. I have no reason to believe that this will go well. The company recommends hosting this thing on a dedicated box, which will basically be running SQL Server Express and IIS and not much else. I have no wish to install IIS on either admin1 or curricserver, so I'm happy to agree with them.
Now, rather than buy three new boxes and a new UPS and another set of backup drives next year, I'd rather buy two
new boxes with i7's and loads of RAM, run a Linux on them with something like Heartbeat
in it, and create the three W2k3 servers I need virtually.
It seems to me that doing this would allow me to (a) keep using the same
virtual servers year after year after year, while updating the underlying Heartbeat cluster as often as necessary to suit the school's hardware management policy (b) avoid single points of failure for all servers (c) centralize my backup task (d) use solid Unix system administration tools for disk snapshot and backup management instead of whatever some random commercial vendor claims to have invented this
year (e) save the school some money (f) easily bypass the upstream-managed router's connection between our two subnets, allowing me to set up the same safe one-way routing policy at gigabit speeds.
1. Is this idea Wrong in any important respect? I haven't had much hands-on VM experience, but I have enough Windows expertise to migrate our existing server setups to other hardware (even virtual hardware), probably without needing to do a Windows reinstall, a long enough beard and enough open source happy drink to see the project through, and the intention to document it thoroughly enough to stop it turning all white-elephant for the next guy.
2. Will Heartbeat in fact let me set up three VM's that will normally run on Tweedledum but reboot themselves automagically on Tweedledee if Tweedledum dies?
3. Which VM environments will let me put a Windows VM in charge of a physical network adapter, so I can serve files from a Windows VM over gigabit Ethernet without undue performance penalty?
4. Am I correct in assuming that I want N+2 physical network adapters in each physical box (one for each of N virtual machines to connect to an appropriate network switch, plus one to do a point-to-point link for DRBD
, plus one to talk to the host OS via an appropriate network switch? Or, since the virtual replacement for admin1 is only going to be talking to four workstations, do I actually need a dedicated physical network adapter for that VM?
5. Is there any good technical reason for my visceral unwillingness to install IIS on anything except its own dedicated (physical or virtual) box?
6. What's the obvious question I've completely forgotten to ask?