가상화

0

가상화란?

  • 가상화는 물리적인 하드웨어(HW) 장치를 논리적인 객체로 추상화 하는것을 의미한다.
  • 즉, 하나의 하드웨어(HW)를 여러개 처럼 동작시키거나 반대로 여러 개의 장치를 묶어 하나의 장치 인 것처럼 사용자에게 공유자원으로 제공할 수 있다는 것입니다. 하나의 자원을 쪼개서 쓰거나, 여러개의 자원을 하나인것 처럼 묶어서 쓸 수 있도록 해주는 것이다.
  • 가상 머신의 중요한 특징은 안에서 돌아가는 소프트웨어가 가상 머신이 제공하는 환경과 자원에 제한을 받으며 가상 세계를 벗어날 수 없다는 것이다.
  • 가상화된 운영 환경은 크게 두가지가 있다.

가상머신(VM)

  • 물리적 컴퓨터에서 실행하는 모든 소프트웨어를 싱행하는 데 사용할 수 있는 "소프트웨어 컴퓨터" 로 생각할 수 있다.
  • 컴퓨팅 환경을 소프트웨어로 구현한 것, 컴퓨터를 에뮬레이션 하는 소프트웨어이다.

    에뮬레이션 : 에뮬레이터는 다른 프로그램이나 장치를 모방(시스템 복제)하는 능력이다. 즉, 소프트웨어로 생성한 장치가 물리적인 다른 장치라고 믿도록 속이는 것.


  • 가상 머신은 크게 시스템 가상 머신프로세스 가상 머신으로 나뉜다.

1. 시스템 가상 머신(하드웨어 가상 머신)

  • 하드웨어 가상 머신이라고 하며 각 운영 체제를 실행하는 가상 머신 사이의 기초가 되는 물리 컴퓨터를 다중화한다.
  • 가상화를 제공하는 소프트웨어: 가상 머신 모니터, 하이퍼바이저 가 있다.

    하이퍼 바이저 : 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. 가상화 머신 모니터(Virtual Machine Manager, VMM)라고 부른다.
    type-1
    하이퍼바이저 위에 게스트 os가 바로 탑재되는 형태
    예) VM Server, Hyper-V 등
    type-2
    호스트 운영체제 위에 하이퍼바이저가 있다.
    예) Vmware Workstation, Virtual Box 등

  • 시스템 가상 머신의 이점

    가상 머신은 실제의 컴퓨터가 제공하는 것과 다른 형태의 명령어 집합 구조(ISA)를 제공한다.

    ISA : 프로세서가 이해하고 수행할 수 있는 명령어 집합 구조.
    즉, 프로세서가 사용하는 언어로 예를 들어 영어권 사람에게 한국어로 지시하면 이해하지 못하는 것처럼 프로세서도 이해할 수 있는ISA가 다르다. 컴퓨터가 작업을 수행하기 위해 프로세서가 이해할 수있는 명령이 ISA이다.

  • 시스템 가상머신의 방향

    다양한 OS를 제공하기 위해 멀티 부팅을 지원한다. 각각 독립되어 서로에게 영향을 미치지 않는다.
    - 관리 용이상과, 외부 위험으로부터 분리된 환경이라 다양한 테스트 환경에 적합하다.

2. 프로세스 가상 머신(Virtual Machine, VM)

  • VM은 응용 프로그램 가상 머신이라고도 하며, 운영 체제 안에서 일반 응용 프로그램을 돌리고 단일 프로세스를 지원한다.
  • VM은 호스트 하드웨어에서 실행하는 프로그램으로서, 호스트OS 또는 호스트 시스템에서 실행하는 다른 VM과 분리하여 자체 게스트OS 및 애플리케이션을 갖춘 격리된 환경을 제공한다.

    호스트OS

    하이퍼바이저를 설치하는 실제 운영체제(윈도우, macOS, 리눅스 등)을 호스트OS

    게스트OS

    하이퍼바이저 위에 만든 가상 머신에 설치된 운영체제를 게스트OS

VirtualBoxVMWareParallels
Host OSWindows, Linux, Mac, Solaris, FreeBSD등Windows, Linux, MacWindows, Linux, Mac
Guest OSDOS, Windows, Linux, FreeBSD, Solaris등DOS, Windows, Linux, FreeBSD, SolarisDOS, Windows, Linux, OS2
제공사OracleVMWareParallels IP Holdings
라이센스무료(오픈소스)쉐어웨어/상용(79~189)$유료(49 ~ 79)$

컨테이너

  • 어플리케이션(App)과 App을 구동하는 환경을 격리한 공간을 의미한다.
  • 가상화의 범주 내에서 컨테이너는 기존 하이퍼바이저와 게스트OS를 필요로 했던 가상머신 방식과는 달리, 프로세스를 격리하여 모듈화된 프로그램 패키지 로써 수행하는 것을 의미한다.
  • 컨테이너 기술이 등장하게 된 계기는 개발한 프로그램이 구동환경의 달라짐에 따라 예상하지 못한 각종 오류를 발생시키는 것을 해결하기 위함이었다.
  • 컨테이너는 호스트 시스템의 커널을 다른 컨테이너들과 공유한다는 점에서 크게 차이가 난다.

    컨테이너 기술의 장점

    1. 시스템 성능 부하가 적다.
      운영체제 위에서 하나의 어플리케이션이 동작하는 것과 동일한 수주의 컴퓨팅 자원을 필요로 한다.
    2. 자원에대한 배분이 좀 더 유연하다.
      컨테이너에서 실행중인 서비스가 더 많은 가용성이 필요하거나 적을때, CPU에 대한 사용량이나 사용자가 설정한 범위에 따라 자동으로 확장, 축소 가능하다.
    3. 구동 방식이 간단하다.
      컨테이너는 어플리케이션이 실행되기 위한 모든(라이브러리, 바이너리 등)파일들을 패키지화 되어있어서 시스템에서 실행만 하면 된다.
      반면, 가상머신(VM)은 새로운 서비스를 제공하기 위한특정 어플리케이션을 실행시키려면, 먼저 새로운 가상머신을 띄우고 자원을(미리 세팅한 대로) 할당한다음, 필요한 게스트OS를 부팅한 후 어플리케이션을 실행해야한다.

    컨테이너 기술의 단점

    1. 자원의 격리와 쿼터 제한이 어렵다
      가상머신(VM)은 가상 하드웨어를 직접 제어할 수 있기 때문에 높은 수준의 자원 관리를 수행 할 수 있다.
      반면, 컨테이너는 가상 하드웨어가 없기때문에 가상머신에 비해 자원 관리가 떨어지게 된다.
    2. 호스트의 운영체제에 실행 환경이 묶인다
      컨테이너는 호스트 운영체제의 커널을 공유하기 때문에 호스트 운영체제 환경을 그대로 가져갈 수 밖에 없다.
      만약 리눅스에 컨테이너를 띄워서 윈도우즈 실행 환경을 만들 수 없다는 말이다.
항목컨테이너가상머신
하이퍼 바이저XO
Guest OSXO
커널 지원 분리XO
시작 및 종료 시간빠름느림
자원 효율성높음낮음

한줄 요약

하이퍼바이저 : 컴퓨터에서 둘 이상의 운영체제(OS)를 실행할 수있는 고유한 유형의 소프트웨어이다.
type1 : 하이퍼 바이저가 하드웨어 바로 위에서 실행되는 방식.
type2 : 하드웨어 위에 호스트 운영체제 위에 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작한다.
컨테이너 : 가상머신(VM)과 다르게 하이퍼바이저와 게스트os가 필요하지 않아 더 가볍다.

0개의 댓글