카테고리 없음
가상화 기술과 하이퍼바이저
16비트
2023. 4. 6. 20:50
가상화란
- 장비의 발전으로 CPU, 메모리 등 자원이 남게 되었고 가상화 기술을 이용해 하나의 운영체제에 여러개의 다른 운영체제를 설치할 수 있게 되었다
- 기업은 가상화를 사용해 하드웨어 리소스를 효율적으로 사용하여 투자 대비 이익을 더 많이 얻을 수 있게 되었다
- 클라우드 컴퓨팅 서비스를 지원하여 조직의 인프라를 더욱 효율적으로 관리할 수 있다.
- 가상화의 종류로 서버, 스토리지, 네트워크, 데이터, 애플리케이션 가상화 등이 있다
- 만들 수 있는 가상머신의 개수는 호스트 OS의 CPU 논리 프로세서 수(성능)에 따라 달라진다
※ 가상화와 클라우드 컴퓨팅의 차이
- 가상화 기술은 클라우드 컴퓨팅을 가능하게 만드는 기술
- 클라우드 컴퓨팅은 사용량에 따른 요금으로 인터넷을 통해 온디맨드로 컴퓨팅 리소스를 제공하는 것
중첩된 가상화
- 가상 머신(VM)으로 가상 하이퍼바이저(타입1)를 실행하는 것
- 호스트에서 더 많은 프로세스가 실행될수록 컨텍스트 전환 및 물리적 프로세서 스케줄링에 더 많은 시간이 필요
가상화 기술의 종류
전가상화 (Full Virtualizaion)
- 다양한 OS들의 명령을 해석하고 번역해서 하드웨어에 전달해 자원을 사용한다
- 게스트 OS명령이 Binary Translation 과정을 거쳐 하이퍼바이저의 중재를 통해서 하드웨어로 전달된다.
- Binary Translation 과정에서 부하가 발생하고 레이턴시(지연)가 발생한다.
- Ring 0~3은 하드웨어에 접근할 수 있는 권한을 나타낸다. Ring 0가 권한이 가장 높다
- 장점 : 사용자가 편리하게 사용할 수 있다
- 단점 : 성능이 떨어짐
반가상화
- 하이퍼바이저의 부담을 줄여 성능을 높이기 위해 게스트 OS의 커널을 수정하여 최적화시킨 기술
- 전가상화와 달리 Binary Translation 과정 없이 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 게스트 OS명령이 하이퍼바이저를 거처서 하드웨어로 전달 된다.
- Binaiy Translation 과정에서 발생하는 오버헤드(지연요소)가 없어서 전가상화보다 빠르다
- 단점 : OS의 커널 수정이 상당히 어렵다. (특히 윈도우OS는 오픈소스가 아니기 때문에 리눅스보다 전문성이 요구)
- 너무 어렵기 때문에 현재는 많이 사용되지 않는 기술이 되었다
하드웨어 지원 가상화 (HVM, Hardware-assisted Virtualization)
- HVM이란 전가상화에서 성능 하락을 일으켰던 Binary Translation(이진 변환)을 하이퍼바이저가 아닌 CPU에서 대신 처리하게 됨으로써 큰 폭의 성능이 향상되었다
- 현재 대부분 사용되는 기술
하이퍼바이저란
- 가상 머신 모니터(Virtual Machine Monitor, VMM)라고도 불린다
- 하이퍼바이저 운영 체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원한다
- 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼
- CPU, 메모리, 스토리지 등의 리소스를 에뮬레이션 → 한대의 서버에 독립된 여러 머신 환경을 구성 가능
- 물리머신 대비 동일한 자원을 더 효율적으로 사용하고 빠른 서버 프로비저닝
하이퍼바이저 타입
타입 1 (native 또는 bare-metal)
- bare-metal 이란 날것의 컴퓨터라는 뜻으로 아무 것도 설치되어 있지 않은 컴퓨터를 의미한다
- 호스트 운영체제가 설치되어 있지 않은 상태에서 운영 체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며 게스트 운영 체제는 하드웨어 위에서 2번째 수준으로 실행된다.
- 대표적인 타입 1 하이퍼바이저로는 Citrix의 Citrix Hypervisor (구 XenServer), VMware의 vSphere Hypervisor (구 ESXi Server), Microsoft의 Hyper-V, Linux의 KVM (Kernel Based Virtual Machine)이 있다.
- AWS가 XenServer, KVM으로 서버를 만들어서 이용자들에게 제공하고 있다
- 타입2에 비해 성능이 좋아서 실제 프로덕션(최종 운영) 환경에서 사용하는 하이퍼바이저 타입이다
타입 2 (hosted)
- host OS가 반드시 있어야 해서 지연이 발생하게 되고 성능이 낮아진다
- 하이퍼바이저는 일반 프로그램과 같이 호스트 운영 체제에서 실행되며 VM 내부에서 동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행된다.
- VM의 대표적인 종류는 VMware Workstation Pro, VMware Workstation Player, VMware Fusion, 리눅스 QEMU, 마이크로소프트의 버추얼 PC와 버추얼 서버, Oracle(SUN)의 버추얼박스가 있다
- 개발(테스트) 환경에서 사용한다
[참고]
https://aws.amazon.com/ko/what-is/virtualization/
https://www.nakivo.com/blog/vmware-nested-virtualization-explained-use-cases-and-tutorial/