I would like to move my servers to virtual machines. This is because it'll make it easier for me to fire up more machines and back them up in case the physical server is damaged (I'm not aware of other benefits). While I use virtual machines normally as isolated workstations, I'm not aware of the full set of their benefits for servers. What I mean is: I see people use (and promote) VMWare vSphere for this. More licenses seem to cost more (exponentially), and I don't know why. I'm wondering whether lxd (It's like docker, but persists its state) is a replacement to this.

What are the benefits of using a virtual machine (vSphere specifically or generally any other kind) over using simple containers like lxd?

  • First: LXD is not "like docker, but persists its state). Second: it - as always - depends on what you want to achieve. Superior service? Lower cost? More flexibility? I myself am using multiple LXC (HA) setups in my production environment. But I can maintain them myself and (usually) don't need support from the maintainer. These are low performance intranet servers, for example, as the rest of the infrastructure is quite MS prone - so Hyper-V failoverclustering and such. I'd say LXC/LXD has been production ready for some years now. Other may say differently. – Lenniey Jan 25 '19 at 9:53
  • Also very related: stackoverflow.com/questions/43800432/… – Lenniey Jan 25 '19 at 9:53
  • @Lenniey Why is LXD not "like docker but with a state"? I never seem to capture the difference. I noticed that you draw the difference between LXD and VM with Hyper-V and failover clustering (I don't know what MS prone means). From what I read about failover clustering, can we say that kubernetes can replace Hyper-V and failover clustering? What I'd like to reach is maximum reliability for a startup business I'm working on. Of course lower-cost is always desired. – The Quantum Physicist Jan 25 '19 at 10:05
  • I opened a chat – Lenniey Jan 25 '19 at 12:13
  • If cost is an issue, consider Linux KVM as a hypervisor and tools built on it such as OpenStack for managing everything. – Michael Hampton Jan 25 '19 at 15:20

It really depends on what you want or need. With real virtual machines running a full operating system, you can delegate ownership to other people in the company. For example, you remain the owner and maintainer of the ESX servers while someone else can be in charge of maintaining and updating the Windows servers running your Active Directory domain. With containers, it's all just one operating system which makes this delegation of authority and responsibility more difficult.

A second topic to consider is the operating system itself. When running LXC/LXD you can only run linux (as far as I know) while when using ESX, you can run different linux distributions, some windows servers, even BSD and the like. Every instance can be custom fitted to the task at hand.

Next, complete VMs running on ESX require more overhead with regards to memory and CPU usage. It also adds overhead in terms of maintenance (patching and updating of software).

Finally, ESX and Windows require more licences than when you run everything as containers.

  • Windows is absolutely out of the question. It'll all be Linux. But why is giving ownership of containers not possible? Consider a machine with port 22222 exposed to the team with ssh. I can let someone in and give them the permissions necessary to do a certain job. Can you elaborate on that? Or are you saying I have to do this individually for every machine, while ESX (the hypervisor, if I understand correctly), will make me do it in one click? – The Quantum Physicist Jan 25 '19 at 13:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.