As was asked before, what do you intend to do with multiple OSes? I'd say that in 9 times out of 10 for a normal user, the best idea would be to just partition the hard drive and that's it. But I'll try to go through the options listed
HDD Partitioning - as I said, 9 times out of 10, the best idea. It's just the simplest, most inexpensive thing you can do, with very little drawbacks and is usually a robust choice.
So the benefits:
- easy
- cheap
- fast to set up.
The drawbacks:...very little.
- Namely, you technically get less performance for the second OS, as you most probably have the first in the beginning of the HDD, thus it takes less time accessing files from the inner most section of the disk, while the second would be further to the side, thus accessing files would be slower. With that said, I doubt it would be a noticeable slowdown or anything, especially since we're talking two different OSes. At most, you might notice some very, very slight delay if you have two EXACT same OSes (including software, running services and everything) installed on two different partitions and if you do notice it, it'd be only by comparing the performance of the two. I wouldn't really take the delay into consideration, though. If you REALLY mind (or just have some extra cash to spare either way), you can just get an SSD and install any OS there.
- If the drive dies, you're fucked. Sort of. But that's the case with anything, though. It's still easily fixable by RAIDing the disk and/or taking backups.
Multiple HDDs/SSDs - probably the next best option. It's pretty much partitioning but better, only it costs more money. Then again, space is generally cheap.
The benefits:
- Decreased performance by having an OS installed not in the beginning of the HDD is remedied by installing one per HDD. Well, that and you can distribute the swap/pagefile on multiple drives, which should actually get you some more performance...assuming you tend to need some swapping done - I, myself, have found that if I just have more RAM, I won't really need that much swapping, so I'd rather overprovide the RAM slightly. It's futureproofing, anyway.
- Alternatively, having an SSD per OS...though I find that a bit wasteful, unless you just can't fit everything you need an SSD for on 1. But generally speaking 1 SSD should be able to handle 2, maybe more, operating systems.
- If a disk dies, you still have the other one. And the odds of the two dying at once is rather slim. But if you ARE worried about this scenario, I'd imagine you want to RAID/backup the disks anyway, so it's not unlike the partitioning option above, only costs more.
The drawbacks:
- costs more. Really, that's it. As I said, it's pretty much multiple partitions but better.
Hardware/Software Virtualization - this is actually heavy weight here. It's extremely dependant on what you want to do with more OSes, so it's not going to be my first, or even second or third, choice for recommendation.
The benefits:
- Big fault tolerance - the system, when properly set up, should never go down easily - even if it does, you can restore it from a known good state in minutes. This also means, you can feel safer when you decide to tinker with stuff.
- It's easy to scale up or down, since you just let an OS use more or less resources.
- It's "portable"...to a point. What I mean is, migration is easy - you can move any OS through any number of machines and it will work, so your hardware dies - no worries; you get newer shinier hardware - no worries; etc.
- you can run them side by side - if we're talking a VM, you can easily run an OS inside another OS in VMWare Player, VirtualBox or whatever.
The drawbacks:
- It's SLOW. Seriously, you will never get 100% out of your hardware - since whatever you will use would have to translate calls back and forth. So you'll generally have to overprovide the machine a lot to get good speed for the virtual OS. The easiest option is to have a hypervisor installed that manages your OSes, thus you'll probably get the most out of the hardware, but still. Alternatively, you can go to a cloud provider and rent some machines (IaaS) but I sort of doubt that's exactly falling under this point. At any rate it leads me to the next point
- it's EXPENSIVE. You need to overprovide the hardware and RAID/backups are pretty much mandatory at this point, rather than recommended. If you do go with a cloud solution, you'll be paying money on a regular basis.
- it's tricky to set up, it's not a straight "install the OS. Done" as before, you really need to both set it up so it works, and make it work in the future. Yeah, migration might be easy, but you actually do have worries - you have to get the image of the OS working again on the new platform.
- it's an overkill. For a normal user, that's a lot of effort for just having more than one OS.
I want to note, that pretty much all of this is assuming you want to virtualise the OSes and have them running with similar performance. You might not need that, it might be the case that a VM would be more than enough for your needs - for example, I've got a friend who is into Linux but doesn't have it installed on his hard drive, just in a VM. He really just doesn't need as much hardware resources when using it (mostly for programming), so it's easier to just have it in VMWare Player and save himself the reboot when he wants to use it.
Other
I can think of two options here that partially overlap with each other and virtualisation. I'll go over them briefly
1. Cloud. It's the IaaS option I mentioned above - it's actually not a bad choice, depending on what you want to do - it might be the case that renting would be cheaper than building a machine yourself and maintaining it.
2. Build yourself a big server that can run virtual OSes, and use slim clients to use them. It's A LOT OF MONEY to do. Otherwise it's pretty much like the cloud option, only you are in charge of everything (but you don't pay rent). Still, it gives you a lot of flexibility and you don't need Internet connection. But you'll be able to have (theoretically) as many OSes as you want and as many "PCs" as you want where the numbers of each can be any. It's also a big work to have that working, though.
3. (secret option) - have more than one physical PC each with a different OS. It's the lame option but it's an option.
I myself would do the following, depending on how much money I have:
0. Use a VM. It's option zero, since I'd do it if I want to mess around with an OS or something, without really needing any extra hardware or anything.
1. Partition the hard drive and that's it.
2. Buy a second HDD or an SSD (depending on what is easier to do within my budget) and either have one OS per HDD or put them all on the SSD.
3. Go with option 2 of the Other section above. It's my dream project but also I feel it'd be very satisfying to have it done.