logo
Published on

HW1. 클라우드 컴퓨팅의 정의와 가상화

Authors
  • avatar
    Name
    seren-wib
    Twitter
Contents

클라우드 컴퓨팅 첫 번째 과제로 교재 1장 연습문제 다섯 개를 정리했다.

1. 클라우드 컴퓨팅의 정의

필요할 때마다 컴퓨터 자원을 빌려 쓰는 것. 전기, 가스, 수도처럼 쓰는 만큼 내는 유틸리티 컴퓨팅이다. 시작은 1961년 존 매카시가 말한 유틸리티 컴퓨팅이다.

출처정의
NIST5가지 특성, 3가지 서비스 모델, 4가지 배포 모델로 정의
가트너확장 가능하고 탄력적인 IT 기능을 서비스 형태로 제공하는 컴퓨팅 방식
포레스터 리서치인터넷 기술을 통해 사용량에 따라 과금하거나 셀프서비스로 제공되는 표준화된 IT 기능

연관 키워드

  • 온디맨드 서비스(On-Demand Service), 유연성(Flexibility), 자원의 재활용
  • 가상화(Virtualization), 데이터센터(Data Center)
  • IaaS, PaaS, SaaS
  • 프라이빗, 퍼블릭, 하이브리드 클라우드
  • Amazon EC2, Google, Azure

2. 컴퓨팅의 성능과 용량을 늘리는 방법

가장 먼저 떠올리는 건 CPU, 메모리 같은 부품을 업그레이드하는 거다. 하지만 한 대의 컴퓨터를 키우는 데는 한계가 있다.

그래서 두 방향으로 간다.

  • 클러스터링: 여러 컴퓨터를 묶어 하나의 목적으로 쓴다. 묶어서 성능을 올리는 건 오케스트레이션이 바탕이다.
  • 자원 분리: 한 컴퓨터의 자원을 나눠서 여러 용도로 쓴다. 이건 가상화가 바탕이다.

3. 컴퓨터 가상화의 세 범주

가상화는 CPU 가상화, 메모리 가상화, I/O 가상화로 나뉜다.

가상화 방식

게스트 OS를 고치느냐에 따라 나뉜다.

  • Full virtualization: 게스트 OS를 수정하지 않는다.
  • Para virtualization: 게스트 OS를 수정한다.

하이퍼바이저

가상화를 구현하는 소프트웨어다. 설치 위치에 따라 두 가지로 나뉜다.

  • Type 1 (native): 하드웨어 위에 하이퍼바이저를 바로 설치하고, 그 위에 가상머신을 올린다.
  • Type 2 (hosted): 하드웨어 → 호스트 OS → 하이퍼바이저 → 게스트 OS 순서다.

범주별로 어떻게 가상화되는지

CPU 가상화

  • 게스트 OS가 실행하는 특권 명령을 하이퍼바이저가 대신 처리한다.
  • 게스트를 수정하지 않으면 하이퍼바이저가 명령을 가로채서 흉내 낸다.
  • 게스트를 수정하면 그 명령을 hypercall로 바꿔 하이퍼바이저에 직접 요청한다.

메모리 가상화

  • 주소 변환이 한 단계 늘어난다: 게스트 가상주소 → 게스트 물리주소 → 실제 물리주소.
  • 하이퍼바이저가 섀도 페이지 테이블로 이 변환을 관리한다. VM 안의 물리주소는 가짜라서, 게스트 가상주소를 실제 주소로 바로 연결하는 테이블을 따로 두는 거다.
  • 또는 수정된 게스트가 페이지 테이블을 바꿀 때 하이퍼바이저에 요청한다.

I/O 가상화

  • 여러 VM이 디스크, 네트워크 카드 같은 물리 장치를 나눠 쓴다.
  • 하이퍼바이저가 장치를 소프트웨어로 흉내 내거나, 게스트에 가상화 전용 드라이버(virtio 등)를 설치해 직접 통신한다.

4. HPC, HTC, 그리드, 클라우드는 어떻게 이어지나

키워드한 줄 설명
HPC빠른 계산이 목표. 슈퍼컴퓨터
HTC처리량이 목표. 많은 작업을 처리하려고 노는 자원의 활용성을 높임
그리드 컴퓨팅전 세계에 흩어진 쉬는 컴퓨터를 묶어 씀. 오케스트레이션 기반
클라우드 컴퓨팅한 컴퓨터의 자원을 가상머신 단위로 나눠 씀. 가상화 기반

HPC는 하나의 계산을 빨리 끝내는 게 목표다. 슈퍼컴퓨터가 여기 해당한다.

처리량이 목표라면 HTC를 쓴다. 많은 작업을 처리해야 하니까 놀고 있는 자원을 최대한 활용하는 게 핵심이다.

HTC에 속하는 게 그리드 컴퓨팅과 클라우드 컴퓨팅이다. 둘 다 쉬는 자원을 활용한다는 역할은 같지만 구현 방식이 다르다.

  • 그리드는 전 세계에 흩어진 유휴 컴퓨터들을 묶어서 쓴다. 그래서 오케스트레이션이 바탕이다.
  • 클라우드는 하이퍼바이저로 한 컴퓨터의 자원을 가상머신 단위로 나눠서 쓴다. 이게 가상화다.

5. 데이터센터 운영의 3대 이슈와 클라우드

이슈클라우드로 해결하는 방법
유휴 자원 찾기 (utilization)가상화로 유휴 자원을 가상머신 단위로 나눠 사용자에게 서비스로 제공
문제 서비스 분리 (service stability)하이퍼바이저가 가상머신끼리 격리해서 A의 작업이 B에 영향을 주지 않음
신속한 복구 (fast recovery)가상머신을 이미지로 저장해 두고 새로 띄우거나 다른 서버로 옮겨 빠르게 복구

세 이슈 모두 가상화로 풀 수 있다. 자원을 잘게 나누고, 서로 격리하고, 파일 하나로 통째로 옮길 수 있다는 가상머신의 성질 덕분이다.