- Hocus (eine selbst hostbare Alternative zu GitPod/GitHub Codespaces) hat Firecracker durch QEMU ersetzt
Firecracker ist für kurz laufende Workloads optimiert, die schnell starten und wieder beendet werden
- Ein leichtgewichtiger, schneller und sicherer MicroVM-Hypervisor, der bei AWS Lambda verwendet wird
- So leichtgewichtig ist es jedoch nicht
- Es bietet keine „dynamische RAM-Verwaltung“, die für lang laufende Workloads essenziell ist. Einmal zugewiesener RAM wird nicht an den Host zurückgegeben
- Es gibt auch keine Möglichkeit, Storage an den Host zurückzugeben. Selbst wenn man in der VM große Dateien erstellt und wieder löscht, wird kein freier Speicherplatz an den Host zurückgegeben. Der Platz bleibt belegt, bis das gesamte VM-Laufwerk gelöscht wird
- Es gibt keine GPU-Unterstützung und auch keine High-Performance-Disk-I/O
Auch QEMU ist nicht perfekt
- Es gibt zu viele Dinge zu konfigurieren
- Damit ungenutzter RAM zurückgegeben werden kann, muss der Host drei Herausforderungen lösen
- Überhaupt zu wissen, dass es diese Funktion gibt (sie heißt free page reporting und muss manuell aktiviert werden)
- Die DAMON-Funktion von Linux zu verstehen, ihren Einsatzzweck und ihre Konfiguration zu kennen und einen Linux-Kernel zu kompilieren, der dies unterstützt
- Im Gast sicherzustellen, dass Transparent Huge Pages nicht verwendet werden, da die VM sonst keine größeren Speichermengen zurückgibt
- Allein der Testeinsatz hat zwei Monate gedauert
- Firecracker-/QEMU-Code lesen
- Und mit Entwicklern per E-Mail kommunizieren, um DAMON zu konfigurieren
→ (Der DAMON-Entwickler ist der Koreaner Park Seongjae.)
Fazit
- QEMU verfügt über die nötigen Funktionen für den Betrieb allgemeiner Workloads
- Die Konfiguration erfordert jedoch Zeit und Geduld
- Für kurzlebige, nicht vertrauenswürdige Workloads ist Firecracker eine gute Wahl
- Wenn du deine Entwicklungsumgebung jedoch auf VMs betreiben willst, kannst du Hocus verwenden (wir haben die harte Arbeit bereits erledigt)
3 Kommentare
Es ist gut, das eigene Produkt vorzustellen, aber ich denke auch, dass es vielleicht besser ist, einfach den AWS-Service zu nutzen.. Wie ssssut gesagt hat, ist es ein Dienst, der auch auf Fargate läuft, daher denke ich nicht, dass es bis zu diesem Grad geht.
Ich verstehe immer noch nicht, was genau daran problematisch ist, dass kein Speicher freigegeben wird. Bei der CPU wird die Anwendung bei Konkurrenz zwar langsamer, aber beim Starten gibt es kein Problem; bei Speicher gibt es dagegen keine wirkliche Lösung...
Ergänzung: Firecracker wird nicht nur bei AWS Lambda verwendet, sondern auch bei ECS Fargate für lang laufende Workloads.
Hacker-News-Kommentare
microvmeinen von Firecracker inspirierten Zieltyp, einen minimalen Maschinentyp ohne PCI- oder ACPI-Unterstützung, der für kurzlebige Gäste ausgelegt ist.