* 가상화(Virtualization)란?
가상화는 소프트웨어 기술을 활용해서, 물리적 자원을 논리적으로 가상화하여 물리적 한계에 종속되지 않고 원하는 형태로 해당 자원을 분리, 통합, 이동할 수 있게 하는 기술. 물리적인 하드웨어에서 서버를 직접 구축하여 component끼리 묶여있는경우에는 component가 하나라도 고장나면 시스템을 사용하지 못하고 신뢰성이 낮아진다. 또한 이런 서버를 이전할 경우, 파일과 데이터베이스 백업, 운영체제 재설치등 상당한 시간이 소요된다. 따라서 가상화를 이용하여 하드웨어와 운영체제를 분리해서 기존의 서버에서 OS와 응용들을 파일처럼 복사하는 것이다.
컴퓨터 시스템은 하드웨어층과 소프트웨어층으로 나눌 수 있다. 소프트웨어층은 시스템소프트웨어층(운영체제, 미들웨어, 런타임 라이브러리)와 응용소프프퉤어층으로 나눌 수 있다. 가상소프트웨어는 구현 계층에 따라서 분류된다. Type1은 Hardware바로 위에 하이퍼바이저가 구현되고, Type2는 운영체제 위에 하이퍼바이저가 구현된다. 가상화 소프트웨어 구현방법에 따라 전가상화(full virtualization)과 반가상화(para virtualization)으로 나눌 수 있고, 가상화목표에 따라서 서버 가상화, 스토리지 가상화, 네트워크 가상화 등으로 나눌 수 있다.
*하이퍼바이저(Hypervisor): 프로세서나 메모리와 같은 다양한 컴퓨터 자원에 서로 다른 각종 운영 체계(OS)의 접근 방법을 통제하는 얇은 계층의 소프트웨어.
1. Type1 Hypervisor
-물리자원과 운영체제 사이에 하이퍼바이저를 추가한 것이다.
-호스트 머신의 하드웨어에서 실행되어서 bare-metal hypervisor라고도 한다.
-하이퍼바이저는 초소형 OS이며, 역할은 그 위에 설치된 가상머신들을 실행하는 것이다.
-메모리 사용량이 적고, 가상화에 따른 부하가 적다.
EX) XenSource의 Xen, VMware의 ESX
2. Type 2 Hypervisor
-Host OS상에서 가상 자원들을 생성하고, 이 자원 상에서 Guest OS가 동작한다.
-OS업체에서 채택하기 편한 접근방법이다.
-가상화 층 도입에 따른 성능저하가 발생할 수 있지만, 소프트웨어를 개발하여 다양한 OS환경에서 테스트할 때는 유용하다.
EX) MS의 virtual server, Linux의 KVM
3. 미들웨어 기반 가상화
-프로그래밍언어, 런타임 라이브러리 수준에서 가상머신을 제공한다.
-이 가상머신 상에서 하드웨어 독립적인 프로그램이 수행된다.
EX) java: Platform Independent Programming Language
*가상화와 클라우드 컴퓨팅 서비스
사용자가 자신의 서버를 스스로 자동으로 생성하고 운영한다. 서버의 워크로드에 변화가 심할 때, 물리적으로 고성능 사양이나 저성능 사양으로 이동이 신속하게 이루어져야한다. CPU, storage, OS등 모든 컴포넌트를 각각 분리하여 논리적으로 추상화한다. 추상화한 컴포넌트들은 파일과 같이 독립적으로 이동이 가능한 형태이다.
1) Compute Cluster: 계산을 담당하는 물리적자원으로 이 위에는 하이퍼바이저(ESXi,free)만을 설치한다. 하이퍼바이저는 특수한 OS에 해당하고, 역할은 가상머신을 실행하는 것이다.
2) Management Software(VMware의 vSphere): compute cluster를 제어하며 고가의 소프트웨어이다. compute에 가상머신을 설치해주고, 상황에 따라 다른 compute로 옮겨 오토 스케일링한다.
3) SAN(Storage Area Network) : 저장만을 담당하는 컴퓨터클러스터로, VM과 데이터는 모두 SAN에 독립적, 안전하게 여러 복사본으로 저장된다.
'Cloud Computing' 카테고리의 다른 글
6. MPI program: Coding, Compile, and Run (0) | 2020.10.21 |
---|---|
5. 병렬 프로그램의 성능 평가 (Performance) (0) | 2020.10.21 |
4. 인터커넥션 네트워크 (Interconnection Networks) (0) | 2020.10.21 |
3. 병렬 하드웨어 (Parallel Hardware) (6) | 2020.10.20 |
1. 클라우드 컴퓨팅 정의 (0) | 2020.10.20 |