가상화란?
- 컴퓨터 시스템에서 물리 시스템의 물리 리소스를 추상화하는 것
- 한 대의 서버를 여러 대의 논리 리소스처럼 보이게 하는 기술
OS도 가상화 기술의 하나
- 하드웨어를 의식하지 않고 애플리케이션을 실해할 수 있는 운영체제는 가상화 기술 중 하나라고 볼 수 있다.
- OS의 커널에 의해 하드웨어가 추상화되면서, 기억 장치나 네트워크를 통한 데이터 교환이 하드웨어를 의식하지 않고 이루어지고 있다.
- OS가 없으면 하드웨어의 사양을 고려해서 프로그램을 작성하지만, OS에 의해 하드웨어가 추상화되서 메모리와 하드 디스크의 물리 주소를 고려하지 않고 개발 가능하다.
- 하나의 컴퓨터 내에서 동시에 다수의 프로그램이 움직인다.
- 가상의 메모리를 사용해 프로세스 및 OS 커널의 메모리 공간을 분리하므로, 하나의 프로그램이 실패한다고 해도 시스템 전체에 영향을 끼치지 않는다.
가상 머신
- 호스트 OS 형
- 윈도우나 리눅스 등의 호스트 OS 상에 가상화 소프트웨어를 설치하여 이용하는 것
- 하이퍼바이저 형
- 하드웨어 상에서 직접 가상화 소프트웨어를 실행하고, 그 위에 가상 머신을 동작시키는 기술
- 호스트 OS를 직접 거치지 않아서 호스트형보다 성능이 우수함
하이퍼바이저 형 가상화 구조
- 완전 가상화
- 물리 머신상에서 동작하는 OS나 드라이버를 그대로 게스트로 이용할 수 있음
- 소프트웨어로 에뮬레이션하기 때문에 성능이 저하되는 문제가 있음
- 준 가상화
- 가상 환경용 가상 하드웨어를 소프트웨어적으로 에뮬레이션 한다.
- 가상 환경에서 동작시키는 게스트 OS마다 준 가상화 전용 드라이버나 준가상화용으로 최적화된 OS 커널을 이용한다.