맨위로가기

X86 가상화

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

x86 가상화는 x86 아키텍처에서 가상 머신을 생성하는 기술로, 소프트웨어 기반과 하드웨어 지원 방식으로 나뉜다. 소프트웨어 기반 가상화는 하드웨어 지원 없이 링 권한 축소, 바이너리 변환, 섀도우 메모리, I/O 장치 에뮬레이션을 통해 구현되며, 초기에는 유형 2 하이퍼바이저가 사용되었다. 하드웨어 지원 가상화는 인텔 VT-x와 AMD-V를 통해 특권 명령어를 해결하고 MMU 가상화를 통해 성능을 향상시켰다. 또한, I/O 가상화 기술인 AMD-Vi와 인텔 VT-d를 통해 주변 장치를 가상 머신에 직접 할당할 수 있으며, 인텔 VT-c와 PCI-SIG의 IOV는 네트워크 및 PCI Express 기반 I/O 가상화를 지원한다. x86 가상화 기술은 하이퍼-V, KVM, VirtualBox, VMware 등 다양한 소프트웨어에서 활용되며, SPEC은 가상화 기술의 성능 비교를 위한 벤치마크를 개발하고 있다.

더 읽어볼만한 페이지

  • 가상 머신 - V8 (자바스크립트 엔진)
    V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다.
  • 가상 머신 - HHVM
    HHVM은 페이스북에서 개발한 PHP 및 Hack 언어 실행 엔진으로, JIT 컴파일을 통해 높은 성능을 제공하며 웹 개발 분야에 새로운 가능성을 제시했다.
  • X86 아키텍처 - 물리 주소 확장
    물리 주소 확장(PAE)은 x86 아키텍처에서 32비트 주소를 36비트 이상으로 확장하여 CPU가 4GB 초과 물리 메모리에 접근하도록 하는 기술로, 페이지 테이블 확장 및 추가 페이지 테이블을 통해 최대 64GB 메모리를 지원하며 AMD64 아키텍처에서 가상 주소 공간 확장에 사용되고 운영 체제, 칩셋, 마더보드의 지원이 필요하며 CPUID 플래그로 지원 여부를 확인한다.
  • X86 아키텍처 - 제온 파이
    제온 파이는 인텔에서 개발한 x86 기반 메니코어 프로세서로, 나이츠 페리, 나이츠 코너, 나이츠 랜딩, 나이츠 밀 등의 모델이 있으며, AVX-512 명령어 세트 지원을 통해 고성능 컴퓨팅 환경에서 복잡한 연산을 효율적으로 처리하는 데 중점을 둔다.
  • 가상화 소프트웨어 - VM웨어 v스피어
    VM웨어 v스피어는 VM웨어에서 개발한 서버 가상화 플랫폼으로, 다양한 운영체제 지원, 가상 시스템 확장, vMotion 개선, 스토리지 관리 효율성 향상 등의 특징을 가지며 클라우드 환경 지원 강화 및 관리 효율성 증대에 초점을 맞추어 지속적으로 업데이트되고 있다.
  • 가상화 소프트웨어 - 가상 머신
    가상 머신은 실제 컴퓨터를 복제하여 하드웨어 없이 가상 컴퓨터를 구현하며, 시스템 가상 머신과 프로세스 가상 머신으로 발전하여 가상화 기술을 통해 다양한 기능을 제공한다.
X86 가상화
일반 정보
종류하드웨어 지원 가상화
유형가상화 기술
개발인텔 (VT-x), AMD (AMD-V)
아키텍처x86, x86-64
특징
주요 목표가상 머신 모니터(하이퍼바이저)의 성능 향상
하드웨어 지원을 통해 더 효율적인 가상화 제공
작동 방식CPU에 새로운 명령어 추가하여 가상 머신 관리 효율성 증대
게스트 운영 체제 권한 수준을 낮추어 보안 강화
이점향상된 성능 및 확장성
강화된 보안
실시간 마이그레이션 및 전력 관리와 같은 고급 기능 지원
기술
인텔 가상화 기술VT-x (Virtualization Technology for x86)
AMD 가상화 기술AMD-V (AMD Virtualization)
활용
사용 분야서버 가상화
데스크톱 가상화
클라우드 컴퓨팅
임베디드 시스템
예시VMware, Xen, KVM, Hyper-V 와 같은 하이퍼바이저
기타 정보
관련 용어하이퍼바이저
가상 머신
게스트 운영 체제
호스트 운영 체제
추가 설명x86 가상화는 CPU 제조업체에서 제공하는 하드웨어 지원 가상화 기술로, 가상 머신 성능을 향상시키고 더 안전하고 효율적인 가상화 환경을 제공한다.

2. 소프트웨어 기반 가상화

소프트웨어 기반 가상화는 하드웨어 지원 없이 가상 머신을 생성하는 기술이다. x86 아키텍처는 원래 가상화를 염두에 두고 설계되지 않았기 때문에, 소프트웨어 기반 가상화는 여러 가지 기술적 어려움을 극복해야 했다.

