Virtualisasi
Apa itu Nested virtualisation?
Nested virtualisation lets a virtual machine itself run virtual machines, by exposing the processor virtualisation extensions to the guest. It is required for Proxmox VE, VM-based CI jobs and some Docker configurations. Many providers disable it, which is the usual reason those workloads fail elsewhere.
Mengapa Nested virtualisation penting
Ini diperlukan untuk Proxmox VE, pekerjaan CI berbasis VM, dan beberapa konfigurasi Docker. Banyak penyedia yang menonaktifkannya, yang biasanya menjadi alasan mengapa beban kerja tersebut gagal di tempat lain.
Nested virtualisation dalam praktik
Saat Anda menjalankan virtualisasi bersarang, Anda mem-boot hypervisor di dalam tamu KVM dan meneruskan ekstensi virtualisasi CPU host. Anda akan memeriksa /proc/cpuinfo di tamu untuk flag svm atau vmx. Jika tidak ada, hypervisor dalam Anda jatuh ke emulasi perangkat lunak, yang dapat memangkas kinerja hingga sepuluh kali lipat. Anda mungkin juga perlu mengaktifkan tipe CPU 'host' daripada model generik untuk mendapatkan flag tersebut. Salah mengaturnya dan beban kerja Proxmox atau CI Anda berjalan merangkak.
Kesalahan umum tentang Nested virtualisation
Orang menganggap virtualisasi bersarang hanya penting untuk menjalankan OS penuh seperti Windows di VM. Koreksinya: itu juga merusak jaringan overlay default Docker dan modul kernel tertentu, karena itu bergantung pada fitur virtualisasi di dalam tamu. Jadi beban kerja kontainer bisa gagal pada penyedia yang menonaktifkan nesting, meskipun Anda tidak pernah berniat menjalankan VM.
Nested virtualisation — pertanyaan umum
Bisakah saya menjalankan Docker di dalam VM bersarang?
Ya, dan ini adalah alasan paling umum orang membutuhkan virtualisasi bersarang. Jaringan bridge default Docker menggunakan iptables dan modul kernel yang mungkin berperilaku berbeda tanpa ekstensi virtualisasi CPU diekspos. Paket KVM kami menyertakan virtualisasi bersarang, jadi kontainer Docker Anda berjalan seperti yang diharapkan.
Bagaimana cara memeriksa apakah virtualisasi bersarang diaktifkan?
Di dalam VM Anda, jalankan grep -E '(svm|vmx)' /proc/cpuinfo. Jika Anda melihat flag tersebut, nesting tersedia. Jika tidak, hypervisor tidak mengeksposnya, yang biasanya berarti penyedia menonaktifkannya.
Di mana Nested virtualisation muncul
- Bisakah saya menjalankan virtualisasi bersarang di VPS? Ya. Virtualisasi bersarang diaktifkan pada setiap instance OnionVPS, jadi Anda dapat menjalankan guest KVM di dalam instance Anda, menginstal Proxmox VE, a…
- Apa VPS termurah yang benar-benar dapat digunakan? Sekitar $4 per bulan membeli 1 vCPU, 1 GB RAM, dan 20 GB NVMe pada virtualisasi KVM asli. Itu benar-benar cukup untuk WireGuard VPN, resolver DNS, relay To…
- Apa itu virtualisasi KVM? KVM (Kernel-based Virtual Machine) adalah virtualisasi perangkat keras penuh yang dibangun ke dalam kernel Linux, menggunakan ekstensi prosesor untuk menja…
- KVM vs OpenVZ: mengapa jenis virtualisasi itu penting KVM adalah virtualisasi perangkat keras penuh: instance Anda menjalankan kernelnya sendiri dan tidak dapat melihat host. OpenVZ dan LXC adalah teknologi ko…
Lainnya dari virtualisasi
- KVM
- KVM adalah virtualisasi perangkat keras penuh yang dibangun ke dalam kernel Linux, memberi setiap tamu kernelnya sendiri dan isolasi yang ditegakkan perangkat keras dari penyewa lain.
- OpenVZ
- OpenVZ adalah virtualisasi berbasis kontainer di mana setiap instance berbagi kernel host, sehingga tamu tidak dapat memuat modul kernel atau menjalankan sistem operasi yang berbeda.
- LXC
- LXC adalah kontainerisasi asli Linux yang mengisolasi proses dengan namespaces dan cgroups sambil berbagi kernel host.
- Hypervisor
- Hypervisor adalah lapisan perangkat lunak yang membuat dan menjalankan mesin virtual, mengalokasikan CPU fisik, memori, dan IO di antara mereka.
- vCPU
- vCPU adalah prosesor virtual yang disajikan ke tamu, didukung oleh waktu penjadwalan pada inti fisik atau utas.
- cloud-init
- cloud-init adalah mekanisme standar untuk mengonfigurasi mesin virtual pada boot pertama, menggunakan metadata yang disediakan oleh platform.