하드웨어 지원 가상화

Hardware-assisted virtualization

컴퓨팅에서 하드웨어 지원 가상화는 주로 호스트 프로세서에서 하드웨어 기능의 도움을 받아 효율적인 전체 가상화를 가능하게 하는 플랫폼 가상화 접근방식이다.전체 가상화는 수정되지 않은 게스트 운영 체제(호스트 시스템과 동일한 명령 집합을 사용)가 효과적으로 분리하여 실행되는 전체 하드웨어 환경 또는 가상 시스템을 에뮬레이트하는 데 사용된다.하드웨어 지원 가상화는 2005년과 2006년에 x86 프로세서(Intel VT-x 또는 AMD-V)에 추가되었다(존중).

하드웨어 지원 가상화는 가속화된 가상화라고도 하며, Xen은 이를 하드웨어 가상 머신(HVM)이라고 부르고 Virtual Iron은 이를 네이티브 가상화라고 부른다.

역사

하드웨어 지원 가상화는 첫 번째 가상 머신 운영 체제인 VM/370과 함께 사용하기 위해 1972년에 IBM 시스템/370에 처음 등장했다.고화질 컴퓨터 그래픽(예: CAD)에 대한 수요가 증가함에 따라, 메인프레임의 가상화는 마이크로컴퓨터의 상품화를 포괄하는 분산 컴퓨팅을 통한 자원 할당을 촉진했던 1970년대 후반에 어느 정도 주목을 잃었다.

IBMAIX, LinuxIBM i용 IBM Power Systems 하드웨어와 IBM-Mainframes System z용 하드웨어 가상화를 제공한다.IBM은 하드웨어 가상화의 특정 형태를 "논리적 파티션" 또는 더 일반적으로 LPAR이라고 부른다.

x86 서버당 컴퓨팅 용량의 증가(특히 현대 네트워크 대역폭의 상당한 증가)는 가상화 기술에 기반한 데이터 센터 기반 컴퓨팅에 대한 관심을 다시 불러일으켰다.주요 동인은 서버 통합 가능성이었다. 가상화 덕분에 단일 서버는 활용도가 낮은 여러 전용 서버에서 컴퓨팅 성능을 비용 효율적으로 통합할 수 있었다.컴퓨팅의 뿌리로 되돌아가는 가장 눈에 띄는 특징은 높은 대역폭 네트워크를 통한 데이터 센터 기반 컴퓨팅(또는 메인프레임과 같은 컴퓨팅)과 동의어인 클라우드 컴퓨팅이다.그것은 가상화와 밀접하게 연결되어 있다.

초기 구현 x86 아키텍처는 "클래식 가상화"를 달성하기 위한 Popek Goldberg 가상화 요구 사항을 충족하지 못했다.

  • 동등성: VMM(가상 시스템 모니터)에서 실행되는 프로그램은 해당 시스템에서 직접 실행할 때 입증된 동작과 본질적으로 동일한 동작을 나타내야 함
  • 리소스 제어(안전이라고도 함): VMM이 가상화된 리소스를 완전히 제어해야 함
  • 효율성: VMM의 개입 없이 기계 지침의 통계적으로 우세한 부분을 실행해야 함

이로 인해 이러한 유형의 프로세서에 대한 가상 시스템 모니터를 구현하는 것이 어려워졌다.특정 제한사항에는 일부 특권적 지시사항을 함정에 빠뜨릴 수 없는 것이 포함되었다.[1]

이러한 아키텍처의 한계를 보완하기 위해 설계자는 완전한 가상화 또는 반가상화라는 두 가지 방법을 통해 x86 아키텍처의 가상화를 달성했다.[2]둘 다 하드웨어로부터 운영체제 독립성의 목표를 달성하기 위해 물리적 하드웨어에 대한 착각을 일으키지만 성능과 복잡성에서 일부 절충을 제시한다.

  1. 완벽한 가상화는 1세대 x86 VMM에서 구현되었으며, 바이너리 변환에 의존하여 특정 민감하고 가상화할 수 없는 지침의 실행을 포착하고 가상화한다.이 접근 방식을 통해 중요한 지침이 발견되고(런타임에 정적으로 또는 동적으로) 소프트웨어에서 에뮬레이션할 VMM에 대한 트랩으로 대체된다.바이너리 변환은 IBM System/370과 같이 기본적으로 가상화된 아키텍처에서 실행되는 가상 머신에 비해 큰 성능 오버헤드가 발생할 수 있다.VirtualBox, VMware Workstation(32비트 게스트 전용) 및 Microsoft Virtual PC는 완전한 가상화를 상업적으로 구현하는 것으로 잘 알려져 있다.
  2. 반가상화는 하이퍼바이저가 API와 게스트 가상 머신의 OS를 제공하는 기법으로서 API를 호출하여 OS를 수정해야 한다.

