가상화
IT위키
더 많은 작업
- Virtualization
- 물리적인 하드웨어 자원을 논리적으로 작은 단위로 나누거나, 여러 물리적인 하드웨어를 하나의 논리적인 자원으로 통합하여 서비스하는 방식
| 수준 | 내용 | 예 |
|---|---|---|
| 명령어 집합(ISA) 수준 | 다른 CPU 의 명령어를 에뮬레이션한다 | QEMU(에뮬레이션), Bochs |
| 하드웨어 추상화 수준 | 하이퍼바이저가 가상 머신 전체를 만든다 | VMware, Xen, KVM, VirtualBox |
| 운영체제 수준 | 커널 하나를 함께 쓰며 격리된 사용자 공간을 만든다 | 컨테이너, 도커, LXC |
| 라이브러리(API) 수준 | 다른 운영체제의 API 를 흉내 낸다 | Wine |
| 하이 레벨 언어 수준 | 특정 운영체제·CPU 가 아니라 언어 실행 환경을 가상 머신으로 만든다. 프로그램은 바이트코드로 컴파일되어 그 가상 머신에서 돈다 | 자바 가상 머신(JVM), .NET CLR |
| 효과 | 내용 |
|---|---|
| 서버 통합 | 여러 물리 서버에서 돌던 일을 한 대 위의 가상 머신들로 모아 활용률을 높이고 장비·전력·공간을 줄인다 |
| 향상된 보안 | 가상 머신끼리 격리되어 하나가 침해되거나 멈춰도 다른 가상 머신으로 번지지 않는다 → 가상화 보안 |
| 높아진 가용성 | 가상 머신을 끄지 않고 다른 호스트로 옮기고(라이브 마이그레이션), 호스트가 고장 나면 다른 호스트에서 다시 띄우며, 스냅숏으로 되돌린다 → 고가용성 |
| 증가된 확장성 | 부하가 늘면 가상 머신을 복제해 늘리거나 CPU·메모리를 더 붙이고, 줄면 거둬들인다 |
| 향상된 프로비저닝 | 자원을 사용자 요구에 맞게 할당·배치·배포할 수 있도록 템플릿으로 만들어 두고, 물리 장비 단위보다 잘게 나눈 조각(vCPU, 메모리 일부) 단위로 내준다 → 프로비저닝 |
| 하드웨어 독립성 | 게스트는 가상 하드웨어만 보므로 다른 기종의 서버로 옮겨도 그대로 돈다 |