가상화란?
- 물리적인 하드웨어를 추상화하여 논리적으로 여러개인것처럼 가상으로 쪼개서 사용하거나, 여러개의 실물 컴퓨팅 자원들을 묶어서 하나의 자원인것처럼 사용하는 것이다.
하이퍼바이저 : 물리적인 하드웨어를 논리적으로 가상화할 수 있게 해주는 것
- 가상화 계층을 구현해주는 소프트웨어입니다. 하드웨어 위에서 가상머신을 생성하고, 필요한 만큼 자원 할당해주고, 가상머신들의 요청을 처리해주는 일종의 가상화 매니저라고 보시면된다.
하이퍼바이저는 type1 과 type 2 로 나뉜다.
type1 )
type1 은 host os 없이 하이퍼바이저가 guest os 를 관리하는 것이다.
베어메탈형 하이퍼바이저라고도 불린다.
여기서 kvm, hyper-v 를 예로 들 수 있다.
type2 )
type2 는 host os 위에 hypervisor 를 이용해서 guest os 를 관리하는 형태이다.
즉, hosted 하이퍼바이저라고도 불리며 그 이름처럼 host os 를 갖는 하이퍼바이저이다
하드웨어에 호스트 os 가 이미 설치가 되어있고, 하이퍼바이저는 os 위에서 소프트웨어로서 동작한다.
그 예시로 vmware, virtualbox 등이 있다.
컨테이너 타입 )
host os 위에 컨테이너 엔진을 이용해 os 수준에서 가상화한다.
host os 의 커널을 공유하여 필요한 바이너리와 앱만 올린다.
따로 guest os를 관리하는게 아니라 컨테이너 형태로 관리한다.
전가상화, 반가상화
전가상화
전 가상화는 모든 하드웨어를 전부 가상화 시켜서 논리적으로 배분하는 것이다. 하드웨어와 VM 커널 사이에 Hypervisor단이 있기는 하나, 이미 VM은 가상화된 하드웨어를 진짜 하드웨어로 인지하고 있기 때문에 실제 물리 자원에 대한 요청을 보낸다고 생각한다.
- 원래 system call에 의해 App → Kernal → Hardware 순서로 서비스를 요청하는데, 이 과정을 하이퍼바이저 단에서 처리해 주는 것이다.
- guest os 가 host 시스템과 완전히 분리되어 실행되기 때문에 guest os 는 자신이 guest os 인지 인식하지 못함
- DOM0 을 통해 하이퍼바이저에게 요청 → guest os 의 모든 명령을 중재
- kvm 이 이를 도와줌
- OS 의 Dual-mode operation(이중 동작 모드): 이중동작 모드는 사용자모드와 커널모드로 구성되어 있다. 사용자가 사용하는 application이 사용자모드에서 작동되다가 OS에게 시스템 요청을 하게 되는 경우, 커널모드로 바꿔 요청된 서비스를 실행한 후에 다시 사용자모드로 전환되는 구조이다.
- OS는 Dual-mode operation(이중 동작 모드)라는 것을 지원한다. 사용자와 OS는 시스템 자원을 공유하는데, 사용자에게 제한을 두지 않으면 사용자가 메모리 내의 주요 자원들을 망가뜨릴 수 있기 때문에 이를 보호하기 위해 마련된 장치인 것이다.
반가상화
- hyper call 이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청을 날릴 수 있다.
- 각 guest os의 커널을 수정해야하는데 이걸 xen 이 함
- 핵심은 Hyper Call이다. Para Virtualization에 사용되는 Guest OS는 Hyper Call이라는 인터페이스를 통해 하이퍼바이저에 직접 요청을 날린다. 방식은 사실 OS에서 Application이 커널에게 system call로 서비스를 요청하는 방식과 동일하다. 요청을 날리는 주체가 Guest OS이고, 받는 대상이 하이퍼바이저라는 점이 다를 뿐이다.
전가상화에서의 Guest OS는 자신이 Guest OS인지 모른다고 하였다. 하지만 반가상화에서는 Guest OS가 Hypervisor에 직접 Hyper Call을 날려야 하기에, 자신이 Guest OS라는 사실을 인지해야만 한다. 따라서 반가상화 하이퍼바이저에 올라가는 Guest OS는 커널을 수정하여, Guest용 OS를 따로 만들어야 한다.
전가상화에서는 내가 Guest OS인지 모르기 때문에 모든 명령어를 가상화하게 된다. 반면 반가상화에서는 이렇게 꼭 필요한 중요한 명령어만 가상화한다. 필요한 명령어만 가상화하니까 당연히 모든 명령어를 가상화하는 전가상화 보다 성능이 좋을 수밖에 없다.
가상화 소프트웨어
위 개념을 활용해서 생각해보면, 하이퍼바이저 역할을 하는 가상화 소프트웨어들이 있다는 것 같다.
HCI 란?
하이퍼바이저, 서버, 스토리지, 네트워크 리소스를 통합 관리 하는 장비 또는 솔루션이다.
HCI는 각 하드웨어에 기본으로 장착된 디스크를 논리적으로 묶어서 별도의 외장 스토리지 없이도 데이터 저장공간으로 사용
- Dell VxRail, Nutanix, VMware vSAN, HPE Simplivity, Cisco HyperFlex 등
Nutanix 가 좀 더 익숙한데, 이에 대해서 잘 정리된 글을 찾았다.
https://smallrich.tistory.com/74
'☁️2024 > Computer Science' 카테고리의 다른 글
[ Security ] SSL 암복호화 (0) | 2024.12.11 |
---|---|
[ Server & OS ] Window 기본 명령어 (0) | 2024.11.28 |
[ Network ] 이중화 ,고가용성, 로드밸런싱 (0) | 2024.11.27 |
[ Server & OS ] Window AD ( Active Directory ) ? (1) | 2024.11.26 |
[ Server & OS ] SNMP 란? - 모니터링 소프트웨어 (1) | 2024.11.25 |