Wednesday, September 16, 2015

linux - What would be the best virtualization solution for this particular use-case?



I do software (mostly web) development, and I work alone, so I have to cope with a lot of sysadmin-type work, in order to setup different stacks of web/application/database/source-control servers, let alone my own dev environment.



Lately I've been obsessing over finding a way to virtualize these different concerns, to make my setup more manageable.

Ideally I'd log into a thin development client (with my Xsession, emacs and ssh), have the servers run headless, and use them like in the real world.
I'm aiming at getting it all under version control eventually too...



I also have a couple of concerns on top of that :
Performance, as I don't have a killer machine, having a fully virtualized OS for each server would probably slow it to a crawl.
And portability, i.e. be able to reuse those configs with as little tweaking as possible when I move them to a vps or other local boxes.



Considering this, I've basically narrowed it down to os-level virtualization.



OpenVZ seemed like the way to go, but then i found out about LXC and Linux V-Server, and now I'm confused.



So anyway, sorry for the long rant, but I wanted to ask you guys if you had any experience with these virtualization solutions, and maybe could give some insights on what could best suit my needs here ?




cheers !


Answer



They are similar forms of virtualisation - at the OS level only. This has several advantages over full virtualisation.




  • Small overhead - For low-powered machines, I would recommend using either one. I have half a dozen virtual machines running on a 400MHz VIA Samuel 2 system with only 256Mb of RAM under OpenVZ. You will only use the same amount of resources as when running the apps under a single machine. Multiple instances of an app on different machines actually share resources.

  • File access - Transferring files between the host node with the VM and between VMs is trivial as they all share the same file-system on the host. So, I can just inspect and manipulate the VM files from the host node directly. This will come in really handy for development purposes.

  • Backup image - As the file-system is shared, you can just run rsync on the VM directories to back up any machine. You can also easily replicate one machine by simply making a copy of the directory.




The difference between OpenVZ and VServer seems to be just different flavours of a similar thing. You can easily move your VMs between the two systems as detailed on their websites. LXC looks newer when compared to the other two more mature systems.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...