가상화와 클라우드

웅평·2024년 7월 10일
0

가상화란?

가상화를 이용하면 Windows나 Linux와 같은 여러 운영 체제를 하나의 물리적 머신에서 동시에 실행할 수 있다.
하이퍼바이저라 불리는 소프트웨어가 하드웨어에 직접 연결되며 1개의 시스템을 가상 머신(VM)이라는 별도의 고유하고 안전한 환경으로 분할할 수 있다.
1개의 물리적 하드웨어 시스템에서 다수의 시뮬레이션 환경 생성하기 위한 목적이며, 특정 용도의 패키징된 리소스를 특정 사용자에게 제공한다.
확장성(scale UP), 싱글 테넌트

  • 가상화(Virtualization)는 물리적인 컴포넌트(Components, HW장치)를 논리적인 객체로 추상화 하는 것을 의미. 마치 하나의 장치를 여러 개처럼 동작시키거나, 반대로 여러 개의 장치를 묶어 하나의 장치인 것처럼 사용할 수 있는 기술
  • 가상화의 대상이 되는 컴퓨팅 자원은 프로세서(CPU), 메모리(Memory), 스토리지(Storage), 네트워크(Network), 그래픽 처리 장치(GPU)가 있으며, 이들로 구성된 서버나 장치들을 가상화함으로써 높은 수준의 자원 사용률과 분산 처리 능력을 얻을 수 있음

Hypervisor

  • 물리적 머신을 다수의 가상 머신으로 분할할 수 있도록 해준다.
  • 가상화가 지원되는 하드웨어 사용 유무에 때라 전체를 가상화하는 전가상화, 하드웨어를 완전히 가상화하지 않는 반가상화로 분류된다.

가상화 기술의 종류

서버 가상화 ( Server Virtualization )

서버의 효율성을 높이기 위해 등장한 기술로 가상화 개념의 시초

  • 가상화를 가능하게 하는 하이퍼바이저(Hypervisor), 하이퍼바이저에 의해 제어되며 각종 애플리케이션을 실행하기 위한 컴퓨팅 환경인 가상 머신(Virtual Machine, VM)으로 구성

  • 하드웨어를 가상화하기 위해서는 하드웨어뿐만 아니라 각각의 가상머신들을 관리할 가상머신모니터(VMM: Virtual Machine Monitor)와 같은 중간 관리자가 필요. 이를 하이퍼바이저라고 하며 VM이 동작할 수 있는 환경을 제공

  • 하이퍼바이저는 하드웨어의 물리적인 리소스를 VM들에게 제공하고, VM과 하드웨어간의 I/O(Input / Output) 명령을 처리. Virtualization Layer(가상 레이어)에 위치하며 하드웨

데스크탑 가상화 (Virtual Desktop Infrastructure, VDI)

데이터 센터의 서버에서 운영되는 가상의 PC 환경을 의미

​물리적으로는 존재하지 않는 가상의 개별 컴퓨터로 사용자는 모니터, 키보드, 마우스, 스피커 등의 필수적인 입출력 장치만을 활용하거나 매우 단순화된 인터페이스만 가지고 컴퓨터를 활용할 수 있음
​가상의 데스크탑을 마치 로컬 시스템처럼 활용할 수 있으며, 모든 작업의 프로세싱과 저장은 데이터 센터에 위치한 서버에서 처리됨
VDI 환경에서는 언제 어디서든 네트워크만 연결이 된다면 서버에 접속하여 자신만의 PC환경을 구동시킬 수 있음. 사용자는 보통의 PC보다 5~10% 수준의 전력 소모만으로도 유사한 컴퓨팅 환경을 구현
또한 데이터가 로컬 장치가 아닌 서버에 위치하기 때문에 복원, 생성 등의 작업이 쉬워지며, 보안 측면에서도 데이터 센터급의 서비스를 보장받을 수 있음