초기 x86 가상화는 주로 호스트 OS 내에서 게스트 OS를 실행하는 방식(유형 2 하이퍼바이저)이었다.[9] 일부 플랫폼에서는 기본 프로세서가 64비트이고 필요한 가상화 확장을 지원하는 경우, 32비트 호스트 OS에서 64비트 게스트를 실행할 수 있다.

2000년 2월 8일, VMware는 최초의 x86 가상화 제품인 "VMware Virtual Platform"을 출시했다.[57] 이는 스탠퍼드 대학교에서 수행했던 연구 결과를 기반으로 하며, 1998년 10월에 특허 출원하여 2002년 5월 28일에 특허를 취득했다. VMware는 특정 명령어 실행을 포착하여 동적으로 바꾸는 동적 명령어 변환 기법을 사용했는데, 이는 IBM System/370 등 가상화가 가능한 아키텍처에 비해 성능 오버헤드가 있었다.

Kevin Lawton은 x86 가상화를 위한 자유 소프트웨어 Plex86 프로젝트를 시작했다. 그는 "IA32 PC에서 가상화 기법을 사용하여 여러 운영 체제를 동시에 실행"[57]이라는 논문에서 x86 아키텍처 가상화의 어려움과 대처 방법을 논했다.

오픈 소스 진영에서도 x86 가상화 시도가 있었다. Bochs, QEMU, VirtualBox(초기에는 독점 소프트웨어였으나 최종적으로 GPL 라이선스)는 x86 프로세서 명령어 실행을 에뮬레이트하는 방식을 채택했다. KVM에서는 QEMU가 CPU를 비롯한 주변 장치 에뮬레이션을 담당한다.

마이크로소프트는 Connectix에서 얻은 기술을 기반으로 한 Virtual PC(Microsoft Virtual PC), Virtual Server(Microsoft Virtual Server) 그리고 Hyper-V 등 Windows 기반 x86 가상화 제품을 제공한다.

현재 x86 가상화를 수행하는 소프트웨어 대부분은 하드웨어 가상화 지원을 이용한 완전 가상화를 구현하고 있다.

2. 1. 작동 방식

보호 모드에서 운영 체제 커널은 0과 같은 높은 권한으로 실행되고, 응용 프로그램은 링 3과 같은 낮은 권한으로 실행된다. 소프트웨어 기반 가상화에서 호스트 OS는 하드웨어에 대한 직접 액세스 권한을 가지는 반면, 게스트 OS는 호스트 OS의 다른 응용 프로그램과 마찬가지로 하드웨어에 대한 액세스 권한이 제한된다. x86 소프트웨어 기반 가상화에서 이러한 제한을 극복하기 위해 사용되는 한 가지 방법은 '링 권한 축소'라고 하며, 이는 게스트 OS를 0보다 높은 링(권한이 낮은)에서 실행하는 것을 포함한다.[2]

보호 모드의 가상화를 가능하게 한 세 가지 기술은 다음과 같다.

  • 바이너리 변환: 링 0 명령어 중 특정 명령어(예: POPF)를 링 3 명령어로 다시 작성하는 데 사용된다. 이러한 명령어는 링 0 이상에서 실행될 경우 자동으로 실패하거나 다르게 동작한다.[3][4] 이로 인해 클래식 트랩 및 에뮬레이션 가상화가 불가능해진다.[4][5] 성능을 향상시키기 위해 변환된 기본 블록은 코드 패칭(예: VxD에서 사용됨), 게스트 OS에 의한 페이지 재사용 또는 자체 수정 코드를 감지하는 일관된 방식으로 캐시되어야 한다.[6]
  • 섀도잉: 프로세서에서 사용하는 여러 중요한 데이터 구조를 섀도잉해야 한다. 대부분의 운영 체제는 페이징 가상 메모리를 사용하며, 게스트 OS에 MMU에 대한 직접 액세스 권한을 부여하면 가상화 관리자의 제어가 상실된다. 따라서 '섀도우 페이지 테이블'이라고 하는 기술을 사용하여 게스트 OS에 대한 x86 MMU의 작업 일부를 소프트웨어에서 복제해야 한다.[7][4] 이는 액세스 시도를 트래핑하고 대신 소프트웨어에서 에뮬레이션하여 게스트 OS가 실제 페이지 테이블 항목에 액세스하지 못하도록 하는 것을 포함한다. x86 아키텍처는 프로세서에 세그먼트 디스크립터를 저장하기 위해 숨겨진 상태를 사용하므로, 세그먼트 디스크립터가 프로세서에 로드되면 로드된 메모리는 덮어쓸 수 있으며 프로세서에서 디스크립터를 다시 가져올 방법이 없다. 따라서 게스트 OS가 디스크립터 테이블에 대한 변경 사항을 추적하기 위해 '섀도우 디스크립터 테이블'을 사용해야 한다.[5]
  • I/O 장치 에뮬레이션: 게스트 OS에서 지원되지 않는 장치는 호스트 OS에서 실행되는 장치 에뮬레이터에 의해 에뮬레이션되어야 한다.[9]


