하이퍼바이저

Hypervisor

하이퍼바이저(또는 가상 시스템 모니터, VMM, virtualizer)는 에뮬레이터와 유사하며, 가상 시스템을 생성하고 실행하는 것은 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어다.하이퍼바이저가 하나 이상의 가상 시스템을 실행하는 컴퓨터를 호스트 시스템이라고 하며 각 가상 시스템을 게스트 시스템이라고 한다.하이퍼바이저는 게스트 운영 체제를 가상 운영 플랫폼으로 제공하고 게스트 운영 체제의 실행을 관리한다.다양한 운영 체제의 여러 인스턴스가 가상화된 하드웨어 리소스를 공유할 수 있다. 예를 들어 Linux, 윈도우즈MacOS 인스턴스는 모두 하나의 물리적 x86 시스템에서 실행될 수 있다.이는 게스트 운영 체제가 동일한 커널을 사용하는 다른 Linux 배포와 같이 사용자 공간이 다를 수 있지만 모든 인스턴스(일반적으로 컨테이너라고 함)가 단일 커널을 공유해야 하는 운영 체제 수준 가상화와 대비된다.

하이퍼바이저라는 용어는 운영 체제커널을 뜻하는 전통적인 용어인 감독자의 변종이다.[1] 하이퍼바이저는 슈퍼바이저의 변종으로서 하이퍼바이저가 더 강력한 슈퍼바이저로 사용된다.[a]용어는 1970년 경으로,[2] 초기 CP/CMS(1967) 시스템에서는 제어 프로그램이라는 용어를 대신 사용했다.

분류

Type-1 및 Type-2 하이퍼바이저

Gerald J. P. Goldberg는 1974년 기사인 "가상화가 가능한 3세대 아키텍처에 대한 공식 요구사항"에서 두 가지 유형의 하이퍼바이저를 분류했다.[3]

유형-1, 네이티브 또는 베어메탈 하이퍼바이저
이러한 하이퍼바이저는 호스트의 하드웨어에서 직접 실행되어 하드웨어를 제어하고 게스트 운영 체제를 관리한다.이 때문에 베어메탈 하이퍼바이저라고도 한다.IBM이 1960년대에 개발한 최초의 하이퍼바이저는 토종 하이퍼바이저였다.[4]여기에는 테스트 소프트웨어 SIMMON과 IBM z/VM의 전신인 CP/CMS 운영 체제가 포함되었다.
Type-2 또는 호스트된 하이퍼바이저
이러한 하이퍼바이저는 다른 컴퓨터 프로그램과 마찬가지로 재래식 운영 체제(OS)에서 실행된다.게스트 운영 체제는 호스트에서 프로세스로 실행된다.Type-2 하이퍼바이저는 호스트 운영 체제에서 게스트 운영 체제를 추상화한다.

이 두 종류의 구별이 항상 명확한 것은 아니다.예를 들어 KVM과 bhyve는 호스트 운영 체제를 type-1 하이퍼바이저로 효과적으로 변환하는 커널 모듈이다[5].[6]동시에 Linux 배포FreeBSD는 여전히 범용 운영 체제로서 애플리케이션이 VM 리소스를 놓고 서로 경쟁하고 있기 때문에 KVM과 바이브도 타입 2 하이퍼바이저로 분류할 수 있다.[7]

메인프레임 기원

완전한 가상화를 제공하는 최초의 하이퍼바이저는 테스트 툴 SIMMON과 일회성 IBM CP-40 연구 시스템으로, 1967년 1월에 생산 사용을 시작하여 IBM CP/CMS 운영 체제의 첫 번째 버전이 되었다.CP-40은 가상화를 가능하게 하는 기능인 동적 주소 변환을 지원하기 위해 Cambridge Scientific Center에서 수정된 S/360-40으로 실행되었다.이 이전에는 컴퓨터 하드웨어CTSS나 IBM M44/44X와 같이 여러 사용자 애플리케이션이 동시에 실행될 수 있을 정도로만 가상화되어 있었다.CP-40에서는 하드웨어의 감독자 상태도 가상화되어 여러 운영 체제가 별도의 가상 머신 컨텍스트에서 동시에 실행될 수 있게 되었다.

