Forum archive
TurnKey Meta Core aka TKL Master Server aka Virtual Environment
I have made this thread so as to consolidate and continue conversation going from ideas already discussed in this topic and this topic. A brief rundown of my vision can be found on the dev wiki. I have closely based my ideas around Proxmox VE (as I am currently using it and am very very happy with it, besides I think its a very useful model!) But Liraz has suggestioned that other existing opensource VM managment solutions be considered too, which I think is a good call. So the list I have so far stands at:
I'd like to do a bit of dev work around this when I get time but I'd like to hear whats wanted as I don't really want to go off on my own tangent only to find I'm all alone. At the end of the day Proxmox is already fulfilling my needs so I have no real need to change anything. I've just become attached to TKL and would really like my server running TKL as the host OS too!
I think some of the fundamental questions are:
- Should it be available in 32 bit, 64 bit or both? (Obviously initially it will only be 32 bit as it will be built on TKL Core).
- Should it be aimed specifically as a host for TKL (and other linux) VMs or should it be able to provide facility for Windows and other OSs? (ie Openvz/container only or KVM/true-virtualisation as well?)
- Should it aim to run on hardware specifically (in which case only available as an .iso), or more VM based? (Ideally it'd be good to support both but be good to know what target market is.)
- Should it have some additional functionality of some sort built in? Or should it just be purely a lightweight host OS? If so what functionality would be appropriate?
- Should it be based on current TKL base (Ubuntu) or would Debian (or some other distro for that matter) be better? Why?
And I'm sure there's plenty more...
My personal inclination at this point would be to go for a 32 & 64 bit TKL/Ubuntu VM host only system using OpenVZ and KVM . I would like to see it optimised for Hardware and TKL clients but with facility for running in a virtual machine and ability to host other guest OSs too. Perhaps a couple of versions could be available? Basically I'd like to see a TKL adaptation of Proxmox (based on Ubuntu rather than Debian and available in 32 bit as well).
I note with great interest that both OpenVZ and KVM are available from the Ubuntu 8.04 repos (although most of the latest KVM improvements are only available in later kernels). Unfortunately OpenVZ dev seems to have slowed but KVM is under rapid developement. LXC (container virtualisation similar to OpenVZ) is looking like a possible improvement and/or substitute for OpenVZ (especially if developemnt stalls further). From this article about LXC (and "how to install it in 9.10) it seems LXC should be working sweet in Ubuntu 10.04 LTS (base for future versions of TKL!?)
Please post your ideas, thoughts and any other input!
- edited so it makes more sense (it was a late night last night!)
I think I accidentally browsed away from the page - Doh! I'll try again...
Sorry for the late reply I somehow missed this post!
First off as stated before I think this is a terrific idea and I'd love to learn more from those in the community who have experience with the various virtualization alternatives (e.g., KVM vs OpenVZ).
A few clarifications regarding our development plan for TurnKey Linux:
In a nutshell our philosophy is to let users choose whenever possible so it's not a question of Ubuntu vs Debian, or 32-bit vs 64-bit.
We plan on supporting them all. Or rather, supporting the best options. Because really in many cases you can't say one is better than the other but rather that there are different pros and cons for each alternative and which is best depends on your circumstances.
On OpenVZ vs KVM
This is especially true with regards to virtualization technologies such as OpenVZ vs KVM. They're different approaches to the same problem. If I'm not mistaken, OpenVZ is a thin container-level virtualization solution, so you have one kernel and many userlands. OTOH, KVM is a hardware virtual machine based solution in which each virtual machine is running it's own emulated hardware stack and it's own kernel, etc. The level of isolation KVM provides you is much stronger, but you pay for it with greater overhead (e.g., RAM, CPU).
Because each is better suited for different usage scenarios if possible we want to support both.
Target the ISO build
Many virtualization solutions are designed to run on bare metal. You can theoretically nest some virtualization solutions but I don't think that's a popular usage scenario. I recommend you stick with hacking the ISO build.
Development process
What I suggest is trying to create a patch for TurnKey Core which implements a basic virtualization solution from a component you think would make a neat basis for this. Since it's a TurnKey appliance for running other appliances let's call it TurnKey Meta Core. Only once the basic, most important stuff is working well do you start to think about adding more bells and whistles, and always remembers that every additional component and feature has a cost (e.g., increased footprint, usage complexity, security risks, etc.) and that cost has to be weighed against the benefits. That's how we try and figure out what belongs in a TurnKey appliance BTW.
Starting goal: do the simplest thing that could possibly work
Simplest way to turn a bare metal machine into a platform for running other TurnKey appliances (though it doesn't have to be limited to TurnKey!).
Our target audience is technically savvy but not experts with this virtualization stuff. They like the concept and they want to run a whole collection of TurnKey appliances on that server in the closet and they want TurnKey to make it super easy for them to do that.
At the moment you shouldn't worry about the sort of extra things high-end users will want (e.g., support for hardware clusters). That's further down the road.
Experiment experiment experiment
Unless you already have extensive experience and know exactly what needs to be done there is really no point in planning too far ahead. The key here is to adopt an playful attitude and find out what works best via experimentation. That seems to work pretty well for us anyhow. Just immerse yourself in the technology and once you are really familiar with them then the right thing to do will be much easier to decide. Don't plan for the future. Let the future take care of itself.