이러한 기술은 IBM System/370과 같은 기본적으로 가상화 가능한 아키텍처에서 실행되는 VM과 비교하여 MMU 가상화 지원 부족으로 인해 약간의 성능 오버헤드가 발생한다.[4][8]

2. 2. 논쟁

VMware 연구원들은 2006년 ASPLOS 논문에서 x86 플랫폼이 Popek과 Goldberg의 가상화 요구 사항을 충족한다고 지적했다.[4] 하지만, 이는 클래식 트랩 및 에뮬레이션 기술을 사용하지 않았기 때문에 논쟁의 여지가 있었다.[4]

초기 x86 가상화는 주로 호스트 OS 내에서 게스트 OS를 실행하는 방식(유형 2 하이퍼바이저)이었으므로, 하드웨어 지원 없이 x86 아키텍처가 Popek과 Goldberg의 요구 사항을 만족하는지에 대한 논쟁이 있었다.[9]

Denali, L4, Xen과 같은 시스템은 패러가상화 방식을 사용하여 성능 문제를 해결하려 했다.[10] 패러가상화는 가상화하기 어려운 x86 명령어 집합의 일부를 구현하지 않는 대신, 운영 체제를 수정하여 가상 머신에서 실행되도록 하는 방식이다.

초기 x86-64 (AMD64)는 롱 모드에서 세분화 지원이 부족하여 소프트웨어 기반 가상화에 제약이 있었다.[11][12] 그러나 이후 AMD 프로세서들은 롱 모드에서 세분화를 지원하여 64비트 게스트 실행이 가능해졌다. 인텔은 x86-64 구현(Intel 64)에 세분화 지원을 추가하지 않았지만, Intel VT-x 지원을 통해 64비트 하드웨어 지원 가상화를 가능하게 했다.[13][14]

2000년 2월 8일, VMware는 최초의 x86 가상화 제품인 "VMware Virtual Platform"을 출시했다.[57] 이는 스탠퍼드 대학교에서의 연구 결과를 기반으로 하며, 1998년에 특허 출원되어 2002년에 특허를 취득했다.

2. 3. 패러가상화 (준가상화)

Denali, L4 마이크로커널 계열, Xen과 같은 실험적 시스템은 원래 하드웨어와 가상 머신의 구현을 바꿈으로써 x86 가상화의 고성능화를 추구했다. 운영 체제(OS)를 해당 가상 머신으로 이식함으로써 x86 명령어 집합에서 가상화하기 어려운 부분을 구현할 필요가 없도록 하는 방식이다. 이 기법을 패러가상화(준가상화)라고 부른다.[57]

이후 Xen 3.0에서는 하드웨어 가상화 지원을 이용한 완전 가상화도 지원하여 운영 체제에 전혀 변경을 가할 필요가 없게 되었다.

3. 하드웨어 지원 가상화

인텔AMD는 x86 아키텍처에 대한 가상화 확장을 독자적으로 개발했다. 이들은 서로 직접 호환되지는 않지만, 주요 기능들은 거의 같다. 가상 머신 하이퍼바이저는 수정되지 않은 게스트 운영 체제를 에뮬레이션 성능 손실 없이 구동할 수 있다.[76]

x86 플랫폼에서의 가상화 기술은 "'''하드웨어 가상화 지원 기능'''"(HAV: Hardware-Assisted Virtualization)이라고 불린다.

하드웨어 가상화 지원 기능은 마이크로프로세서 제조사마다 구현이 다르다. 인텔(Intel) 제품에는 '''인텔 가상화 기술''' ('''인텔 VT'''), AMD(Advanced Micro Devices) 제품에는 '''AMD 가상화''' ('''AMD-V''')를 중심으로 한 다양한 가상화 지원 기술이 탑재되어 있다.

3. 1. 중앙 처리 장치 (CPU)

인텔AMD는 각각 독자적으로 x86 아키텍처의 가상화 확장을 개발했다. 양사의 구현은 완벽하게 호환되지는 않지만, 기능은 거의 동일하다. 어느 경우든 가상 머신 하이퍼바이저에서 게스트 OS를 수정하지 않고도 작동시킬 수 있으며, 에뮬레이션 성능도 종전보다 크게 향상된다.[76]

x86 플랫폼에서의 가상화 기술은 "'''하드웨어 가상화 지원 기능'''"(HAV: Hardware-Assisted Virtualization)이라고 불린다.

하드웨어 가상화 지원 기능은 마이크로프로세서 제조사마다 구현이 다르다. 인텔(Intel) 제품에는 '''인텔 가상화 기술''' ('''인텔 VT'''), AMD(Advanced Micro Devices) 제품에는 '''AMD 가상화''' ('''AMD-V''')를 중심으로 한 다양한 가상화 지원 기술이 탑재되어 있다.

AMD는 IOMMU 기술 규격을 AMD-V에 추가하였다. 인텔[75] 가상화 기술(인텔 VT)은 IA-32 (VT-x), IA-64 (VT-i), Directed I/O (VT-d), Connectivity (VT-c)를 위한 가상화 기술로 구성되어 있다.

