4 poin oleh xguru 2023-07-11 | 3 komentar | Bagikan ke WhatsApp
  • Hocus (alternatif GitPod/GitHub Codespaces yang bisa di-self-host) mengganti Firecracker dengan QEMU

Firecracker dioptimalkan untuk workload yang berjalan singkat lalu selesai

  • Hypervisor microVM yang ringan, cepat, dan aman, digunakan di AWS Lambda
  • Tapi ternyata tidak seringan itu
    • Tidak menyediakan "fitur manajemen RAM dinamis" yang penting untuk workload yang berjalan lama. RAM yang sudah dialokasikan tidak dikembalikan ke host
    • Juga tidak ada fitur untuk mengembalikan storage ke host. Meski membuat lalu menghapus file besar di dalam VM, ruang kosong tidak dikembalikan ke host. Tetap terpakai sampai seluruh drive VM dihapus
    • Tidak mendukung GPU, dan juga tidak menyediakan disk I/O berperforma tinggi

QEMU juga tidak sempurna

  • Terlalu banyak yang harus dikonfigurasi
  • Agar RAM yang tidak terpakai bisa dikembalikan, host harus menyelesaikan 3 tantangan
    • Mengetahui bahwa fitur itu memang ada (disebut free page reporting, dan harus diaktifkan secara manual)
    • Memahami fitur DAMON di Linux, mengetahui kegunaan dan cara konfigurasinya, serta mengompilasi kernel Linux yang mendukungnya
    • Harus memastikan guest tidak menggunakan Transparent Huge Pages, kalau tidak VM tidak akan mengembalikan memori dalam jumlah besar
  • Butuh 2 bulan untuk uji coba penerapannya
    • Membaca kode Firecracker/QEMU,
    • Bahkan saling berkirim email dengan developer untuk mengatur DAMON
      → (Developer DAMON adalah Park Seong-jae dari Korea.)

Kesimpulan

  • QEMU memiliki fitur yang dibutuhkan untuk menjalankan workload serbaguna
  • Tetapi konfigurasinya membutuhkan waktu dan kesabaran
  • Untuk Short-lived, Untrusted Workload, Firecracker adalah pilihan yang bagus
  • Namun jika Anda ingin menjalankan environment pengembangan Anda di VM, gunakan Hocus (bagian sulitnya sudah kami kerjakan)

3 komentar

 
tujuc 2023-07-13

Memperkenalkan produk sendiri sih bagus, tapi jadi kepikiran juga bahwa lebih baik langsung pakai layanan AWS saja..
Seperti yang dibilang ssssut, ini layanan yang juga berjalan di Fargate, jadi menurut saya tidak sampai separah itu.

Saya masih belum paham kenapa tidak mengembalikan memori itu jadi masalah. CPU meskipun terjadi kontensi, aplikasinya hanya melambat dan tidak ada masalah untuk dijalankan, tapi untuk memori tidak ada jalan keluarnya...

 
ssssut 2023-07-12

Tambahan: Bukan hanya AWS Lambda, Firecracker juga digunakan di ECS Fargate yang berjalan dalam waktu lama.

 
GN⁺ 2023-07-11
Komentar Hacker News
  • Firecracker digunakan oleh CodeSandbox untuk meng-host lingkungan pengembangan, tetapi saya pikir ini juga bisa digunakan untuk pekerjaan yang berjalan lama.
  • QEMU memiliki target bernama microvm, jenis mesin minimal tanpa dukungan PCI atau ACPI, yang terinspirasi oleh Firecracker dan dirancang untuk guest berumur pendek.
  • Cloud-hypervisor adalah opsi lain yang mirip Firecracker yang mendukung reclaim memori dan fitur lainnya.
  • Firecracker memiliki perangkat balloon yang dapat mengembang dan mengempis untuk mereclaim memori dari sistem host.
  • Artikel ini menyebutkan keterbatasan Firecracker, tetapi tidak memberikan banyak informasi tentang QEMU.
  • Fly menggunakan Firecracker untuk meng-host proses yang berjalan lama.
  • Saya ingin VM terintegrasi dengan host dengan cara yang lebih cerdas, termasuk deduplikasi block cache dan integrasi zero-copy.
  • QEMU, tidak seperti Firecracker, dapat melakukan bind mount volume, tetapi ini bisa menjadi risiko keamanan.