애플리케이션 가상화 (Application Virtualization)

  • 해당 응용 프로그램이 실행되는 운영체제로부터 응용 소프트웨어를 캡슐화하는 기법

  • 캡슐화된 응용프로그램은 실제 설치되지는 않으나, 마치 설치된 것처럼 실행됨. 예를 들어 마이크로소프트의 윈도우(Windows) 7 OS는 별다른 수정 사항 없이 구형 OS인 윈도우 XP를 가동할 수 있도록 함. 사용자가 윈도우 XP에서만 구동되는 구형 프로그램을 실행하고자 할 때 용이하게 쓰임

  • 이러한 캡슐화는 한 응용 프로그램이 업데이트됨에 따라 관련된 다른 응용프로그램이 동작하지 않는 부작용을 방지. 따라서 애플리케이션 관리가 수천 개에 달하는 기업의 경우, 가상화된 애플리케이션은 관리자가 배포 및 업데이트를 할 때 상대적으로 유용

하이퍼바이저

하이퍼바이저의 개념

Virtual Machine Diagram. 출처 :

하드웨어를 가상화하기 위해서는 하드웨어들을 관장할 뿐만 아니라 각각의 가상머신들을 관리할 가상머신모니터(VMM: Virtual Machine Monitor)와 같은 중간관리자가 필요하다. 이 중간관리자를 하이퍼바이저(Hyperviser)라고 하며, VM이 동작할 수 있는 환경을 제공 한다

하이퍼바이저는 결국 아래와 같이 정의할 수 있다.

호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 소프트웨어.
하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자. VMM(Virtual Machine Monitor)이라고도 불림.

  • VM은 기본적으로 컴퓨터의 에뮬레이션으로, 프로그램을 실제 컴퓨터처럼 실행한다. VM들은 “하이퍼바이저”를 통해 물리적 기계(machine) 위에서 돌아간다.

하이퍼바이저 종류

Type1 하이퍼바이저 : 베어메탈(Bare-metal)기반

하이퍼바이저가 하드웨어 바로 위에서 실행되는 방식이다. 하이퍼바이저가 하드웨어를 직접 제어하기 때문에 자원을 효율적으로 사용할 수 있고, 별도의 호스트OS가 없으므로 오버헤드가 적지만 여러 하드웨어 드라이버를 세팅해야 하므로 설치가 어렵다.

ex) Xen, 마이크로소프트 Hyper-V, KVM

Type2 하이퍼바이저 : 호스트(Host) 기반

Type2는 하드웨어 위에 호스트 운영체제(Host OS)가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작한다. 이 타입의 하이퍼바이저에 의해서 관장되는 가상머신의 게스트OS는 하드웨어 위에서 3번째 수준으로 구동된다. 기존의 컴퓨터 환경에서 하이퍼바이저를 활용하는 것이기에 설치가 용이하고 구성이 편리한 장점이 있다. 반면, Type1 보다는 성능이 떨어질 수 있다

ex) VMware server, VMware Workstation, Virtual box

하이퍼바이저의 특징

장점
하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당받는다.

즉, 각 VM마다 논리적으로 분리되어 있어서 한 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다.

단점
1. 완전한 운영체제가 설치되기 때문에 대량의 메모리가 필요하다.

우분투 리눅스 서버를 올리려고 할 때, 메모리상에 로드되는 내용만해도 500MB 정도가 소모된다. 예를 들어, 가상머신 10개에 똑같이 우분투 리눅스 서버를 올리려고 할 때, 5GB 정도의 메모리가 사용될 수 있다. 물리적인 메모리의 양이 작은 경우 쓰레싱(Thrashing)을 초래해서 성능 저하가 발생할 수도 있다.

  1. CPU 성능 확보에 대한 문제가 있다.

서로다른 애플리케이션이 CPU 자원에 대한 요청을 할 때 CPU 자원에 대한 경쟁이 발생하게 된다. 이 때, 우선순위 등을 주어서 운영체제 내에서는 효율적으로 관리를 할 수 있지만 가상화된 CPU가 실제 물리 CPU를 어떻게 얻을지는 정해지지 않았다. 예를 들어 1번 게스트 OS에 서 우선순위가 높다고 해도, 게스트 운영체제 자체가 우선순위가 낮다면 물리적인 CPU 자원을 확보하는게 쉽지 않을 수 있다.
이와 같은 원인으로 CPU 자원 경쟁에 따른 성능저하가 있을 수 있다. 가상화 서비스에서는 이런 문제를 해결하기위해 Dedicate 서비스를 제공한다. 즉, CPU 같은 물리적인 자원을 특정 게스트 운영체제에게 전담배치시키는 서비스이다.

  1. 시스템 운영에 대한 통합적인 지식이 필요하다.

