6.virtualization
- 가상화(virtualization)
- 단일 컴퓨터의 하드웨어 요소를 다수의 VM으로 분할할 수 있도록 해주는 기술
- resource를 효율적으로 사용할 수 있음
- 다수 컴퓨터를 managing하는데 효율적임
- 가상화의 역사
-
가상화 등장 전
- OS 정의 : 시스템 하드웨어 자원과 소프트웨어 자원을 운영, 관리하는 프로그램 - 특권 명령 : 특정 프로그램이 하드웨어의 요소들과 소통할 수 있는 명령 (OS한정) - OS -> 1개 하드웨어당 1개 OS (OS는 특권명령이 필요) - 일반 프로그램 -> 1개 하드웨어당 다수 프로그램 (일반 프로그램은 특권명령이 필요 없음) => 즉, 1개의 하드웨어에서 하나의 OS만 실행 가능 (=Bare-Metal) app app app -----OS----- --Hardware--
-
- 1세대 가상화(fully Emulated)
-
- 모든 system 요소가 emulator 안에서 돌아감 - CPU, disk, 마더보드 등 모든 요소를 emulator로 구현하여 OS와 연동 - 프로그램으로 emulate 되기 때문에 OS, Hardware의 도움을 받을 수 없어 엄청나게 느림
-
- 2세대 가상화(Paravirtualization)
-
- Guest OS(가상화 환경 안의 OS)는 Hypervisor와 통신 - Hypervisor : OS와 hardware 사이에 존재하는 가상화 매니저 - 즉,hardware의 지원 받아 속도 향상 - 몇 몇 요소의 경우 여전히 emulator가 필요함 (모든 걸 hypervisor가 지원하진 않음)
-
- 3세대 가상화(HVM, Hardware Virtual Machine)
-
- 하드웨어에서 직접 가상화를 지원 (hypervisor x) - 직접 Guest-OS가 하드웨어와 통신 = 빠른 속도(near bare-metal)
-
- 가상화가 cloud에서 중요한 이유
- AWS cloud 환경에서 resource를 작은 단위로 빠르게 구성할 수 있는 원동력이 가상화
- 즉, AWS에서 user마다 컴퓨터를 할당해 주는 것이 아닌 이미 구축된 가상화 가능한 서버의 한 부분을 할당해 주는 것