가상화(Virtualization)
단일 컴퓨터의 하드웨어 요소를 일반적으로 가상머신(VM)이라고 하는 다수의 가상 컴퓨터로 분할 할 수 있게 해주는 기술이다.
위 그림과 같이 예를 들어 가상화 전 서버량의 10%을 사용하는 서버가 3개 존재한다면 가상화 후 하나의 서버에 통합시키는 것이 가능하다.
- 운영체제(OS): 시스템 하드웨워 자원과 소프트웨어 자원을 운영 관리하는 프로그램
- 특권 명령: 시스템 요소(하드웨어)들과 소통할 수 있는 명령(OS만 가능)
- OS는 특권 명령 때문에 하나의 하드웨어 시스템 당 하나밖에 돌아갈 수 없음
- 일반 프로그램은 특권 명령이 필요 없기 때문에 많은 프로그램을 동시에 수행 가능하다.
가상화가 나타나기 전까지는 하나의 하드웨어 시스템은 하나의 OS만 실행이 가능했다. 즉 일반적인 컴퓨터처럼 직접 OS가 하드웨어에 설치된 상태(Bare-Metal)로만 운영이 가능했다.
가상화의 역사
- 1세대: 완전 가상화(Fully Emulated)
- 모든 시스템 요소가 에뮬레이터 안에서 돌아간다.
- 즉 CPU, 하드디스크, 메인보드 등 모든 요소를 에뮬레이터로 구현해 OS와 연동했다.
- 엄청나게 느리다.
- 2세대: Paravirtualization
- GuestOS는 하이퍼바이저와 통신한다.
- 하이퍼바이저: OS와 하드웨어 사이에 존재하는 일종의 가상화 매니저
- 속도가 1세대에 비해서 향상했다.
- 몇몇 요소의 경우 여전히 에뮬레이터가 필요했다.
- 3세대: Hardware Virtual Machine(HVM)
- 하드웨어에서 직접 가상화를 지원한다.
- 직접 GuestOs가 하드웨어와 통신한다 = 빠른 속도( Near-Bear-Metal)
가상화 클라우드