프로그래머들은 곧 완전한 가상화가 가능한 최초의 생산용 컴퓨터 시스템인 IBM System/360-67에 CP-40(CP-67)을 구현했다.IBM은 1966년에 이 기계를 출고했다. 가상 메모리에 대한 페이지 변환-테이블 하드웨어와 I/O 및 인터럽트 처리를 포함한 모든 커널 작업의 완전한 가상화를 허용하는 기타 기법을 포함했다. (참고: "공식" 운영 체제인 TSS/360은 완전한 가상화를 채택하지 않았다.)CP-40과 CP-67은 모두 1967년에 생산 사용을 시작했다. CP/CMS는 1968년부터 1970년대 초까지 IBM 고객들에게 지원 없이 소스 코드 형태로 제공되었다.

CP/CMS는 메인프레임 컴퓨터를 위한 강력한 시간 공유 시스템을 구축하려는 IBM의 시도의 일부가 되었다.하이퍼바이저는 여러 운영 체제를 동시에 실행함으로써 시스템 견고성과 안정성을 향상시켰다.한 운영체제가 고장나더라도 다른 운영체제는 중단 없이 계속 작동하게 된다.실제로 이를 통해 안정적인 주 생산 시스템을 위태롭게 하지 않고 비용이 많이 드는 추가 개발 시스템을 요구하지 않고 운영 체제의 베타 버전이나 실험 버전 또는 심지어 새로운[8] 하드웨어를 배포하고 디버깅할 수 있었다.

IBM은 1970년에 가상화에 필요한 가상 메모리 기능이 없는 System/370 시리즈를 발표했으나 1972년 8월 Advanced Function 발표에서 이를 추가했다.zSeries 제품군을 포함한 현대적인 IBM 메인프레임은 1960년대 IBM S/360 제품군과 역호환성을 유지할 수 있도록 가상화가 모든 후속 시스템에 적용되었다.1972년 발표에는 S/370에 대한 CP/CMS를 재구성한 VM/370도 포함되었다.CP/CMS와는 달리, IBM은 이 버전에 대한 지원을 제공했다(여러 릴리스에 대해서는 여전히 소스 코드 형태로 배포되었다).VM은 일부 하드웨어 인터페이스가 아닌 모든 하드웨어 인터페이스가 가상화됨을 강조하는 가상 시스템의미한다.VM와 CP/CMS 모두 IBM 내에서뿐만 아니라 대학, 기업 사용자 및 시간 공유 벤더가 조기 수용과 신속한 개발을 즐겼다.사용자들은 현대의 오픈소스 프로젝트에서 보여지는 추세를 예상하면서 지속적인 개발에 적극적인 역할을 했다.그러나, 일련의 논쟁과 쓰라린 싸움에서[citation needed], 시간 공유는 IBM의 정치적 내분을 통한 일괄 처리로 사라졌고, VM는 MVS에 패배하면서 수십 년 동안 IBM의 "기타" 메인프레임 운영 체제를 유지했다.2000년부터 z/VM 제품, 예를 들어 IBM Z의 Linux 플랫폼으로 인기와 지원이 다시 살아났다.

위에서 언급한 바와 같이 VM 제어 프로그램에는 가상 머신 내에서 사용되는 DIAG("Diagnostic", opcode x'83') 지침을 가로채는 하이퍼바이저 호출 처리기가 포함되어 있다.이는 파일 시스템 액세스 및 기타 작업의 빠른 경로를 가상화하지 않은 실행 기능을 제공한다(DIAG는 모델 의존적 특권 명령으로 일반 프로그래밍에 사용되지 않으므로 가상화되지 않음).따라서 "호스트" 운영 체제에 대한 신호로 사용할 수 있다.CP/CMS 릴리즈 3.1에서 처음 구현되었을 때, 이러한 DIAG의 사용은 시스템/360 슈퍼바이저 호출 명령(SVC)과 유사하지만 시스템의 SVC 가상화를 변경하거나 확장할 필요가 없는 운영 체제 인터페이스를 제공했다.

1985년에 IBM은 논리적 파티션(LPAR)을 관리하기 위해 PR/SM 하이퍼바이저를 도입했다.

운영 체제 지원

2005년 무렵 유닉스, 리눅스 및 기타 유닉스 유사 운영 체제 간의 가상화 기술 사용에서 몇 가지 요소가 부활하였다.[9]

  • 하드웨어 기능을 확장하여 각 시스템이 더 많은 동시 작업 수행 가능
  • 서버 통합을 통한 비용 제어 및 관리 간소화 노력
  • 서버 팜 및 렌더 팜과 같은 대규모 멀티프로세서클러스터 설치를 제어해야 하는 필요
  • 하이퍼바이저 아키텍처에서 가능한 향상된 보안, 안정성 및 장치 독립성
  • 서로 다른 하드웨어 또는 OS 환경에서 OS에 의존하는 복잡한 애플리케이션을 실행할 수 있는 기능