3. 1. 1. 가상 8086 모드

인텔 80286은 보호 모드에서 동시에 여러 DOS 애플리케이션을 원활하게 실행할 수 없었기 때문에, 인텔80386 칩에 가상 8086 모드를 도입하여 80386 및 후속 칩에서 가상화된 8086 프로세서를 제공하였다. 그러나 보호 모드 자체를 가상화하기 위한 하드웨어 지원은 20년 후에야 등장했다.[15]

3. 1. 2. AMD 가상화 (AMD-V)

AMD 가상화(AMD-V)는 AMD가 개발한 x86 아키텍처용 가상화 확장 기술이다. 코드명 "Pacifica"로 개발되었으며, 초기에는 SVM (Secure Virtual Machine)으로 알려졌으나, 나중에 ''AMD Virtualization''의 약칭인 ''AMD-V''로 출시되었다.[16]

AMD-V는 소켓 AM2 (소켓 939 아님)의 "F"나 "G" 계열 애슬론 64, 애슬론 64 X2, 튜리온 64 X2, 옵테론 2세대[73] 및 3세대[74], 페넘 이후 프로세서와 APU Fusion 프로세서에 탑재되어 있다. 소켓 939 프로세서는 지원하지 않으며, AMD-V를 지원하는 유일한 셈프론 프로세서는 APU와 셈프론 "Huron", 셈프론 "Regor", 셈프론 "Sargas" 데스크톱 CPU이다.

빠른 가상화 인덱싱(개발 당시에는 중첩 페이지 테이블로 알려짐)이라는 2세대 하드웨어 가상화 기술은 Family 0x10 바르셀로나 라인부터 시작하는 AMD 옵테론 CPU와 페넘 II CPU에 적용되었으며, 나중에 인텔이 확장 페이지 테이블(EPT)로 채택했다.

2019년 현재, 모든 젠 기반 AMD 프로세서는 AMD-V를 지원한다.

AMD-V의 CPU 플래그는 "svm"이며, BSD 파생물에서는 dmesg 또는 sysctl을 통해, 리눅스에서는 `/proc/cpuinfo`를 통해 확인할 수 있다.[20] AMD-V 명령어에는 VMRUN, VMLOAD, VMSAVE, CLGI, VMMCALL, INVLPGA, SKINIT, STGI가 있다.

일부 마더보드에서는 애플리케이션이 AMD-V를 사용하려면 사용자가 BIOS 설정에서 AMD SVM 기능을 활성화해야 한다.[19]

AMD 페넘 다이

3. 1. 3. 인텔 가상화 기술 (인텔 VT-x)

Intel Core i7(Bloomfield) CPU


코드명 "Vanderpool"로 알려진 VT-x는 인텔의 x86 플랫폼 가상화 기술이다.[20] 2005년 11월 13일, 인텔은 펜티엄 4(모델 662 및 672)를 VT-x를 지원하는 최초의 프로세서로 출시했다. VT-x 기능의 CPU 플래그는 "vmx"이며, Linux에서는 /proc/cpuinfo를 통해, macOS에서는 sysctl machdep.cpu.features를 통해 확인할 수 있다.[20]

"VMX"는 가상 머신 확장(Virtual Machine Extensions)을 의미하며, VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON, INVEPT, INVVPID, VMFUNC 등 13개의 새로운 명령어를 포함한다.[21] 이 명령어들은 가상 실행 모드의 시작과 종료를 제어하고, 게스트 OS가 완전한 권한(링 0)으로 실행되는 것처럼 인식하게 하면서도 호스트 OS의 보호 상태를 유지한다.

현재 대부분의 서버, 데스크톱 및 모바일 인텔 프로세서는 VT-x를 지원하지만, 일부 인텔 아톰 프로세서는 예외이다.[22] 일부 마더보드에서는 VT-x 기능을 사용하기 전에 BIOS 설정에서 활성화해야 한다.[23]

인텔은 2008년 네할렘 아키텍처부터 페이지 테이블 가상화 기술인 확장 페이지 테이블(EPT)을 도입했다.[24][25][26][27] 2010년에는 웨스트미어에서 논리 프로세서를 실모드에서 직접 실행하는 "무제한 게스트" 기능을 지원하기 시작했으며, 이 기능은 EPT 작동을 필요로 한다.[28][29]

2013년 발표된 해즈웰 마이크로아키텍처부터 인텔은 VMM의 중첩 가상화를 가속화하는 기술인 ''VMCS 섀도잉''을 포함하기 시작했다.[30] ''가상 머신 제어 구조''(VMCS)는 메모리 내에 존재하는 데이터 구조로, VM당 하나씩 존재하며 VMM에 의해 관리된다. VM 간 실행 컨텍스트가 변경될 때마다 현재 VM의 VMCS가 복원되어 가상 프로세서 상태를 정의한다.[31] 하나 이상의 VMM 또는 중첩된 VMM이 사용될 때, 섀도우 페이지 테이블 관리와 유사한 문제가 발생한다. 이 경우 VMCS는 여러 번(중첩된 경우) 섀도잉되어야 하며, 프로세서의 하드웨어 지원 없이는 소프트웨어로 부분 구현해야 한다. 인텔은 VMCS 섀도잉에 대한 하드웨어 지원을 구현하여 섀도우 VMCS 처리를 효율적으로 만들었다.[32]

