WhiteTiger's picture

Hello,

I'm setting up a Debian 12 server for a small development and testing lab.
These are its features: AMD Dual Core, 16 GB RAM, 120 SSD, 4GB HDD in RAID.

I would like to understand how resources are used by installing multiple apps.
Referring to the VMs I use on my PC, 3 VMs with 3GB of memory each occupy 9GB on the PC even when the individual VMs do not use all the memory.

So,

  • how do TKL use CPU and RAM resources?
  • How should I partition disks?
  • How do I install TKL and individual apps?
  • Is Docker used? Do I have to or can I install it separately for those apps not included in TKL?
  • I don't see Guacamole, isn't that expected?

Thanks for your suggestions.

Forum: 
Jeremy Davis's picture

Hi there, great to have you on board. FYI I'm one of the lead devs with TurnKey and also handle all the support (we're a pretty small team).

Assuming you mean that you are intending to install TurnKey to bare metal, it is possible but I personally wouldn't recommend it. There are two main reasons:

Hardware support

TurnKey hardware support isn't great. You will have issues with newer hardware, especially if you have a modern UEFI/BIOS. In fact, you'll need to disable "Secure Boot" and if it 's not possible to enable "legacy BIOS" (as some really new systems don't) then you will NOT be able to install TurnKey (without a huge amount of mucking around - making it virtual impossible for the average user). having said that, given the specs you've noted, I'm assuming that it's not super new.

You may not have issues, but newer NICs can also often be a bit of an issue. Often they require non-free firmware (i.e. not open source) which will require install, but without networking, as I'm sure you can imagine, that can be a pain.

I recommend installing Proxmox to bare metal

As such, I DO NOT recommend installing TurnKey to bare metal. Instead I would recommend installing Proxmox on your server (transparency disclaimer - we're partnered with Proxmox). Proxmox is a Debian based hypervisor that has great hardware support and a powerful web UI and even more powerful CLI tools and an API if you want to automated stuff remotely. Also beyond "proper" VMs (via KVM/QEMU) it also provides LXC (LinuX Containers) for light weight containerisation. LXC is vaguely similar to Docker (as an aside, early releases of Docker were based on LXC), but is targeted at hosting full (Linux) OSes, rather than single applications (as Docker is designed for).

LXC leverages the host's kernel and hardware resources directly, meaning that it is super lightweight. Despite LXC including a full OS, my personal experience suggests that it's actually lighter weight than Docker. LXC containers should run as if they were on bare metal (relative to the resources you allocate to each one). Hosting full VMs (e.g. if you want an alternate OS to Linux - or want further isolation) works great on Proxmox too and (depending on config) is also often more efficient than hosting VMs on many other plaforms (e.g. on a Desktop), as KVM features such as memory ballooning (i.e. only allocating RAM to the guest as it's actually uses it) and shared memory (e.g. VMs running similar services can share the same RAM).

Proxmox itself is built on top of Debian - so will likely be relatively familiar to you. It also means that it's quite light weight. It is designed for headless use and as such it doesn't include any desktop type software (massively reducing resource overhead). s noted, access is via a Web UI (from a web browser on another PC) or CLI (either via SSH or even local terminal if desired - CLI access is also provided via the web UI). Using Proxmox will also resolve some of your other questions/queries (which would potentially be issues or at least sub-optimal otherwise).

Running multiple TurnKey (or alternate) appliances

For starters, you can download and launch TurnKey servers as LXC containers, right from the Proxmox web UI (i.e. we provide our appliances as LXC builds and it's integrated into Proxmox). Running TurnKey as LXC containers will mean that assuming your servers aren't seeing significant traffic, many will run happily with a single CPU core and as little as 512MB of RAM (perhaps less?). Having a few specific ones will require much more and some don't work that well in LXC. If you share which specific appliances you plan to run, I give specific advice.

Running TurKey apps via LXC will resolve the issue of running multiple ones on the same hardware and using LXC will mean minimal resource usage. No partitioning is required on launch (except for the initial Proxmox install - although IIRC that is automated too). Proxmox takes care of launching containers into their own LVM thin volume and no "install" process is required (as there is if launching from ISO into a VM).

It is possible to install Docker into an LXC container if you wish to user Docker. Although I would advise against it as it has security implications. Instead if you want Docker, install a VM and install Docker in that.

It's perhaps also worth explicitly noting that with LXC and KVM, you can install any other software appliances and/or alternate OS - for testing or providing additional/alternate software you wish to host.

Last bits...

So I think I've addressed all your queries, except for your question regarding Guacamole. I am aware of that software, but I don't quite get the context of it. AFAIK Guacamole is intended for access Desktop type setups. But TurnKey is intended for headless use. So TurnKey server administration is done via Webmin (pre-installed admin web UI) or SSH/CLI. Note that the Proxmox web UI includes NoVNC - allowing direct terminal access to guests within your web browser.

Hopefully that's enough to chew on for now. If you'd like further elaboration and/or have any further questions, please ask. And as i said, if you want some specific appliance/software recommendations please share which ones you're interested in and/or what your needs/desires are.

Good luck with it and please post back with your thoughts and experiences.

Add new comment