HP, IBM, SGI, Sun Microsystems 등 주요 유닉스 벤더는 2000년 이전부터 가상화 하드웨어를 판매해 왔다.IBM pSeries 서버, HP Superdome 시리즈 머신, Sun/Orace T 시리즈 CoolThreads 서버와 같은 일부 중저가 시스템에서도 가상화를 사용할 수 있었지만, 이러한 시스템은 일반적으로 크고 비용이 많이 드는 시스템이었다(하이엔드에서 수백만 달러 범위).

Solaris는 항상 논리적 도메인 하이퍼바이저에서 Sun/Oracle에 의해 공식적으로 지원되는 유일한 게스트 도메인 OS였지만, 2006년 말 현재 Linux(Ubuntu 및 Gentoo), FreeBSD는 하이퍼바이저 위에서 실행되도록 포팅되었으며, 완전히 가상화된 독립 게스트 OS와 동일한 프로세서에서 동시에 실행될 수 있다.윈드 리버 "캐리어 등급 리눅스"도 선스 하이퍼바이저에서 운영된다.[10]SPARC 프로세서에 대한 완전한 가상화는 간단했다. 1980년대 중반 Sun은 SPARC 아키텍처가 가상화를 방해할 수 있는 아티팩트를 의도적으로 제거하도록 했다.(아래 x86 프로세서의 가상화와 비교해 보십시오.)[11]

HPE는 Itanium 기반 Integrity 시스템에서 여러 운영 체제를 호스팅할 수 있는 HP Integrity Virtual Machine(Integrity VM)을 제공한다.Itanium은 HP-UX, 리눅스, 윈도우즈, OpenVMS를 실행할 수 있으며, 이러한 환경은 HP의 Integrity VM 플랫폼에서 가상 서버로도 지원된다.HP-UX 운영 체제는 HP-UX의 많은 중요한 기능을 활용할 수 있도록 하는 Integrity VM 하이퍼바이저 계층을 호스팅하며, 시스템 재부팅 없이 프로세서 핫스왑, 메모리 핫스왑, 동적 커널 업데이트와 같은 다른 범용 플랫폼과 같은 HP-UX의 중요한 기능을 이용할 수 있도록 한다.HP-UX를 많이 활용하지만 Integrity VM 하이퍼바이저는 게스트가 실행되는 동안 베어메탈에서 실행되는 하이브리드 솔루션입니다.Integrity VM 호스트에서 일반 HP-UX 애플리케이션을 실행하는 것은 매우 어려운 일이며, Integrity VM은 가상 머신에 맞게 조정되고 일반 애플리케이션에 효과적이지 않은 자체 메모리 관리, 스케줄링 및 I/O 정책을 구현하기 때문이다.[by whom?]또한 HPE는 VPAR 및 nPar 기술을 통해 무결성 및 HP9000 시스템의 보다 엄격한 파티셔닝을 제공하며, 전자는 공유 리소스 파티셔닝, 후자는 완전한 I/O 및 처리 격리를 제공한다.VSE(가상 서버 환경)의 유연성은 새로운 배포 환경에서 더 자주 사용할 수 있게 되었다.[citation needed]

IBM은 System/390, zSeries, pSeriesIBM AS/400 시스템에서 논리적 파티셔닝(LPAR)으로 알려진 가상화 파티션 기술을 제공한다.IBM의 Power Systems의 경우, POWER Hypervisor(PHYP)는 펌웨어의 네이티브(bare-metal) 하이퍼바이저로, LPAR 간의 격리를 제공한다.프로세서 용량은 사용되지 않은 용량을 수집하여 사용량이 많은 워크로드에 재할당할 수 있는 사용 권한 기준 또는 전용 방식으로 LPAR에 제공된다.LPAR 그룹은 프로세서 용량을 "풀"에 있는 것처럼 관리할 수 있다. IBM은 이 기능을 "다중 공유 프로세서 풀(MSPP)"이라고 하며 POWER6 프로세서가 장착된 서버에 구현한다.LPAR 및 MSPP 용량 할당을 동적으로 변경할 수 있다.메모리는 각 LPAR(LPAR 시작 또는 동적)에 할당되며 POWER 하이퍼바이저에 의해 주소 제어된다.운영 체제(AIX, Linux, IBM i)에 의한 리얼 모드 어드레싱의 경우, Power 프로세서(POWER4 이상)는 물리적 메모리 어드레스에 도달하기 위해 OS 어드레싱 오프셋으로 하드웨어 어드레싱 오프셋을 평가하는 가상화 기능을 설계했다.입출력(I/O) 어댑터는 LPAR에서 독점적으로 "소유"하거나 VIOS(Virtual I/O Server)로 알려진 어플라이언스 파티션을 통해 LPAR에서 공유할 수 있다.Power Hypervisor는 많은 부품(모델 종속: 프로세서, 메모리, I/O 어댑터, 블로어, 전원 장치, 디스크, 시스템 컨트롤러 등)의 핫 추가/교체를 촉진하여 높은 수준의 안정성, 가용성 및 서비스 가능성(RAS)을 제공