3. 1. 4. VIA 가상화 (VIA VT)

VIA 나노 3000 시리즈 프로세서 이상은 인텔 VT-x와 호환되는 VIA VT 가상화 기술을 지원한다.[33] EPT는 VIA 쿼드코어-E 및 에덴 X4와 유사한 나노 C4350AL의 후속 제품인 주신 ZX-C에 존재한다.[34]

3. 1. 5. 인터럽트 가상화 (AMD AVIC 및 인텔 APICv)

AMD와 인텔은 가상 환경에서 인터럽트 오버헤드를 줄이기 위한 기술을 개발했다. AMD의 AVIC (Advanced Virtual Interrupt Controller)와 인텔의 APICv (APIC virtualization)가 이에 해당한다.

2012년, AMD는 AVIC를 발표했다.[35] AVIC는 2016년부터 AMD 15h 계열 6Xh(Carrizo) 프로세서 및 그 이후 모델에서 사용 가능하다.[37]

같은 해인 2012년, 인텔은 인터럽트 및 APIC 가상화를 위한 유사한 기술을 발표했다.[38] 이 기술은 나중에 APICv로 명명되었으며,[39] Ivy Bridge EP 계열 인텔 CPU (Xeon E5-26xx v2는 2013년 말, Xeon E5-46xx v2는 2014년 초 출시)에서 상용화되었다.[40]

3. 2. 칩셋

메모리 및 입출력 가상화는 칩셋에 의해 수행된다.[41] 이러한 기능을 사용하려면 일반적으로 BIOS에서 활성화해야 하며, BIOS는 이러한 기능을 지원하고 사용하도록 설정되어야 한다.

인텔과 AMD는 x86 아키텍처의 가상화 확장을 독자적으로 개발했다. 양사의 구현은 완벽하게 호환되지는 않지만, 기능은 거의 동일하다. 어느 경우든 가상 머신 하이퍼바이저에서 게스트 OS를 수정하지 않고도 작동시킬 수 있으며, 성능도 종전보다 크게 향상된다. x86 플랫폼에서의 가상화 기술은 "'''하드웨어 가상화 지원 기능'''"(HAV: Hardware-Assisted Virtualization)이라고 불린다.

하드웨어 가상화 지원 기능은 마이크로프로세서 벤더마다 구현이 다르다. 인텔(Intel) 제품에는 '''Intel Virtualization Technology''' ('''Intel VT'''), AMD(Advanced Micro Devices) 제품에는 '''AMD Virtualization''' ('''AMD-V''')을 중심으로 한 다양한 가상화 지원 기술이 탑재되어 있다.

3. 2. 1. I/O MMU 가상화 (AMD-Vi 및 인텔 VT-d)

입출력 메모리 관리 장치(IOMMU)는 가상 머신(VM)이 이더넷, 가속 그래픽 카드, 하드 드라이브 컨트롤러와 같은 주변 장치를 직접 메모리 액세스(DMA) 및 인터럽트 재매핑을 통해 직접 사용할 수 있도록 한다. 이것은 'PCI 패스스루'라고도 불린다.[42]

IOMMU는 운영 체제의 메모리 주소 공간보다 작은 메모리 주소 공간을 가진 주변 장치와의 통신을 돕고, 버그나 악성 하드웨어가 DMA 공격으로 메모리 보안을 손상시키는 것을 방지한다.

AMD와 인텔은 모두 IOMMU 사양을 발표했다.

  • AMD의 I/O 가상화 기술인 "AMD-Vi"(원래 "IOMMU"라고 함)[43]
  • 인텔의 "지시형 I/O를 위한 가상화 기술"(VT-d)[44]는 코어 2 아키텍처 이후 대부분의 하이엔드(하지만 모든 것은 아님) 인텔 프로세서에 포함되어 있다.[45]


CPU 지원 외에도 마더보드 칩셋과 시스템 펌웨어(BIOS 또는 UEFI) 모두 IOMMU I/O 가상화 기능을 완벽하게 지원해야 사용할 수 있다. '기능 수준 재설정'(FLR)을 지원하는 PCI 또는 PCI Express 장치만 이러한 방식으로 가상화할 수 있다.[46][47] 할당할 장치가 메시지 신호 인터럽트(MSI)를 지원하지 않는 경우, 다른 장치와 인터럽트 라인을 공유해서는 안 된다.[48] PCI/PCI-X-PCI Express 브리지 뒤에 라우팅된 모든 기존 PCI 장치는 동시에 가상 머신에 할당할 수 있다. PCI Express 장치에는 이러한 제한이 없다.

