My __ 노트

기초다지기 - 가상화 & 가상 머신(VM)에 대한 이해 본문

Linux

기초다지기 - 가상화 & 가상 머신(VM)에 대한 이해

블루빔 2020. 12. 22. 23:41

 컴퓨터 (Computer)  :
자동으로 연산을 수행하는 전자적 장치(electronic device)
[ 데스크탑 PC, 노트북, 스마트폰 등

 

 하드웨어 (Hardware)  :
컴퓨터의 물리적 부품을 의미
[ CPU, Memory, HDD, NIC, 그래픽카드, 모니터 등 ]

 

 운영체제 ( Operating system ) 
시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어 (하드웨어와 소프트웨어를 모두 관리하는 소프트웨어)
[ 서버 운영 체제      : 리눅스, 유닉스, 윈도우, macOS ]
[ 데스크탑 운영 체제 : 윈도우, macOS
[ 모바일 운영 체제    : (리눅스 계열) 안드로이드, (BSD 계열) iOS ] 

 

 가상화 (virtualization) 
물리적인 자원을 동시에 다수의 논리적인 자원으로 사용하는 것을 의미

▶ 가상화 종류:
1) host 가상화 - host OS 위에 하이퍼바이저를 설치하여 VM 생성

 


2) 하이퍼바이저 가상화 - 서버 위에 바로 하이퍼바이저를 설치하여 VM생성

 


3) 컨테이너 가상화  - host OS 위에 컨테이너를 올려 개별 서버처럼 사용 

 

현재 흐름이 VM에서 Container 가상화로 이동하고 있다. 기존 레이어가 하나 줄어들기 때문에 가볍고 빠르게 작동한다는 장점이 있다. 


컨테이너 : 애플리케이션과 애플리케이션을 구동하는 환경을 격리한 추상화된 공간 
* VM과 달리 운영체제 수준에서 가상화를 실시한다. 

 

 

 

 하이퍼바이저 (Hypervisor)  :
물리적인 자원을 공유하여 논리적으로 격리된 다수의 운영체제를 동시에 실행할 수 있도록해주는 가상 플랫폼 기술 
(공유자원들을 관리하고 vm들을 컨트롤하는 중간관리자 역할)

 

 

▶ Hypervisor 종류:
Type 1 :
베어 메탈(bare-metal) 기반 하이퍼바이저: 서버 위에 바로 하이퍼바이저를 설치
ESXi, Microsoft Hyper-V, KVM

Type 2 :
host형 하이퍼바이저: 운영체제를 깔고 그 위에 하이퍼바이저를 깜
[ VMware workstation, VirtualBox, Oracle ]

 

 

 가상 머신 (VM - Virtual Machine) 
컴퓨팅 환경을 소프트웨어로 구현한 것이다.
(하나의 물리적 컴퓨터에서 여러 개의 운영체제를 동시에 운영하기 위해 논리적으로 만든 컴퓨터)

▶ 장점 
유연성 - 동일한 하드웨어에서 여러 OS를 동시에 실행할 수 있으며 모두 논리적으로 분리된 환경을 제공하고 있다
민첩성 - 물리적 서버에서 다른 물리적 서버로 이동이 가능하다.
내결함성 - 서버가 다운되면 작동 중인 다른 하이퍼바이저의 서버로 이동할 수 있다. 
비용절감 - 자원 구매, 유지 보수, 인력채용 등의 비용을 절감할 수 있다.

 

 

 

추가)
- 실제 물리적인 CPU의 개수 vs 가상 머신 CPU의 개수
  각각의 가상머신 CPU 개수는 물리적인 CPU의 개수보다 많을 수는 없다.
 
  예) 물리적인 CPU 4개 일 때
      - 각각의 가상 머신이 가질 수 있는 최대 CPU의 개수는 4개 
      - 1번 가상머신 CPU 2개, 2번 가상머신 CPU 3개, 3번 가상머신 CPU 4개이면
        총 CPU는 9개이며 이것을 오버서브스크라이브드(oversubscribed)라고 한다. 

- 실제 물리적인 메모리 사이즈 vs 가상 머신의 메모리
  하이퍼바이저가 인지하는 메모리 사이즈를 각각의 가상 머신에 할당해준다. 

  예)  물리적 메모리가 8GB일 때
        약 1.5배인 12GB까지 가상 서버는 사용 가능하다 

- 네트워크 연결을 가상화
  가상 서버들은 virtual switch를 통해 물리적인 네트워크와 연결한다.