4 puan yazan xguru 2023-07-11 | 3 yorum | WhatsApp'ta paylaş
  • Hocus (self-host edilebilen GitPod/GitHub Codespaces alternatifi), Firecracker'ı QEMU ile değiştirdi

Firecracker, kısa süre çalışıp sona eren iş yükleri için optimize edilmiştir

  • AWS Lambda'da kullanılan hafif, hızlı ve güvenli bir microVM hypervisor'üdür
  • O kadar da hafif değildir
    • Uzun süre çalışan iş yükleri için kritik olan "dinamik RAM yönetimi" özelliğini sunmaz. Bir kez ayrılan RAM'i host'a geri vermez
    • Depolamayı host'a geri döndürme özelliği de yoktur. VM içinde büyük bir dosya oluşturup silseniz bile host'taki boş alanı geri vermez. Tüm VM sürücüsü silinene kadar alanı kullanmaya devam eder
    • GPU desteği yoktur ve yüksek performanslı disk I/O da sunmaz

QEMU da kusursuz değildir

  • Yapılandırılacak çok fazla şey vardır
  • Kullanılmayan RAM'i geri vermek için host'un 3 zorluğu çözmesi gerekir
    • Böyle bir özelliğin var olduğunu bilmek (free page reporting olarak adlandırılır ve elle etkinleştirilmelidir)
    • Linux'un DAMON özelliğini anlamak, kullanım amacını ve nasıl yapılandırılacağını bilmek ve bunu destekleyen bir Linux çekirdeği derlemek
    • Guest içinde Transparent Huge Pages kullanımını devre dışı bırakmak gerekir; aksi halde VM büyük miktarda belleği geri vermez
  • Deneme uygulaması 2 ay sürdü
    • Firecracker/QEMU kodunu okuyup
    • DAMON'u yapılandırmak için geliştiricilerle e-posta üzerinden yazıştılar
      → (DAMON geliştiricisi Koreli Park Seong-jae'dir.)

Sonuç

  • QEMU, genel amaçlı iş yüklerini çalıştırmak için gerekli özelliklere sahiptir
  • Ancak yapılandırma zaman ve sabır gerektirir
  • Kısa ömürlü, güvenilmeyen iş yükleri için Firecracker iyi bir seçimdir
  • Ancak geliştirme ortamınızı VM üzerinde çalıştırmak istiyorsanız Hocus'u kullanabilirsiniz (zor kısmı bizim için zaten hallettik)

3 yorum

 
tujuc 2023-07-13

Kendi ürünlerini tanıtmaları güzel ama.. AWS servislerini doğrudan kullanmanın daha iyi olduğu düşüncesi de aklıma gelmiyor değil..
ssssut'un dediği gibi Fargate'te de çalışan bir servis olduğu için o kadar da ileri bir durum olmadığını düşünüyorum.

Belleği geri vermemesinin neden sorun olduğunu hâlâ anlayabilmiş değilim. CPU'da çekişme yaşansa bile uygulama sadece yavaşlar, ayağa kalkmasında sorun olmaz ama bellekte bunun bir çözümü yok gibi...

 
ssssut 2023-07-12

Ek: Firecracker yalnızca AWS Lambda'da değil, uzun süre çalışan ECS Fargate'te de kullanılıyor.

 
GN⁺ 2023-07-11
Hacker News görüşü
  • Firecracker, CodeSandbox'ta geliştirme ortamlarını barındırmak için kullanılıyor, ancak uzun süre çalışan işler için de kullanılabileceğini düşünüyorum.
  • QEMU, Firecracker'a ilham veren, PCI veya ACPI desteği olmayan microvm adlı minimal bir makine tipine sahiptir ve kısa ömürlü guest'ler için tasarlanmıştır.
  • Cloud-hypervisor, bellek geri kazanımı ve diğer özellikleri destekleyen, Firecracker'a benzer başka bir seçenektir.
  • Firecracker'da, host sistemden belleği geri kazanmak için şişirilebilen ve küçültülebilen bir balloon device bulunur.
  • Bu makale Firecracker'ın sınırlamalarından bahsediyor, ancak QEMU hakkında çok fazla bilgi vermiyor.
  • Fly, uzun süre çalışan süreçleri barındırmak için Firecracker kullanıyor.
  • VM'lerin, blok önbelleğinde tekilleştirme ve sıfır kopya entegrasyonu dahil olmak üzere host ile daha akıllı şekilde entegre olmasını istiyorum.
  • QEMU, Firecracker'ın aksine volume'leri bind mount edebilir, ancak bu bir güvenlik riski olabilir.