3. 2. 2. 네트워크 가상화 (인텔 VT-c)

인텔의 I/O 가상화를 지원하는 관련 기술들로, 가상 머신 장치 큐(Virtual Machine Device Queues, VMDq), 인텔 I/O 가속 기술(Intel I/O Acceleration Technology, I/OAT), 단일 루트 I/O 가상화(Single Root I/O Virtualization)로 구성된다.[65]

3. 2. 3. PCI-SIG의 I/O 가상화 (IOV)

PCI-SIG이 표준화하고 있는, PCI Express 기반의 네이티브 하드웨어 I/O 가상화 기술의 총칭이다.[66] IOV를 지원하는 디바이스는 게스트 OS 간에 하나의 리소스를 공유할 수 있다.

IOV는 I/O 가상화에 관하여 다음과 같은 사양을 정의한다.

  • 주소 변환 서비스 규격 (ATS)

: '''Address translation services'''는 주소의 교환 및 변환에 사용하는 PCI Express용 변환 구성 요소에 관한 사양을 정의한다.

  • 단일 루트 디바이스 공유 규격 (SR-IOV)

: '''Single-root IOV'''는 기존 시스템과 같이 루트가 하나만 존재하는 PCI Express 토폴로지에서 네이티브 I/O 가상화를 지원한다. 즉, 하나의 물리적 컴퓨터에서 가상화 지원을 수행하는 것이다.

  • 다중 루트 디바이스 공유 규격 (MR-IOV)

: '''Multi-root IOV'''는 블레이드 서버와 같이 PCI Express를 공유하는 복합적인 다중 루트 계층을 가진 환경에서 SR-IOV를 전제로 네이티브 I/O 가상화를 지원한다. 즉, SR-IOV를 갖춘 여러 대의 물리적 컴퓨터 간에 하드웨어 가상화 지원 및 공유를 수행하는 것이다.

4. 가상화 기술을 사용하는 소프트웨어

다음은 x86 가상화 기술을 사용하는 소프트웨어 목록이다.


  • 블루 필 (악성코드)
  • 하이퍼-V
  • 커널 기반 가상 머신 (KVM)
  • LynxSecure
  • 마이크로소프트 버추얼 서버
  • 윈도우 서버 2008
  • 오라클 VM
  • 페러럴즈 워크스테이션, 페러럴즈 데스크톱 포 맥
  • 페러럴즈 서버 (베타)
  • 패디드 셀
  • 실시간 운영 체제
  • 썬 xVM
  • 버추얼박스
  • 버추얼 아이언
  • 버추얼로직스
  • VMWare 워크스테이션
  • VMWare ESX 서버
  • VMWare 서버
  • [67]
  • 하이퍼-V(Hyper-V): 이전 명칭은 Windows Server Virtualization이다. 여러 개의 가상 서버를 실행하는 기능이 있으며, 하드웨어 가상화 지원(Intel VT-x, AMD-V)이 필수적이다. Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows 8 Pro, Windows 8 Enterprise, Windows 8.1 Pro, Windows 8.1 Enterprise에서 제공된다.[68]
  • 커널 기반 가상 머신(Kernel-based Virtual Machine, KVM): Linux 커널 모듈 형식의 하이퍼바이저. 하드웨어 가상화 지원(Intel VT-x, AMD-V)이 필수적이다. CPU를 비롯한 주변 장치 에뮬레이션에 QEMU를 사용한다.
  • Microsoft Virtual PC
  • Virtual PC 2007: Intel VT-x 및 AMD-V 지원.
  • Windows Virtual PC: Windows 7 전용. Intel VT-x 및 AMD-V 지원.
  • Microsoft Virtual Server: Virtual Server 2005 R2 SP1은 하드웨어 지원 가상화를 지원한다.[69][70]
  • Parallels Workstation 및 Parallels Desktop for Mac: 경량 하이퍼바이저. Intel VT-x 및 AMD-V 지원.
  • VirtualBox: Intel VT-x 및 AMD-V 지원.[71]
  • VMware
  • VMware Workstation: Intel VT-x 및 AMD-V 지원.[72]
  • VMware Player: Intel VT-x 및 AMD-V 지원. 3.0 버전부터 공식적으로 게스트 OS를 생성할 수 있게 되었다.
  • VMware Fusion
  • VMware ESX Server: ESX Server 3.5에서는 Intel VT-x를 64비트 게스트를 실행하기 위해서만 사용한다.
  • VMware Server: Intel VT-x 및 AMD-V 지원.
  • Xen: Xen 3.0.2에서 Intel VT-x 및 AMD-V 지원. Xen 3.2.1에서 Intel VT-d 지원. Xen 3.3에서는 Intel VT-c 지원 예정.

5. 성능

SPEC(Standard Performance Evaluation Corporation)은 가상화 기술 성능 비교의 업계 표준 방식을 확립하기 위한 작업반을 설립했다. 현재 회원은 AMD, 델(Dell), 후지쯔(Fujitsu), 지멘스(Siemens), HP, 인텔(Intel), IBM(International Business Machines), 썬 마이크로시스템즈, SWsoft, VMware이다. SPEC은 현재 최고의 벤치마크를 개발하기 위해 정보를 수집하고 있다.

