가상화
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.
Nested virtualisation가 중요한 이유
Proxmox VE、VM 기반 CI 작업 및 일부 Docker 구성에 필요합니다. 많은 공급자가 이를 비활성화하며, 이것이 해당 워크로드가 다른 곳에서 실패하는 일반적인 이유입니다.
Nested virtualisation 실제 적용
중첩 가상화를 실행할 때 KVM 게스트 내부에서 하이퍼바이저를 부팅하고 호스트 CPU의 가상화 확장을 통과시킵니다. 게스트에서 /proc/cpuinfo에서 svm 또는 vmx 플래그를 확인합니다. 이 플래그가 없으면 내부 하이퍼바이저는 소프트웨어 에뮬레이션으로 대체되어 성능이 한 자릿수 이상 저하될 수 있습니다. 이러한 플래그를 얻으려면 일반 모델이 아닌 'host' CPU 유형을 활성화해야 할 수도 있습니다. 잘못 설정하면 Proxmox 또는 CI 워크로드가 크롤링됩니다.
Nested virtualisation에 대한 사람들의 오해
사람들은 중첩 가상화가 Windows와 같은 전체 OS를 VM에서 실행하는 데에만 중요하다고 가정합니다. 수정 사항: Docker의 기본 오버레이 네트워킹과 특정 커널 모듈도 중단시키며, 이는 게스트 내부의 가상화 기능에 의존하기 때문입니다. 따라서 VM을 실행할 의도가 없더라도 중첩을 비활성화한 제공업체에서는 컨테이너 워크로드가 실패할 수 있습니다.
Nested virtualisation — 일반적인 질문
중첩 VM 안에서 Docker를 실행할 수 있나요?
예, 이것이 사람들이 중첩 가상화가 필요한 가장 일반적인 이유입니다. Docker의 기본 브리지 네트워킹은 CPU 가상화 확장이 노출되지 않으면 다르게 작동할 수 있는 iptables 및 커널 모듈을 사용합니다. 우리 KVM 플랜에는 중첩 가상화가 포함되어 있어 Docker 컨테이너가 예상대로 실행됩니다.
중첩 가상화가 활성화되었는지 어떻게 확인하나요?
VM 내부에서 grep -E '(svm|vmx)' /proc/cpuinfo를 실행하세요. 플래그가 보이면 중첩이 가능한 것입니다. 그렇지 않으면 하이퍼바이저가 이를 노출하지 않는 것이며, 일반적으로 제공업체가 비활성화했음을 의미합니다.
Nested virtualisation가 등장하는 곳
- VPS에서 중첩 가상화를 실행할 수 있나요? 네. 중첩 가상화는 모든 OnionVPS 인스턴스에서 활성화되어 있으므로 인스턴스 내에서 KVM 게스트를 실행하고, Proxmox VE를 설치하고, Docker-in-Docker 및 VM 기반 CI 작업을 실행할 수 있습니다. 많은 공급자가 이를 비활성화하는데, 이것이 Prox…
- 실제로 사용 가능한 가장 저렴한 VPS는 무엇인가요? 월 약 $4로 실제 KVM 가상화에서 1 vCPU, 1GB RAM, 20GB NVMe를 구매할 수 있습니다. 이는 WireGuard VPN, DNS 리졸버, Tor 릴레이, 소규모 봇 또는 정적 사이트에 충분합니다. 그 가격 이하에서는 가상 머신이 아닌 초과 판매된 컨테이너를 …
- 什么是KVM虚拟化? KVM(基于内核的虚拟机)是Linux内核中内置的完全硬件虚拟化,使用处理器扩展来运行每个客户机,每个客户机有自己的内核和硬件强制隔离。与共享主机内核的OpenVZ或LXC不同,KVM客户机可以加载内核模块、运行任何操作系统并使用真正的交换空间。…
- KVM vs OpenVZ:为何虚拟化类型很重要 KVM是完全硬件虚拟化:您的实例运行自己的内核,无法看到宿主机。OpenVZ和LXC是共享宿主机内核的容器技术,这意味着不支持自定义内核模块,在老式宿主机上不支持WireGuard,Docker不可靠,且内存计算方式允许提供商超卖。如果VPS异常便宜,通常就是OpenVZ。…
가상화에서 더 보기
- KVM
- KVM은 Linux 커널에 내장된 완전한 하드웨어 가상화로, 각 게스트에 자체 커널과 다른 테넌트로부터 하드웨어 강제 격리를 제공합니다.
- OpenVZ
- OpenVZ는 모든 인스턴스가 호스트 커널을 공유하는 컨테이너 기반 가상화로, 게스트는 커널 모듈을 로드하거나 다른 운영 체제를 실행할 수 없습니다.
- LXC
- LXC는 커널을 공유하면서 네임스페이스와 cgroups로 프로세스를 격리하는 Linux 네이티브 컨테이너화입니다.
- 하이퍼바이저
- 하이퍼바이저는 가상 머신을 생성하고 실행하며 물리적 CPU, 메모리 및 IO를 그들 사이에 할당하는 소프트웨어 계층입니다.
- vCPU
- vCPU는 게스트에게 제공되는 가상 프로세서로, 물리적 코어 또는 스레드의 스케줄링 시간을 기반으로 합니다.
- cloud-init
- cloud-init는 플랫폼에서 제공하는 메타데이터를 사용하여 가상 머신을 첫 부팅 시 구성하는 표준 메커니즘입니다.