Virtualization

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Post Reply

Virtualization?

It's the way to go!
7
54%
It's great, but not in this situation.
0
No votes
Either is fine.
3
23%
Real hardware is probably better for this.
3
23%
Virtualization is a bad idea for this.
0
No votes
Other - explain in post.
0
No votes
 
Total votes: 13

User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Virtualization

Post by 01000101 »

With the investments into DiNS, I have been seeking out technology that will aid in the development and QA of my OS. My origional idea was to buy 4-8 test machines (real pc's) and use those as network nodes, but then I got to thinking about price, size, and power consumption which was a major turn-off. Then I thought about virtualization. Instead of buying 8 computers for network testing, why not virtualize 10 computers from within one very powerful computer. This would allow me to spend less, save space, lessen heat production, reduce power consumption, and centralize everything. All I would be doing with those pc's would be to produce network traffic and to monitor it while running various p2p, bittorrent, firewall, IDS, AV/AS/AM, content/web filter,etc applications to examine their interactions with my OS.

Should I go virtual, or stay with real hardware?

btw, the virtualization machine is a dual quad-core (2.0ghz) Intel Xeon machine with 8 gigs ECC/Buf mem.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Virtualization

Post by Solar »

Getting a hardware park simply for the sake of testing network interaction is a waste of money, room space, and power. There are some things you cannot test for with a "pure virtual" testbed (like how your network stack handles faulty connections), but it's an excellent start, and for the rest it should suffice to commandeer one old system from the next garage sale and press it into service. No need to invest any significant money.
Every good solution is obvious once you've found it.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Re: Virtualization

Post by AJ »

A vote for "it's the way to go".

I do most of my testing on virtual machines (not emulators) and it has been very rare that running on a real machine has yeilded different results. I do this because I am mainly working on a machine which isn't mine and I can't afford to mess up.

Obviously for a production system you will eventually want to run on a tame network too (would it be too "tacky" to offer a reduced rate and babysit DiNS on the first ever purchaser's network - or even donate a first copy to a (small scale) prospective purchaser?). For the purposes of your question, I think virtualisation is the way to go - you also get a very powerful computer you can use for other things when not testing :D

Cheers,
Adam
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Virtualization

Post by Brendan »

Hi,
01000101 wrote:Instead of buying 8 computers for network testing, why not virtualize 10 computers from within one very powerful computer. This would allow me to spend less, save space, lessen heat production, reduce power consumption, and centralize everything.
IMHO heat production and power consumption aren't an issue - I've got 15 computers setup here, but it's very rare for me to turn more than 4 of them on at a time (including my development machine/server). Maybe one day I'll find a reason to have all of them going at once, but even then I doubt they'd all be running at the same time for more than an hour per week.

Many virtual machines would be good for testing if your OS can talk to other OSs using a variety of protocols (http, ftp, ntp, NNTP, pop3, etc), but for this you only really need 2 virtual machines at a time (one for your OS and another for a different OS).

For testing how your OS handles networking problems, virtual machines running on the same real computer wouldn't use any real network hardware (e.g. copy the network packet into a buffer in RAM then tell the other virtual machine it received it - extremely high bandwidth, extremely low latency, and no chance of packet collisions, etc), which means you'll get dodgy results or no results. You might be able to avoid this though if the virtual machines support using real hardware by having a computer with enough real network cards, but I'd check if your virtual machine software support this first, and then find out how many spare PCI slots you can get...
01000101 wrote:All I would be doing with those pc's would be to produce network traffic and to monitor it while running various p2p, bittorrent, firewall, IDS, AV/AS/AM, content/web filter,etc applications to examine their interactions with my OS.
All you would be doing with those pc's *now* would be to produce network traffic and monitor it, but if you only care about "now" then lease something for a month or so instead of buying anything. What about tomorrow?

For testing a general purpose OS well, IMHO you need as many different computers (and virtual computers) as possible. If you test on 10 almost identical virtual machines you won't find a lot of problems, and your end-users (who won't be using the same hardware) will find those problems instead.

Lastly there's cost. One new powerful computer could cost $4000 or more (especially if you're looking for something with two or four quad-core CPUs and 8 GiB or more RAM to run many virtual machines well), but for the same price you could probably get twenty different older computers second hand for $200 each.

Basically I'd recommend a mixture - a "medium" machine that can be used directly or used to run a few virtual machines, plus about 4 older computers, plus some networking and a good KVM; with some of the cash left over for future purchases (in case manufacturers produce something interesting - I'm currently looking for cheap computers with VIA's new Isaiah CPU and/or Intel's new Atom CPU).

Note: for an example of the "medium" machine, my last second hand computer would do 4 virtual machines (with about 800 MB of RAM per virtual machine) without much trouble: two dual core Opterons (4 CPUs total), 4 GiB of RAM, onboard ATI video, a SATA hard disk (not sure how big, but plenty large enough), 2 ethernet cards (one onboard), etc. It only cost me about $600 (aust) at the time.

So, as an example:
  • $600 - "medium" machine (either 4 virtual machines or "test machine 1")
    $300 - test machine 2
    $250 - test machine 3
    $250 - test machine 4
    $1000 - networking (cables, cards, switch) and KVM
    $2400 Total
That works out to about the same price as one good desktop machine purchased new... [note: I'm using Australia dollars here]

Of course I don't know much about your OS, your intentions or your budget...


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Re: Virtualization

Post by 01000101 »

The virtualization server was priced out at $1800 (dual quad-core, 8gig mem, 1 tb hdd), I also have 4 home computers (1 laptop, 2 gaming machines, 1 old machine) that I can use as real hardware. My main concern is not compatibilities between various hardware, as network cards only have a handful of *major* variations as far as speed/packet size goes, but the main issues are interoperability with various softwares and network hardware (switches, routers, etc...). Most of my funding is being spent on test network devices. I remember a while back when I changed switches from an older 24-port 10/100 switch to a newer cisco catalyst 10/100 and found out that my OS was recieving errors through it, that's what im mostly concerned about.

Do any of you recommend any particular virtualization software (for *nix). I planned on using BOCHS and VirtualBox (doesn't seem to like 64-bit thought). I looked at Xen, but it doesn't seem to be what I'm looking for.
User avatar
naiksidd_85
Member
Member
Posts: 76
Joined: Thu Jan 17, 2008 1:15 am

Re: Virtualization

Post by naiksidd_85 »

hi 01000101
i am not endorsing any product but i used to work in VMWare team. and have worked on products like ESX and work station,
I think they are real cool products.
if you want to cut the cost virtualization is the word. also ESX provides you all the networking options without loosing the physical machine touch
Learning a lot these days THANKS to OSdev users
xyzzy
Member
Member
Posts: 391
Joined: Wed Jul 25, 2007 8:45 am
Libera.chat IRC: aejsmith
Location: London, UK
Contact:

Re: Virtualization

Post by xyzzy »

One thing to look into if you don't want to shell out on ESX is ESXi. It's a cut down version of ESX that VMware recently made freely available. I've not tried it yet although it looks interesting.
Post Reply