Xen PV, Xen KVM 및 HVM의 차이점은 무엇입니까?


53

공급자가 Xen에서 과매도 할 수 없기 때문에 Xen이 일반적으로 OpenVZ보다 낫다는 것을 알고 있습니다. 그러나 차이점은 무엇인가 Xen PV, Xen KVM그리고 HVM(나는이 공급자의를 통과했다 사양 어떤 사람이 어떤 목적과 이유를 위해 더 낫다?


편집하다:

웹 사이트를 호스팅하는 최종 사용자에게는 어떤 것이 더 좋습니까? 효율성이나 다른 관점에서 볼 때 하나의 장점이 있습니까?

답변:


47

Xen 지원 가상화 유형

Xen은 서로 다른 두 가지 유형의 게스트 실행을 지원합니다. Xen 게스트는 종종 domU (권한이없는 도메인)라고합니다. 두 게스트 유형 (PV, HVM)을 단일 Xen 시스템에서 동시에 사용할 수 있습니다.

Xen 반 가상화 (PV)

반 가상화는 Xen이 도입 한 효율적이고 가벼운 가상화 기술이며 나중에 다른 가상화 솔루션에서도 채택됩니다. 반 가상화에는 호스트 CPU의 가상화 확장이 필요하지 않습니다. 그러나 반 가상화 게스트에는 Xen에서 기본적으로 실행되도록 포트 된 특수 커널이 필요하므로 게스트는 하이퍼 바이저를 인식하고 에뮬레이션 또는 가상 에뮬레이트 하드웨어없이 효율적으로 실행할 수 있습니다. Xen PV 게스트 커널은 Linux, NetBSD, FreeBSD, OpenSolaris 및 Novell Netware 운영 체제에 존재합니다.

PV 게스트에는 가상 에뮬레이트 된 하드웨어가 없지만 게스트 pvfb (반 가상화 프레임 버퍼)를 사용하여 그래픽 콘솔을 계속 사용할 수 있습니다. PV 게스트 그래픽 콘솔은 VNC 클라이언트 또는 Redhat의 virt-viewer를 사용하여 볼 수 있습니다. 각 게스트의 PVFB마다 dom0에 별도의 VNC 서버가 있습니다.

Linux 2.6.24 이후의 업스트림 kernel.org Linux 커널에는 Linux pvops 프레임 워크를 기반으로하는 DOMU (Xen PV guest) 지원이 포함되어 있으므로 모든 업스트림 Linux 커널을 추가 패치 나 수정없이 Xen PV 게스트 커널로 자동 사용할 수 있습니다.

Linux pvops Xen 지원에 대한 자세한 내용은 XenParavirtOps 위키 페이지를 참조하십시오.

Xen 전체 가상화 (HVM)

완전 가상화 일명 HVM (Hardware Virtual Machine) 게스트는 호스트 CPU (Intel VT, AMD-V)의 CPU 가상화 확장이 필요합니다. Xen은 수정 된 Qemu 버전을 사용하여 HVM 게스트를 위해 BIOS, IDE 디스크 컨트롤러, VGA 그래픽 어댑터, USB 컨트롤러, 네트워크 어댑터 등 전체 PC 하드웨어를 에뮬레이션합니다. CPU 가상화 확장은 에뮬레이션 성능을 향상시키는 데 사용됩니다. 완전 가상화 게스트에는 특수 커널이 필요하지 않으므로 Windows 운영 체제를 Xen HVM 게스트로 사용할 수 있습니다. 완전 에뮬레이션 된 게스트는 일반적으로 필수 에뮬레이션으로 인해 반 가상화 된 게스트보다 느립니다.

완전히 가상화 된 HVM 게스트는 성능을 높이기 위해 특수 반 가상화 장치 드라이버를 사용하여 디스크 및 네트워크 IO 에뮬레이션을 무시할 수 있습니다. Xen Windows HVM 게스트는 오픈 소스 GPLPV 드라이버를 사용할 수 있습니다. Linux HVM 게스트 용 Xen PV-on-HVM 드라이버에 대한 자세한 내용은 XenLinuxPVonHVM 드라이버 위키 페이지를 참조하십시오.

이것은 http://wiki.xenproject.org/wiki/XenOverview 에서 온 것입니다 .

KVM은 전혀 Xen이 아니며 다른 기술입니다. KVM은 Linux 기본 커널 모듈이며 Xen과 같은 추가 커널은 아닙니다. 이것은 KVM을 더 나은 디자인으로 만듭니다. 여기서 단점은 KVM이 Xen보다 새로운 것이므로 일부 기능이 부족할 수 있습니다.


9
+1 KVM은 전혀 Xen이 아닙니다. KVM이 더 나은 디자인이라는 데는 완전히 동의하지 않습니다. Xen은 훨씬 나은 격리 기능을 제공하며 Linux 커널에 의존하지 않으며 잠재적 인 취약점이 있습니다.
Antoine Benkemoun

2
정보에 대해서 감사드립니다! 나는 모든 것을 이해할 수 없었다. 최종 사용자 관점에서 누가 웹 사이트를 호스팅 할 것인가? 다른 것보다 중요한 이점이 있습니까?

2
Xen은 자체 취약점이 있습니다. 그러나 부트 스트랩이 2 개인 커널로 OS를 실행하는 것은 아무리 잘 수행하더라도 디자인 결함입니다.
dyasny

1
JP19 : 웹 사이트에 따라 다릅니다. VPS의 부하를 정의 할 수있는 경우 여기 또는 Google에 최상의 솔루션을 요청할 수 있습니다.
dyasny

2
Xen은 하이퍼 바이저이며 KVM도 마찬가지입니다. KVM에는 PV 장치가 있으며 시간이 지남에 따라 더 많은 장치가 추가되며 PCI 패스 스루도 가능합니다. 그래서 나는 당신의 인수, 닐스에 지점을 볼 수 없습니다
dyasny

32

Xen 금속 (PC / 서버)에서 실행되고 도메인이라는 가상 머신을 호스팅하는 하이퍼 바이저입니다.

Xen PV도메인은입니다 반 가상화 도메인 젠에서 실행되도록 수정 된 운영 체제를 (일반적으로 우리가 여기에 리눅스를 얘기)을 의미하고, 실제로 하드웨어를 에뮬레이션 할 필요가 없습니다. 이것은 성능 측면에서 가장 효율적인 방법 이어야 합니다.

Xen HVM도메인은 하드웨어 에뮬레이션 어떤 방식으로 수정되지 않았으며 하드웨어를 에뮬레이트됩니다 (어떤 리눅스, 윈도우, 수) 운영 시스템을 의미 도메인. 속도가 느리므로 일반적으로 중요한 하드웨어 (일반적으로 디스크 및 네트워크)를 위해 게스트 운영 체제에 PV 드라이버 를 설치 하므로 게스트 전체가 완전히 가상화 된 상태로 실행되지만 가장 성능이 중요한 하드웨어는 반 가상화 상태로 실행됩니다. 최근의 리눅스 시스템은 커널에 디스크와 네트워크를위한 pv 드라이버를 가지고 있으며, Windows를위한 다양한 PV 드라이버도 있습니다. 최근 몇 년간 HVM에 대한 모든 개발로 표준 워크로드에 대한 HVM과 PV의 성능에는 거의 차이가 없습니다.

KVMXen이 아니라 Linux 커널에 내장 된 또 다른 가상화 플랫폼입니다. A로부터 게스트 의 관점은 젠 HVM과 유사 게스트는 완전 가상화 실행하고 일부는 (다시, 디스크 및 네트워크)를 반 가상화 실행하는 특정 드라이버가 있습니다.

Xen HVM 및 Linux KVM 모두 하드웨어 지원 가상화 지원 (Intel VT-x, AMD AMD-V)이 필요하지만 Xen PV는 PV 지원없이 운영 체제를 실행할 수는 없지만 실행할 수는 없습니다 (Xen PV에서 Windows를 실행할 수 없음).

Xen HVM과 Linux KVM은 qemu 가상화 소프트웨어의 일부를 사용하여 게스트 시스템에서 PV 드라이버를 사용하지 않는 장치의 실제 하드웨어를 에뮬레이션합니다.

Xen (PV 및 HVM 모두)은 실행중인 게스트를 한 물리적 서버에서 다른 물리적 서버로 실시간 마이그레이션 할 수 있습니다 .KVM도 가능한지 모르겠습니다.

Xen과 KVM 모두 메모리를 초과 커밋 할 수 없으므로 일반적으로 "실제 RAM"을 얻는 반면 VMware와 같은 다른 플랫폼은 게스트 램의 일부를 디스크로 교체 할 수 있습니다.

차이점이 있지만 일반적으로 특정 설치에는 적용되며 다른 사람에게 판매 할 일반 가상 사설 서버에는 적용되지 않습니다. 예를 들어, 최근 Xen 하이퍼 바이저는 초월 메모리를 지원하여 게스트가 지원하는 경우 메모리 사용률 및 게스트 성능을 향상시킬 수 있습니다 (리눅스 커널> = 3.something).

이러한 모든 기술은 올바르게 구현되면 훌륭한 경험을 제공 할 것이며 귀하의 관점과 크게 다르지 않을 것입니다. 물론 수천 가지 방법으로 문제가 발생할 수 있으며 특정 가상화 솔루션과 관련이 없습니다 (예 : 게스트가 느린 디스크에 저장되어 성능이 저하 될 수 있음).


3
KVM은 메모리를 초과 커밋 할 수 있으며 Xen도 가능합니다.
dyasny

@dyasny KVM에 대해서는 잘 모르지만 Xen 이 실제 단어의 의미에서 메모리를 초과 커밋 할 수 없다고 확신 합니다 (다른 최대 크기를 허용하는 것은 다릅니다). 당신이 믿는다면 당신의 출처를 연결하십시오.
Luke404

Xen은 balooning을 지원합니다. 여기에 표준 스와핑을 추가하면 이미 최소 2 개의 오버 커밋 메커니즘이 있습니다. 이것은 2008 년입니다. blog.xen.org/index.php/2008/08/27/…
dyasny

3
@dyasny 아마도 초과 커밋 이 더 높은 최대 값을 허용 한다고 생각할 것 입니다. AFAIK에서 허용되는 의미는 실제로 호스트에 실제로 존재하는 것보다 더 많은 메모리를 게스트에게 할당하는 것이며 이는 Xen에서 구현되지 않습니다. 호스트에 사용 가능한 물리적 메모리가없는 경우 게스트 풍선을 수축시킬 수 없으며 (예 : 더 많은 메모리 제공) 이미 호스트 메모리를 모두 할당 한 경우 새 게스트를 시작할 수 없습니다 (부 풀리지 않는 한) 게스트 풍선을 실행하여 실제로 할당 된 메모리를 줄이므로 아무것도 커밋하지 않습니다.
Luke404

1
나는 생각 오버 커밋 호스트 이상을 허용하지 않는 전용으로 물리적으로 가지고 있지만, 또한 실제로 호스트가 물리적으로이보다 더 사용. 스와핑은 끔찍하지만 프로세스 나 VM에 관계없이 물리적으로 호스트에있는 것보다 많은 메모리 페이지를 할당 할 수있게하는 메커니즘입니다. 이것은 내가 이것에 대한 의미론으로 들어가는 한입니다.
dyasny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.