[Cloud Computing] Virtualization(1)

diveintoo·2021년 12월 23일
0
post-thumbnail

본 내용은 심재형 교수님의 Cloud Computing 강의를 기반으로 개인적인 공부를 더한 글입니다.

오늘은 클라우드 컴퓨팅의 꽃이라고도 할 수 있는 가상화를 알아보도록 하겠습니다.

목차는 다음과 같습니다.

  1. Introduction to Virtualization
    -Properties
    -Types of Virtualization
  2. Virtual Machine Monitor
    -Processor Virtualizaton
    -Memory Virtualization
    -I/O Virtualization
  3. OS-Level Virtualization

이번 글에서는 1. Introduction to Virtualization을 알아봅시다.

Introduction to Virtualization

가상화가 왜 등장했는지 알아보기 위해 이와 반대되는 개념인 Physical Machine에 대해 알아봅시다.

Physical hardware

우리가 다루는 컴퓨터를 physical machine이라고 할 수 있습니다.

physical machine 하드웨어의 단점은 resources가 underutillized 된다는 것입니다.

CPU의 사용량만 보더라도 사용하지 않는 Idle time이 길다는 것을 알 수 있습니다.

따라서 이러한 Idel time을 줄이고 CPU의 자원을 최대로 사용할 수 있는 방식을 찾기 위해 virtualization이 등장했습니다.

Software

physical machine의 소프트웨어는 physical HW와 tight하게 연결되어 있습니다.

또한 machine마다 하나의 OS만 돌아갈 수 있고, 이 OS가 ISA를 통하여 HW를 컨트롤합니다.

Virtual Machine

그렇다면 virtual machine은 무엇일까요?

위에서 본 것과 같이 physical machine의 HW utilization을 높이기 위해 고안되었는데요.

그러기 위해서 하나의 HW resources를 여러 개의 machine들이 공유하도록 합니다.


이것이 저희가 알고 있는 physical machine의 모습입니다.


그리고 이것이 virtual machine인데요. 하나의 machine을 여러 개의 machine으로 쪼갤 수 있도록 software를 추상화합니다.

OS와 application을 encapsulation하여 마치 하나의 hardware인 것처럼 행동합니다.

그리고 이 instance들과 HW 사이에 Virtualization Layer가 존재하는데요.

이 layer는 HW와 OS의 결합을 줄이고, 각 instance가 서로 볼 수 없고 영향을 끼치지 않도록 isolation하게 만듭니다.

또한 Virtual machine들과 Physical HW를 연결하는 역할을 합니다.

자세한 설명은 뒤의 챕터에서 더 진행하도록 하겠습니다.

Properties

가상화는 4가지 특성을 가지고 있습니다.

하나씩 알아보도록 합시다.

Isolation

위에서 봤듯이, 여러 개의 Virtual machine들이 하나의 Physical HW 위에서 돌아가게됩니다.

이 때 각 VM들은 자신이 가상화되었다는 것을 알지 못합니다.

따라서 각 머신들이 서로 고립되도록 합니다. 이것이 isolation입니다.

성능과 소프트웨어가 고립되는 것은 당연한 것입니다.

하지만 가장 중요한 것은 fault isolation입니다. 1번 VM에서 발생한 결함이 2번 VM에 영향을 끼치지 못하도록 분리시키는 것입니다.

Encapsulation

다음은 캡슐화입니다. 가상화는 파일로 VM을 운영함으로써 모든 VM의 state를 capture합니다.

따라서 VM의 스냅샷이나 클론을 만들 수 있습니다.

Portability

HW와 SW가 타이트하게 연결되어있던 physical machine과 달리, VM은 physical hardware에 독립적이기 때문에 돌아가고있는 VM들을 다른 HW로 옮길 수 있습니다.

Interposition

모든 VM instance들은 VM Layer를 지나가도록 설계되어있습니다.

따라서 VMM는 모든 operation을 보고 수정하거나 거부할 수 있습니다.

  • VMM(= Virtual Machine Monitor) : Virtual Machine을 생성하고 구동하는 소프트웨어이며, Hypervisor라고도 불립니다.

Types of Virtualization

두 가지의 분류가 있습니다.

하나는 가상화 범위에 따른 분류이고, 또 하나는 hypervisor 구조 내 호스트 운영체제의 관여에 따른 분류입니다.

Process virtualization vs System virtualization

가상화 범위에 따라 Process virtualization와 System virtualization로 분류됩니다.


(a)가 process VM, (b)가 system VM입니다.

process VM에서는 HW와 OS 위에서 process만 가상화가 됩니다. 따라서 가상화된 software는 OS나 user-level의 instruction으로 번역합니다.

사용되는 예로는 Java JVM이나 docker containers 등이 있습니다.

반면 system VM은 OS를 포함한 하나의 system을 가상화하기 때문에 하드웨어에서 사용하는 ISA로 번역하게 됩니다.

예로는 VMware workstation 등이 있습니다.

Native metal vs Hosted

System VM은 또 두 가지의 type으로 분류됩니다.

type1은 왼쪽 그림으로 보이는 Native/bare metal입니다.

중간에 OS를 끼지 않고 바로 Hypervisor가 설치되는 형태로, Xen이나 ESX가 이에 속합니다.

VM이 하드웨어에 바로 설치되므로 자체적으로 통신을 하며 type2보다 성능이 더 좋기 때문에 주로 Server에서 사용합니다.

그리고 오른쪽 그림은 type2의 Hosted인데요.

Host OS 위에서 하나의 process처럼 돌아가는 구조입니다. 따라서 하드웨어와 소통할 때 Host OS에 의존하게됩니다.

하지만 type1에 비해 설치가 쉽기 때문에 보통 type2를 많이 사용합니다.

Mac에서 Window를 돌리는 것이 이것의 예에 속합니다.

살펴보자면 Host OS는 Mac이고, 그 위에 VMware와 같은 Hypervisor를 깐 뒤에 Window를 Guest OS로 실행하는 것입니다.


오늘은 가상화가 나오게 된 배경과 특징, 타입 등을 살펴보았습니다.

뭔가 알듯말듯하지만 다음 시간에 더 알아보면서 감을 더 잡아보겠습니다.

0개의 댓글