일반적인 시스템에서는 소프트웨어 개발과 시스템 운영이 분리가 되어 있었다. 하지만 가상머신체제에서는 이미 만들어진 시스템 위에 새로운 시스템을 구축하는 개념이기 때문에 통합적인 시스템 운영 지식과 소프트웨어 개발 지식이 통합 관리되어야하는 부담이 있다.

클라우드란?

클라우드 컴퓨팅은 네트워크 전체에서 컴퓨팅, 네트워크, 스토리지 인프라 리소스, 서비스, 플랫폼, 애플리케이션을 사용자에게 온디맨드로 제공하는 원칙이자 접근 방식
요약하자면 온디맨드 사용을 위한 가상 리소스 풀링과 자동화하기 위한 목적이며, 다양한 용도의 다양한 리소스를 사용자 그룹에 제공한다.
확장성(scale out), 멀티플 테넌트

장점
컴퓨팅 리소스를 필요할 때 필요한 만큼 확장하고, 필요하지 않을 때는 축소할 수 있어 유연하게 활용
초기 선투자 비용 없음 -고정비용을 가변비용으로 대체 미리 서버를 구매할 필요가 없다.
온 프레미스 - 초기 투자 비용 높음
클라우드 - 소량
운영 비용 절감- 사용한 만큼만 지불하며 규모가 경제로 인한 지속적인 비용 절감
(무조건적으로 클라우드 운용 비용이 낮다고 볼수는 없다.)
탄력적인 운영 및 확장 - 필요 용량에 대한 에측 불필요, 수요에 맞춘 유연한 확장성
비용 효율성 뿐만 아니라 최적의 성능 및 안정성 제공 가능
(클라우드 리소스는 사용하지 않고 가지고만 있어도 비용이 청구되기 때문에 비용 관리를 가장 잘해야한다. 클라우드의 장점이 비용 절감 이기 때문에 관리가 중요)
속도 및 민첩성 - 수 분 안에 빠르게 구축가능
비즈니스에만 집중 가능
글로벌 확장성 - 세계 곳곳에 데이터 센터가 존재해서 통신 가능

가상화와 클라우드의 차이는??

가상화 환경이 진화된 게 클라우드
가상화는 단일한 물리 하드웨어 시스템에서 여러 시뮬레이션 환경이나 전용 리소스를 생성할 수 있는 기술이고, 클라우드는 네트워크 전체에서 확장 가능한 리소스를 추상화하고 풀링하는 IT 환경
즉 가상화는 기술이고 클라우드는 환경이란 것

https://www.redhat.com/ko/topics/cloud-computing/cloud-vs-virtualization
Red Hat 페이지를 보면 다음과 같이 설명하고 있다.

다음과 같은 IT 시스템을 설정한 경우 클라우드를 구축한 것입니다.
ㅇ 네트워크를 통해 다른 컴퓨터로 액세스 가능
ㅇ IT 리소스의 리포지토리 포함
ㅇ 신속하게 프로비저닝 및 확장 가능
클라우드가 제공하는 셀프 서비스 액세스, 자동 인프라 스케일링, 동적 리소스 풀이라는 추가적인 이점은 전통적인 가상화와의 가장 큰 차별점이다.

출처
https://velog.io/@yange/%EA%B0%80%EC%83%81%ED%99%94%EC%99%80-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
https://claudy.tistory.com/entry/%EA%B0%80%EC%83%81%ED%99%94Virtualization%EB%9E%80%EA%B0%80%EC%83%81%ED%99%94-%EA%B0%9C%EB%85%90-%EA%B0%80%EC%83%81%ED%99%94-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%B0%A8%EC%9D%B4
https://ljg960730.tistory.com/190#------%--Type-%--%ED%--%--%EC%-D%B-%ED%-D%BC%EB%B-%--%EC%-D%B-%EC%A-%--%--%-A%C-%A-%--%EB%B-%A-%EC%--%B-%EB%A-%--%ED%--%---Bare-metal-%EA%B-%B-%EB%B-%--

0개의 댓글