1. 정의
1개의 물리적 서버를 여러 개의 가상 서버로 분리하고, 각각의 가상 서버가 마치독립적인 컴퓨터처럼 행동할 수 있도록 만드는 기술
2. 등장 배경
자원 분리를 위해하나의 OS에서 여러 개의 응용 프로그램을 가동하는 기존 '베어메탈' 체제라 한다. 해당 베어메탈 체제에서는 여러 응용프로그램이 같은 커널, 같은 파일시스템과 네트워크 스택을 공유하다 보니 다음과 같은 부작용이 일었다.
- 오류 전파
: 하나의 응용 프로그램이 공유 자원에서 오류를 일으켰을 시, (ex - 메모리 누수, 커널 패닉, 잘못된 ip 테이블 설정) 해당 오류가 다른 프로세스에 전파되어 악영향을 준다.
- 호환성 문제
: 앱 별로 필요로 하는 OS 라이브러리 버전이 다를 경우, 어떤 앱은 잘 가동이 되는데, 또 어떤 앱은 가동이 되지 않는 비일관성을 초래한다.
- OS의 패치, 보안 업데이트, 재부팅 등의 변화가 모든 응용 프로그램에게 영향이 간다.
이러한 문제의 원인이 되는 자원 공유를 해결하고자 가상화 기술이 탄생했다.
3. 구성 요소
(1) 가상 머신
가상화 기술로 물리 서버 안에 생긴 독립적인 컴퓨터 환경을 가상 머신이라고 한다.
하나의 가상 머신이 생성되면, 물리 서버 내 시스템 자원(CPU, 메모리, 스토리지, 네트워크)에서 임의의 영역을 독립 할당 받는다.
하나의 가상 머신이 생성되면, 물리 서버 내 시스템 자원(CPU, 메모리, 스토리지, 네트워크)에서 임의의 영역을 독립 할당 받는다.
(2) 하이퍼바이저
가상 머신들의 OS 이다.가상 머신을 생성하고 관리하는 역할을 한다. 세부적으로 살펴보면,
- 가상 서버를 만들어달라는 요청이 들어오면, 물리 서버 위에 가상 서버를 생성하고, 물리 서버가 가진 각 시스템 자원 (CPU, 메모리, 스토리지, 네트워크) 각각에서 놀고 있는 영역을 해당 가상 서버에 할당한다.
- 가상 서버도 사실은 물리 서버의 사용자 영역에 올라간 프로그램 취급을 받기 때문에, 가상 서버의 OS는 커널 모드에 진입하지 못한다. 따라서 가상 서버의 OS가 시스템 자원에 직접 접근을 시도할 때, 해당 시도를 물리 서버의 OS와 매핑하여 실제 자원 접근이 가능하도록 중개하는 역할을 한다.
근데 위의 전개도에서 하이퍼 바이저 부분을
virtualization Layer라고 뭉뚱그려 설명했다. 그 이유는 해당 하이퍼 바이저 부분을 구현하는 형태가 2가지로 나눠지기 떄문이다.TYPE 1 - 베어메탈 하이퍼 바이저
호스트 서버의 OS (이하 호스트 OS) 없이 물리 서버 하드웨어 위에 하이버 바이저가 직접 구동하는 유형이다.
이때는 하이퍼 바이저가 직접 하드웨어와 게스트 OS를 연결하는 역할을 한다. 이 호스트 OS가 없다는 것이 장단점에 모두 적용된다.
이때는 하이퍼 바이저가 직접 하드웨어와 게스트 OS를 연결하는 역할을 한다. 이 호스트 OS가 없다는 것이 장단점에 모두 적용된다.
- 장점:
- 호스트 OS가 따로 없기에 거쳐야할 단계가 적다. -> 오버 헤드가 작다.
- 게스트 OS간의 완연한 분리를 구현한다. -> 오염 전파가 완벽히 없음
- 단점: 최종 관리를 해주는 호스트 OS의 부재로 VM 통합 관리가 안된다. -> 게스트OS마다 콘솔 새로 들어가서 각각 관리 해줘야 함.
TYPE-2 호스트 하이퍼바이저
하이퍼 바이저의 상관으로 호스트 OS가 따로 존재하는 유형이다. 하이퍼바이저는 말그대로 게스트 OS의 요청을 호스트OS에게 전달하는 역할을 하고 실제 자원 접근은 호스트 OS가 직접한다. 장단점은 TYPE1과 반대된다.
- 장점:
- 운영이 쉽다. 호스트 OS가 최종 관리 다 해줌으로, 하이퍼 바이저 구현 난이도도 쉽고, 게스트 OS 관리도 Type 1에 비해 쉬움
- 단점:
- 단계를 하나 더 거치기 떄문에 오버헤드가 상대적으로 더 크다.
- 호스트 OS 오류 시, 게스트 OS 전체에 오류가 전파된다. 따라서 엄연히 말하면, 단일 OS 체제보다는 낫지만 완벽한 서비별 자원 분리는 아니다.
(3) 호스트 서버
가상 머신과 하이퍼바이저가 작동하는 물리서버를 호스트 서버라고 부른다. 반대로 호스트 서버에서 가동 중인 가상 서버를 게스트 서버라고도 한다.
4. 장단점
하나의 OS, 여러 개의 응용 프로그램을 둔 베어메탈 운영체제와 비교하면 다음과 같은 장단점을 가진다.
- 장점: 서비스 별 시스템 자원의 분리로 단일 OS 체제의 문제점 해결
- 단점: OS 하나당 평균 5GB인데, 게스트 OS가 많아질수록 하드웨어 다운 가능성 커짐 -> 운영 안정성 저하
부록
A. 모르는 것 정리
B. 참고 문서
⬅️ 이전 글
➡️ 다음 글