참조

[1] 논문 A Comparison of Software and Hardware Techniques for x86 Virtualization http://www.vmware.co[...] VMware 2006-10-25
[2] 웹사이트 Intel Virtualization Technology Processor Virtualization Extensions and Intel Trusted execution Technology http://software.inte[...] Intel.com 2007
[3] 웹사이트 USENIX Technical Program - Abstract - Security Symposium - 2000 http://www.usenix.or[...] Usenix.org 2002-01-29
[4] 웹사이트 A Comparison of Software and Hardware Techniques for x86 Virtualization http://www.vmware.co[...] VMware 2010-09-08
[5] 특허 US patent 6397242
[6] 특허 US patent 6704925
[7] 웹사이트 Virtualization: architectural considerations and other evaluation criteria http://www.vmware.co[...] VMware 2010-09-08
[8] 웹사이트 VMware and Hardware Assist Technology http://download3.vmw[...] 2010-09-08
[9] 특허 US patent 6496847
[10] 웹사이트 Xen and the Art of Virtualization http://www.cl.cam.ac[...]
[11] 웹사이트 How retiring segmentation in AMD64 long mode broke VMware http://www.pagetable[...] Pagetable.com 2006-11-09
[12] 웹사이트 VMware and CPU Virtualization Technology http://download3.vmw[...] VMware 2010-09-08
[13] 웹사이트 VMware KB: Hardware and firmware requirements for 64bit guest operating systems http://kb.vmware.com[...] Kb.vmware.com 2010-05-02
[14] 웹사이트 Software and Hardware Techniques for x86 Virtualization http://www.vmware.co[...] 2010-05-02
[15] 웹사이트 Sending software to do hardware's job | Hardware - InfoWorld http://www.infoworld[...] Images.infoworld.com 2004-11-05
[16] 웹사이트 33047_SecureVirtualMachineManual_3-0.book http://www.mimuw.edu[...]
[17] 웹사이트 What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors? http://www.amd.com/u[...] 2012-02-04
[18] 웹사이트 What virtualization enhancements do Quad-Core AMD Opteron processors feature? http://www.amd.com/u[...] 2012-02-04
[19] 웹사이트 How to enable Intel VTx and AMD SVM? https://www.qnap.com[...] QNAP Systems, Inc. 2020-12-23
[20] 웹사이트 How to start Intel hardware-assisted virtualization hypervisor on Linux to speed up Intel Android x86 Gingerbread emulator http://software.inte[...] Intel 2012-11-25
[21] 웹사이트 Intel® 64 and IA-32 Architectures Software Developer's Manual http://software.inte[...] Intel Corporation 2019-10
[22] 웹사이트 Intel Virtualization Technology List http://ark.intel.com[...] Ark.intel.com 2010-05-02
[23] 웹사이트 Windows Virtual PC: Configure BIOS http://www.microsoft[...] Microsoft 2010-09-08
[24] 논문 Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization http://download.inte[...] Intel 2006
[25] 웹사이트 Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d http://software.inte[...] Intel 2007-11-12
[26] 보도자료 First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem) http://www.intel.com[...] Intel 2008-07-06
[27] 웹사이트 Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology http://download.inte[...] Intel 2009-03-25
[28] 논문 Intel added unrestricted guest mode on Westmere micro-architecture and later Intel CPUs, it uses EPT to translate guest physical address access to host physical address. With this mode, VMEnter without enable paging is allowed. http://2013.asiabsdc[...]
[29] 웹사이트 If the “unrestricted guest” VM-execution control is 1, the “enable EPT” VM-execution control must also be 1 https://web.archive.[...]
[30] 웹사이트 4th-Gen Intel Core vPro Processors with Intel VMCS Shadowing http://www-ssl.intel[...] Intel 2014-12-16
[31] 웹사이트 Understanding Intel Virtualization Technology (VT) http://download.micr[...] 2014-09-01
[32] 웹사이트 The 'what, where and why' of VMCS shadowing http://searchserverv[...] 2014-09-01
[33] 보도자료 VIA Introduces New VIA Nano 3000 Series Processors http://www.via.com.t[...] VIA 2013-01-22
[34] 웹사이트 Notebook Solution: Kaixian ZX-C Processor + VX11PH Chipset http://en.zhaoxin.co[...] Zhaoxin
[35] 프레젠테이션 Introduction of AMD Advanced Virtual Interrupt Controller http://www.slideshar[...] 2012
[36] 웹사이트 Next-generation Interrupt Virtualization for KVM http://www.linuxplum[...] AMD 2012-08-01
[37] 웹사이트 [Xen-devel] [RFC PATCH 0/9] Introduce AMD SVM AVIC http://www.mail-arch[...] 2018-05-04
[38] 웹사이트 Reviewing Unused and New Features for Interrupt/APIC Virtualization http://www.linuxplum[...] Intel 2012-12-13
[39] 웹사이트 APIC Virtualization Performance Testing and Iozone http://software.inte[...] 2013-12-17
[40] 웹사이트 Product Brief Intel Xeon Processor E5-4600 v2 Product Family http://www.intel.com[...] Intel 2014-03-14
[41] 웹사이트 Intel platform hardware support for I/O virtualization http://www.intel.com[...] Intel.com 2006-08-10
[42] 웹사이트 Linux virtualization and PCI passthrough http://www.ibm.com/d[...] IBM 2010-11-10
[43] 웹사이트 AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.26 http://support.amd.c[...]
[44] 웹사이트 Intel Virtualization Technology for Directed I/O (VT-d) Architecture Specification http://www.intel.com[...]
[45] 웹사이트 Intel Virtualization Technology for Directed I/O (VT-d) Supported CPU List http://ark.intel.com[...] Ark.intel.com
[46] 웹사이트 PCI-SIG Engineering Change Notice: Function Level Reset (FLR) http://www.pcisig.co[...] 2006-06-27
[47] 웹사이트 Xen VT-d http://wiki.xen.org/[...] 2013-06-06
[48] 웹사이트 How to assign devices with VT-d in KVM http://www.linux-kvm[...] 2014-04-23
[49] 웹사이트 Intel Virtualization Technology for Connectivity (VT-c) http://www.intel.com[...] Intel.com
[50] 웹사이트 PCI-SIG I/O Virtualization (IOV) Specifications http://www.pcisig.co[...] Pcisig.com 2011-03-31
[51] 웹사이트 Intel Look Inside: Intel Ethernet http://www.intel.com[...] Intel 2014-11-27
[52] 웹사이트 SR-IOV Networking in Xen: Architecture, Design and Implementation http://www.usenix.or[...] USENIX 2008-01-01
[53] 웹사이트 An Introduction to Intel Flexible Port Partitioning Using SR-IOV Technology http://www.intel.com[...] Intel 2011-09-01
[54] 웹사이트 NASA's Flexible Cloud Fabric: Moving Cluster Applications to the Cloud http://www.intel.com[...] Intel
[55] 웹사이트 Enhanced Networking in the AWS Cloud http://blogs.scalabl[...] Scalable Logic 2013-12-31
[56] 웹사이트 Enhanced Networking in the AWS Cloud - Part 2 http://blogs.scalabl[...] Scalable Logic 2013-12-31
[57] 웹사이트 Running multiple operating systems concurrently on an IA32 PC using virtualization techniques http://www.floobydus[...]
[58] 웹사이트 Software Developer FAQ: Intel® Virtualization Technology http://software.inte[...] Intel Corporation 2009-11-10
[59] 웹사이트 What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors? http://www.amd.com/u[...]
[60] 웹사이트 RVI (Rapid Virtualization Indexing) に対応するAMD Virtualization™ (AMD-V™) http://www.amd.com/j[...]
[61] 웹사이트 AMD Virtualization™ (AMD-V™) Technology http://www.amd.com/j[...]
[62] 웹사이트 Windows Server 2008 R2の目玉機能「Hyper-V 2.0テクノロジ」とは - @IT https://atmarkit.itm[...] 2000-2013 ITmedia Inc. / atmarkit.co.jp 2009-10-22
[63] 웹사이트 Mainstreaming Server Virtualization: The Intel Approach http://www.intel.com[...]
[64] 웹사이트 AMD I/O Virtualization Technology (IOMMU) Specification Revision 1.0 http://www.amd.com/u[...]
[65] 보도자료 Intel Virtualization Technology for Connectivity http://softwarecommu[...] Intel
[66] 웹사이트 PCI-SIG I/O Virtualization http://www.pcisig.co[...] Pcisig.com
[67] 문서 오늘날 널리 보급된 가상화 시스템의 대부분은 AMD-V를 지원하지만, 소프트웨어나 소프트웨어 버전에 따라 NPT를 지원하지 않는 가상화 시스템도 현재 사용되고 있다.
[68] 웹사이트 Windows Server 2008 Hyper-V FAQ - Setup and Requirements http://www.microsoft[...] Microsoft
[69] 웹사이트 Virtual Server 2005 R2 SP1 Beta 1 download link and availability details http://blogs.technet[...] technet.com 2006-04-28
[70] 웹사이트 Virtual Server 2005 R2 SP1 - beta 2 feature listing http://www.microsoft[...] Microsoft
[71] 웹사이트 VirtualBox architecture http://www.virtualbo[...] InnoTek 2008-08-23
[72] 웹사이트 VMware Products and Hardware-Assisted Virtualization (VT-x/AMD-V) http://communities.v[...] VMware, Inc. 2009-03-16
[73] 웹사이트 AMD Opteron™ Processor FAQs http://www.amd.com/u[...]
[74] 웹사이트 AMD Opteron™ Processor FAQs http://www.amd.com/u[...]
[75] 웹사이트 http://ark.intel.com
[76] 웹인용 보관된 사본 http://www.theinquir[...] 2008-09-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com