핵심 키워드: #가상화 #하이퍼바이저
3주차에는 클라우드를 실현하는 기술들을 배우면서 가상화와 하이퍼바이저를 중점적으로 학습했다
< 정리할 내용 >
- 클라우드를 실현하는 기술들
- 가상화란
- 가상화 종류(전가상화와 반가상화, 하이브리드 가상화)
- 하이퍼바이저의 기능과 타입
1. 클라우드를 실현하는 기술들
- 가상화 기술 : 서버 같은 하드웨어 리소스(CPU, 메모리, 스토리지 등)을 논리적으로 다룰 수 있게 만드는 기술 -> 하나의 서버를 쪼개서 하나의 컴퓨터처럼 눈속임하는 듯한
- 분산 처리 기술 : 대량의 데이터를 여러 서버에 분산하여 동시에 별도로 빠르고 효율적으로 처리하는 기술 -> 과부하가 걸린 쪽에 쪼개서 지원하는
- 컨테이너 : 하나의 OS 환경에서 App을 실행하기 위한 영역(이 사용자 공간을 컨테이너라고 부름)을 여러 개로 나누어 사용할 수 있음
- 저장기술 : 특성별로 RDB나 NoSQL로 대표되는 다양한 데이터베이스 기술
2. 가상화 기술 ( Virtualization )
- 가상화 : 실체적인 컴퓨터 시스템(하드웨어,네트워크,스토리지 등)의 가상버전을 만드는 것
- 하나의 장치를 여러 개로 나눠 동작시키거나 여러 개의 장치를 묶어 하나의 장치인 것처럼 사용자에게 공유자원으로 제공하는 것 -> 물리 서버의 수가 줄어들기에 공간 절약과 비용 절감 가능하다
- 서버가상화 : 물리적 서버 리소스에 여러 개의 서버 환경을 할당하여 각각의 환경에 os와 App을 실행할 수 있도록 한다
- 가상 서버에는 CPU,메모리, 스토리지, 네트워크 등이 Emulate(모방하다) 되므로 물리 서버처럼 사용 가능하며 각각의 가상서버는 독립된 상태이다 -> 가상 서버 중 하나가 위협(바이러스 등)에 노출되더라도 다른 가상 서버에게 영향을 주지 않는다
- IT 자원의 가상 인스턴스를 만드는 데 사용되는 기술 플랫폼 : 하이퍼바이저 가상화 기술
3. 가상화 종류 ( 전가상화와 반가상화)
가상화는 크게 2가지 타입인 전가상화와 반가상화로 나눌 수 있다. 이 둘을 나누는 기준은 게스트 OS의 수정여부이다
3-1. 전가상화 ( Full Virtualization ) : 컴퓨팅시스템의 하드웨어 자원 전체를 완전하게 가상화하는 방식
- 가상머신에 설치되는 게스트 OS가 수정 없이 구동되어 완전히 독립된 분리 상태로 동작한다
- 전가상화 환경에서 동작하는 게스트 OS는 자신이 물리 시스템에서 동작하는 것과 동일하게 하드웨어와 관련된 명령어를 직접 요청하게 된다. 이 때문에 게스트 OS가 하드웨어에 직접 요청하는 명령을 하이퍼바이저가 적절하게 수행해 주어야 한다.
- 전가상화는 소프트웨어로만 구현되는 전가상화와 하드웨어적 지원을 받는 전가상화 2가지로 구분된다.
3-1-1. 소프트웨어 기반의 전가상화( software assisted full virtualization )
- 가상머신에 설치된 게스트OS로부터 요청이 오면 하이퍼바이저는 요청을 소프트웨어적으로 처리하는데, 이를 바이너리 트랜스레이션( binary translation )이라고 한다
- 바이너리 트랜스레이션은 중간에 위치한 하이퍼바이저가 CPU가 인식할 수 있는 명령으로 변경해야 하므로 오버헤드가 발생하고 구현이 까다롭다
- 이런 단점을 극복하고자 게스트 OS를 수정한 하이퍼콜(hyper-call)방식(=> 게스트OS 일부 수정되며 하이퍼바이저와 통신할 수 있는 API를 추가하는 방식)이 제안되었는데 그것이 반가상화의 개념이다
3-1-2. 하드웨어 기반의 전가상화 ( hardware assisted full virtualization )
- 소프트웨어 기반의 전가상화에서 발생하는 오버헤드 문제를 해결하고자 바이너리 트랜스레이션을 제거하고 가상화기술이 구현된 하드웨어가 직접 수행하는 것
- 대표적인 예가 인텔의 VT-X, AMD의 AMD-V 기술이다 (가상화 기술이 CPU에 탑재된 것)
3-2. 반가상화 ( Para Virtualization ) : 게스트OS를 소프트웨어적으로 수정한 것
- 바이너리 트랜스레이션을 사용할 경우 오버헤드가 많이 발생하기에 이런 소프트웨어적 전가상화의 단점을 보완하기 위해 고안된 방식
- 반가상화의 게스트OS는 자신이 가상화 환경에서 동작하는 것을 인지하며 사용한다 => 하이퍼바이저에게 무엇을 요청할지 알고 있다
- 게스트OS와 하이퍼바이저가 통신을 하기 위해 게스트OS가 이에 맞게 수정되어 하이퍼바이저와 통신할 수 있는 API가 추가(HW 직접 제어를 위함)된다
- 소프트웨어적 가상화보다 성능이 좋으며 특정 애플리케이션 환경에서는 하드웨어 기반 전가상화보다 더 좋은 성능을 보이기도 한다
3-3. 하이브리드 가상화 : 반가상화와 하드웨어 기반 가상화를 조합한 형식
- 하드웨어 기반의 가상화는 OS의 수정이 필요하지 않은 전가상화로 성능이 우수하나, 특정 환경에서는 반가상화보다 성능이 좋지 않은 경우가 발생한다
- 대규모 데이터 분석처리를 요구하는 대형 데이터 센터 환경에서 발생하는 작업일 경우 이슈가 발생하기에 하드웨어 기반 가상화 환경에 반가상화의 네트워크와 디스크 드라이버를 사용함으로써 I/O집약형 작업에 성능 문제를 해결할 수 있다
4. 하이퍼바이저 (Hypervisor)
- 가상머신에 물리시스템 자원에 대한 접근을 제공하는 프로그램 (VMM : Virtual Machine Monitor라고도 한다) => 가상화 SW
- 호스트머신으로 불리는 물리시스템에 설치되어 가상머신(게스트머신)을 생성하고 관리할 수 있다
- 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 SW인 것
4-1.Type 1 하이퍼바이저 = 베어메탈(Baremetal) = 네이티브 방식
- Baremetal = > 깡통에다 올린다는 말
- 물리시스템 위에 하이퍼바이저가 설치되어 실행되고 가상머신을 관리한다
- KVM, Hyper-V, Xen이 대표 제품군
- 타입1 하이퍼바이저는 물리시스템의 OS역할을 하기 때문에 별도의 OS가 필요없다
- 불필요한 오버헤드를 최소화하여 가상머신에서 동작하는 애플리케이션의 실행속도가 호스트머신에 직접 설치되어 운영되는 성능과 근접한 결과를 만들어 낸다
- 물리시스템이 하드웨어적으로 가상화를 지원해야 한다 (CPU가 VT-X,AMD-V 지원여부 확인)
4-2. Type 2 하이퍼바이저 = 호스티드(Hosted) 방식
- 물리시스템 위에 OS가 올라가고 OS(Host OS) 위에 하이퍼바이저가 설치되어 동작되는 방식
- 호스트머신의 OS위에서 마치 어플리케이션처럼 설치된다
- 운영하는 데 있어 편리하다
- 중간에 호스트머신의 OS가 동작하고 있다 => 호스트머신의 하드웨어를 직접 접근할 수 없다 => 오버헤드가 많이 발생할 수 밖에 없는 구조이다
- VMWare, Oracle VirtualBox 가 대표 제품
'클라우드' 카테고리의 다른 글
EC2 RDS 사용하여 PHP게시판 만들기 (0) | 2024.05.23 |
---|---|
6주차 학습정리(2) - ubuntu(Linux) 기본명령어(1) (0) | 2024.04.18 |
6주차 학습정리(1) : putty 설치 및 putty로 AWS EC2 인스턴스에 접속하기 (0) | 2024.04.17 |
5주차 학습정리 : AWS EC2 인스턴스 생성하기 (0) | 2024.04.11 |
2주차 학습정리 - 클라우드 컴퓨팅과 서비스 (1) | 2024.03.21 |