Xen과 같은 오픈소스 프로젝트가 가상화 노력을 주도했던 x86/x86-64 서버 플랫폼에서도 비슷한 경향이 나타났다.여기에는 Linux 및 Solaris 커널에 구축된 하이퍼바이저와 사용자 지정 커널이 포함된다.이러한 기술은 대규모 시스템에서 데스크톱에 이르기까지 광범위하기 때문에 다음 절에서 설명한다.

x86 시스템

2005년부터 CPU 벤더는 자사 제품에 하드웨어 가상화 지원을 추가했다. 예를 들어 Intel VT-x(코드명 Vanderpool) 및 AMD-V(코드명 Pacifica) 등이 있다.

다른 접근 방식을 사용하려면 하이퍼바이저가 시뮬레이션하는 시스템 I/O 명령을 실행하는 대신 기본 하이퍼바이저로 시스템 호출을 수행하도록 게스트 운영 체제를 수정해야 한다.이를 Xen에서는 반가상화, Parallels Workstation에서는 "하이퍼콜", IBM VM에서는 "DIAGNOSE 코드"라고 부른다. 마하L4와 같은 일부 마이크로커널은 게스트 운영 체제의 반가상화가 가능할 정도로 유연하다.

임베디드 시스템

임베디드 시스템 및 특정 실시간 운영 체제(RTOS) 환경을 대상으로 하는 임베디드 하이퍼바이저는 견고성, 보안 및 실시간 기능을 포함한 데스크톱 및 엔터프라이즈 시스템과 비교할 때 요구 사항이 다르게 설계된다.많은 임베디드 시스템, 특히 배터리 구동 모바일 시스템의 리소스 제약 특성은 작은 메모리 크기와 낮은 오버헤드에 대한 추가 요건을 부과한다.마지막으로, PC 세계에서 x86 아키텍처의 편재성과 대조적으로, 임베디드 세계는 더 다양한 아키텍처와 덜 표준화된 환경을 사용한다.가상화를 지원하려면 메모리 보호(메모리 관리 유닛 또는 적어도 메모리 보호 유닛의 형태)와 대부분의 마이크로컨트롤러를 배제하는 사용자 모드와 권한 있는 모드를 구별해야 한다.이것은 여전히 x86, MIPS, ARM파워를 남긴다.PC는 중-고급 임베디드 시스템에 널리 구축된 아키텍처로서.[12]

임베디드 시스템 제조업체는 대개 운영 체제에 대한 소스 코드를 가지고 있기 때문에 이 영역에서 완전한 가상화의 필요성이 적다.대신, 반가상화의 성능 이점으로 인해 대개 가상화 기술을 선택할 수 있다.그럼에도 불구하고 ARM과 MIPS는 최근 IP 옵션으로 완전한 가상화 지원을 추가했으며 ARM Cortex-A15 MPCore, ARMv8 EL2 등 최신 하이엔드 프로세서 및 아키텍처 버전에 포함시켰다.

서버/데스크톱과 임베디드 환경의 가상화 간의 다른 점으로는 가상 머신 간 효율적인 리소스 공유, 고대역폭, 짧은 지연 시간 VM 간 통신, 스케줄링 및 전원 관리에 대한 글로벌 관점, 정보 흐름의 세부적인 제어 등이 있다.[13]

보안에 미치는 영향