2005년과 2006년에 인텔AMD(독립적으로 작동)는 각각 인텔 VT-x와 AMD-V라고 하는 x86 아키텍처에 대한 새로운 프로세서 확장을 만들었다.Itanium 아키텍처에서는 하드웨어 지원 가상화를 VT-i라고 한다.이러한 확장을 지원하는 최초의 x86 프로세서는 2005년 말 2006년 초에 출시되었다.

  • 2005년 11월 13일 인텔은 VT-x를 지원하는 첫 인텔 프로세서로 펜티엄 4(모델 662 및 672)의 2개 모델을 출시하였다.
  • 2006년 5월 23일, AMD는 이 기술을 지원하는 최초의 AMD 프로세서로 Athlon 64("Orleans"), Athlon 64 X2("Windsor") 및 Athlon 64 FX("Windsor")를 출시하였다.

잘 알려진 하드웨어 지원 x86 가상화 구현에는 VMware Workstation(64비트 게스트 전용), XenCenter, Xen 3.x(Virtual Iron과 같은 파생 모델 포함), Linux KVMMicrosoft Hyper-V가 포함된다.

이점

하드웨어 지원 가상화는 게스트 운영 체제에 필요한 변경 사항을 감소(이상적으로, 제거)하므로 반가상화의 유지 보수 오버헤드를 줄인다.더 나은 성과를 얻는 것도 상당히 쉽다.하드웨어 지원 가상화의 실질적인 이점은 VMware[3] 엔지니어 및 Virtual Iron에 의해 언급되었다.

단점들

하드웨어 지원 가상화에는 호스트 CPU에서 명시적인 지원이 필요하며, 일부 x86/x86_64 프로세서에서는 이 지원이 제공되지 않는다.

완전히 수정되지 않은 게스트 운영 체제를 사용하는 "순수한" 하드웨어 지원 가상화 접근 방식에는 많은 VM 트랩과 높은 CPU 오버헤드가 수반되므로 확장성과 서버 통합의 효율성이 제한된다.[4]이러한 성능 적중은 반가상화 드라이버를 사용하여 완화할 수 있으며, 이 조합을 "하이브리드 가상화"[5]라고 부른다.

2006년 1세대 32 및 64비트 x86 하드웨어 지원은 소프트웨어 가상화에 비해 성능상의 이점을 제공하는 경우가 거의 없는 것으로 나타났다.[6]

참고 항목

참조

  1. ^ Adams, Keith. "A Comparison of Software and Hardware Techniques for x86 Virtualization" (PDF). Retrieved 20 January 2013.
  2. ^ Chris Barclay, 2006년 10월 20일 네트워크 월드 x86s 가상화에 대한 새로운 접근 방식
  3. ^ 그래픽I/O 가상화를 참조하십시오.
  4. ^ "하이브리드 가상화: 차세대 XenLinux".2009년 3월 20일 웨이백 머신보관
  5. ^ 나카지마 준과 아싯 K.Malick, "하이브리드 가상화—Linux를 위한 향상된 가상화" 2007년 6월, 오타와 Process of the Linux Symposition에서 Wayback Machine에 2009-01-07 아카이빙
  6. ^ x86 가상화, Keith AdamsOle Ageen, VMware, ASPLOS의 2006년 10월 21일–25일, San Jose, California"놀랍게도 1세대 하드웨어 지원은 기존 소프트웨어 기술에 비해 성능상의 이점을 제공하는 경우가 거의 없다는 것을 알게 되었다.이러한 상황은 높은 VMM/게스트 전환 비용과 이러한 전환의 빈도나 비용 관리에 있어 소프트웨어 유연성을 위한 여지를 거의 남겨두지 않는 경직된 프로그래밍 모델에 기인한다.

추가 읽기