Ich versuche mich zu entscheiden, wann ein LXC-Container eine bessere Wahl sein kann als eine vollständige VM.
Haben Sie bestimmte Anwendungsfälle im Sinn, die auf die eine oder andere Art Argumente liefern können?
Ist LXC mehr "PaaS" -orientiert, um Anwendungen ohne Hardware-Kontrolle zu betreiben? Müssen wir VM immer in einer "IaaS" -Perspektive verwenden, in der wir die Infrastruktur kontrollieren wollen?
Grüße,
Ich glaube nicht, dass IaaS VMs benötigt. Mit LXC können Sie # von cpushare und Memory user limit definieren.
Die Sache ist, dass VMs ziemlich schwer sind, also zum Beispiel PHP / MySQL / Apache, du hättest 1 VM. Da LXC leicht sind, könnten Sie 3 LXC haben, also ist es viel besser für die Skalierung (wenn Sie mysql shard brauchen, kopieren Sie einfach die mysql LXC)
LXC ist wie ein Chroot-Gefängnis auf Steroiden. Aus Gründen der Argumentation können Sie es als eine leichte VM betrachten (obwohl es überhaupt keine VM ist).
Wenn Sie sich bereits die Mühe gemacht haben, eine Anwendung zu schreiben, die darauf ausgelegt ist, auf einer ephemeren Infrastruktur zu bestehen, dann können Sie mit LXC einfach mit weniger Aufwand arbeiten.
Für mich ist das Beste an LXC, dass die Community wächst. Betrachten Sie etwas wie Andockfenster - ein Docker-Image ist relativ portabel. Es bietet die Werkzeuge zum Konfigurieren identischer Container auf physischer Hardware oder innerhalb einer VirtualBox-VM, die auf Ihrem Desktop oder in VMs von Amazon oder Rackspace ausgeführt wird. Das bringt uns näher an den Traum von Einmal-Schreien überall hin.
LXCs starten viel schneller als VMs und verwenden weniger Hostressourcen pro Container als VMs. Daher sind sie ideal für Kombinationen, bei denen viele isolierte Prozesse auf einen Host gepackt und / oder häufig gestartet werden.
Ein Anwendungsfall ist das Ausführen von Komponententests in reproduzierbaren Umgebungen (in Kombination mit einem Snapshot-Dateisystem, wie Docker ). Sie könnten einen ganzen Container hochfahren, den Test ausführen und ihn so schnell herunterfahren, wie Sie den Test einfach ausführen könnten. Der Vorteil des LXC wäre, dass alle Nicht-Kernel-Abhängigkeiten des Tests innerhalb des Containers wären. Es könnte sogar eine andere Art von Linux sein (zB könnte der Host Ubuntu sein und der Container könnte Centos ausführen, obwohl sie den Kernel des Hosts teilen müssen).
Für mich ist der Vorteil von lxc, dass Sie eine wirklich kleine Umgebung haben. So nutzen Sie es voll, wenn Sie nur eine App darauf ausführen lassen. Wenn mehrere App in Ihrer Umgebung ausgeführt werden sollen, ist eine VM besser. Ein weiterer Fall, in dem eine VM besser ist, ist, wenn Sie einen anderen Kernel als den Host-Kernel verwenden möchten.
Für mich ist lxc nur ein wirklich leichtes VM-System. Mit Geschwindigkeit und Größe besser. Aber Constraint kann nicht sein, was Sie brauchen.
Tags und Links virtual-machine virtualization docker cloud lxc