맬웨어 방지 소프트웨어가 반드시 탐지하지 않아도 맬웨어가 운영 체제(예: 암호를 입력하는 사람)의 모든 작업을 차단할 수 있기 때문에 맬웨어 및 루트킷이 자신을 하이퍼재킹이라고 하는 운영 체제 아래 하이퍼바이저로 설치하여 하이퍼바이저 기술을 사용하면 맬웨어 방지 소프트웨어를 탐지하기가 더욱 어려워질 수 있다.(맬웨어가 전체 운영 체제 아래에서 실행되므로)이 개념의 구현은 SubVirt 연구소 루트킷(MicrosoftUniversity of Michigan 연구진이[14] 공동으로 개발)뿐만 아니라 Blue Fil 맬웨어 패키지에서 발생한 것으로 알려져 있다.그러나 이러한 주장은 하이퍼바이저 기반 루트킷의 존재를 감지할 수 있을 것이라고 주장하는 다른 사람들에 의해 논란이 되어왔다.[15]

2009년 마이크로소프트와 노스캐롤라이나 주립대학의 연구진은 커널모드 루트킷에 대해 일반적 보호를 제공할 수 있는 하이퍼바이저 레이어 안티 루트킷(Hooksafe)을 시연했다.[16]

메모들

  1. ^ super-는 "위"를 의미하는 라틴어에서 유래한 반면, hyper-는 고대 그리스어( cogn term termρ-)의 동족 용어에서 유래한 것이며, 또한 위 또는 그 이상도 의미한다.

참조

  1. ^ Bernard Golden (2011). Virtualization For Dummies. p. 54.
  2. ^ "How did the term "hypervisor" come into use?".
  3. ^ Popek, Gerald J.; Goldberg, Robert P. (1974). "Formal requirements for virtualizable third generation architectures". Communications of the ACM. 17 (7): 412–421. doi:10.1145/361011.361073. S2CID 12680060.
  4. ^ Meier, Shannon (2008). "IBM Systems Virtualization: Servers, Storage, and Software" (PDF). pp. 2, 15, 20. Retrieved December 22, 2015.
  5. ^ Dexter, Michael. "Hands-on bhyve". CallForTesting.org. Retrieved September 24, 2013.
  6. ^ Graziano, Charles (2011). "A performance analysis of Xen and KVM hypervisors for hosting the Xen Worlds Project". Graduate Theses and Dissertations. Iowa State University. Retrieved January 29, 2013.
  7. ^ Pariseau, Beth (April 15, 2011). "KVM reignites Type 1 vs. Type 2 hypervisor debate". SearchServerVirtualization. TechTarget. Retrieved January 29, 2013.
  8. ^ 시스템/370 개발 시 가상 하드웨어 시뮬레이션에 대한 CP/CMS 기록 참조
  9. ^ Loftus, Jack (December 19, 2005). "Xen virtualization quickly becoming open source 'killer app'". TechTarget. Retrieved October 26, 2015.
  10. ^ "Wind River To Support Sun's Breakthrough UltraSPARC T1 Multithreaded Next-Generation Processor". Wind River Newsroom (Press release). Alameda, California. November 1, 2006. Retrieved October 26, 2015.
  11. ^ Fritsch, Lothar; Husseiki, Rani; Alkassar, Ammar. Complementary and Alternative Technologies to Trusted Computing (TC-Erg./-A.), Part 1, A study on behalf of the German Federal Office for Information Security (BSI) (PDF) (Report).
  12. ^ Strobl, Marius (2013). Virtualization for Reliable Embedded Systems. Munich: GRIN Publishing GmbH. pp. 5–6. ISBN 978-3-656-49071-5. Retrieved March 7, 2015.
  13. ^ Gernot Heiser (April 2008). "The role of virtualization in embedded systems". Proc. 1st Workshop on Isolation and Integration in Embedded Systems (IIES'08). pp. 11–16. Archived from the original on March 21, 2012. Retrieved April 8, 2009.
  14. ^ "SubVirt: Implementing malware with virtual machines" (PDF). University of Michigan, Microsoft. April 3, 2006. Retrieved September 15, 2008.
  15. ^ "Debunking Blue Pill myth". Virtualization.info. August 11, 2006. Archived from the original on February 14, 2010. Retrieved December 10, 2010.
  16. ^ Wang, Zhi; Jiang, Xuxian; Cui, Weidong; Ning, Peng (August 11, 2009). Countering Kernel Rootkits with Lightweight Hook Protection (PDF). Proceedings of the 16th ACM Conference on Computer and Communications Security. CCS '09. Chicago, Illinois, USA: ACM. CiteSeerX 10.1.1.147.9928. doi:10.1145/1653662.1653728. ISBN 978-1-60558-894-0. S2CID 3006492. Retrieved November 11, 2009.

외부 링크