I was hoping someone could give me a break down on server virtualisation, in correspondance to what I am currently running/planning on running.
I understand that one of the main reasons for server virtualisation is to save money on physical hardware, reduces space, can act as a redundancy and you can run multiple operating systems (although from what I understand this is more relating to desktops).
I am currently running a Linux box, which I have stuck anything and everything onto, it acts as a web server, it acts as a file server, at one point I even had it running as a DNS server (don't begin to question my security....).
OS level virtualisation is something which I have looked at, but what makes this different to what I am currently doing? Would it not be the same as setting up four or five user accounts and allocating specific resource quotas?
I'm really confused, if anyone could just give me some information on this I would be appreciative.
With regard to installing services on the same OS instance, yes this makes sense if the services are complimentary. Let me give you an example in the Windows world... Its generally not a good idea to set up a server, install Domain Services, SQL, Exchange, and make it also a Print server. The management of the box would be challanging. Keeping the box up and running is difficult enough just by running Windows. This configuration just adds additional complexity.
By running multiple VMs, we can split the work-loads, risk, management, etc... between different instances. However, all of these instances are still dependent on having the host machine up and running.
(although from what I understand this is more relating to desktops).
Not necessarily... Virtualization is big in the Enterpise. This is a good way to keep costs down. Prior to virtualization... in large IT shops, everyone would be installing dedicated servers to run their applications in stand-alone configurations, espcially if you had different groups responsible for each app, or each server. This gets quite expensive if you have $10,000 servers and the server is running at 5% or less CPU. A small data center can hold thousands of servers. With virtualization and server blade hardware, you can have one rack that supports 1000 servers if you really wanted to.
A cost effective option is to stand up a robust, highly available VMWare infrasructure and create VMs for each server. You can limit/share the host servers' resources accross all of your guest VMs. So a pair of severs can now host 20, 30, or more guest VMs depending on how much CPU, memory and storage you attach to the hosts.
You see a high level of return when you have alot of guest VMs.
I've used VirtualBox in the past and according to their site it runs on Linux. However, its an app that would be installed on top of the server. If you want an actual hypervisor, you would look at VMWare, and Citrix. I beleive that Citrix provides their for free, although I'm not sure. You'll need to check because if you want a hypervisor that sits on the hardware, you need to make sure the hypervisor supports the hardware.
proper Virtual Environment and different user accounts?
I assume what you mean is having one OS with allowing multiple user accounts estalbished...
In this scenario, the user accounts simply provide access an authorization. In addition, depending on the OS, each user account will be configured with its own profile/environment so that you can separate files, control access, etc...
Again with the VM concept, each guest VM is independant of any other VM. Each VM is an instance of a computer running, except that its "virtual". All of the guest VMs are sharing the same physical hardware as opposed to having a one to one relationship between OS and hardware. In virtualization you have many VMs to one hardware.
Thank you for clearing this up JorgeM, I think I now understand the concept of it. This is what I am planning on doing, would you mind just running through it and advising me on whether or not you think it is a 'sane' idea?
Creating a user account, such as 'WebServer' and assigning it disk, CPU and memory quotas etc.
What I am thinking is if I setup different user accounts, then I can 'chroot' them which should essentially create a copy of the root directory. The idea being that it then uses a seperate system to another user, and in effect it 'blocks' the server/application and prevents it from mixing with another server or application.
If I'm not mistaken, this would be a 'poor mans virtualisation' so to speak, since you are no longer sharing resources, and providing the security is up to scratch then any malicious software should be restrained to the file system it is on and shouldn't recognise the others.