Skip to content

[03-15] 클라우드 컴퓨팅 (2) - 가상화  #34

@snaag

Description

@snaag

클라우드 컴퓨팅 (2) - 가상화

참고자료

가상화 란

하나의 머신 (컴퓨터) 의 리소스를 여러개의 머신 (컴퓨터) 처럼 쓸 수 있도록 하는 것 을 말합니다. 이 머신은 가상 머신 (VM, Virtual Machine) 이라고 합니다.

즉 가상화란 하나의 실제 머신을 여러대의 가상 머신으로 만들어서 사용하는 것을 말합니다. 예를들어 학교다닐 때 컴퓨터에 VMWare 를 설치해서 각기 다른 OS 를 갖는 여러 머신을 실행시키는 과제를 한 적이 있는데요, 바로 이 머신이 VM 입니다.

원래의 OS 를 Host OS 라고 하는데, 이 Host OS 입장에서는 다른 VM 은 일개 process 입니다.

image

(이미지 출처: Virtualization in Cloud Computing and Types@geeksforgeeks)

실제로는 하나의 컴퓨터이지만, 각 VM 들은 자체적으로 OS 를 사용하고 리소스를 관리하므로 독립적인 머신처럼 작동합니다. 이처럼 독립되어있는 환경을 sandbox 라고 하는데, VM 도 sandbox 의 일종입니다.

번외로 샌드박스란...

샌드박스(sandbox)란 외부로부터 들어온 프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는 것을 막는 보안 형태이다.

호스트 머신이나 운영 체제에 손상을 입히지 않고 확인되지 않거나 신뢰할 수 없는 서드파티, 공급자, 사용자, 웹사이트로부터 잠재적으로 테스트되지 않거나 신뢰하지 못하는 프로그램이나 코드를 실행하기 위해 종종 사용된다.

고도로 제어되는 환경을 제공한다는 측면에서 샌드박스는 가상화의 특정 예시로 간주할 수 있다. 샌드박스는 소프트웨어가 호스트 장치에 위험을 주지 않게 하면서 바이러스나 기타 악성 코드를 포함할 수 있는 미검증된 프로그램을 테스트하기 위해 종종 사용된다.

- 샌드박스@wikipedia

가상화의 장점

  • 리소스 효율성
    • 가상화 전에는 10대의 머신이 필요하다면 10대의 물리 머신과 리소스가 필요하였음, 그러나 가상화를 하면 이보다 적은 수로 가능
    • 또한 가상화를 하게 되면 하나의 머신이 리소스를 fully 로 사용할 수 있게끔도 가능함
  • 확장성
    • 가상머신은 소프트웨어이므로, 일관된 환경을 손쉽게, 여러개 설치할 수 있음, 만약 물리 머신을 준비해야 한다면 비용도 많이 들고 번거로움
    • 여러 대의 가상머신을 사용한다면, 소프트웨어를 통해 이를 자동화할 수도 있음

가상화의 단점

  • 비싼 초기 비용
    • 가상화를 하여도 실제 물리 서버는 필요함, 또한 여러 VM 을 띄워야 하므로 성능이 좋아야 함
    • 따라서 비싼 서버 장비비용 외에도 소프트웨어 라이센스가 필요함
    • 다만 이 비용은 소프트웨어의 발전에 따라 줄어들을 듯
  • 모든 H/W, S/W 를 가상화 할 수 있는 것은 아님
  • 관리가 보다 복잡해짐
  • 성능의 저하
    • 하나의 물리 머신을 나눠서 사용하므로, 개별 VM 의 성능은 안좋을 수 있음
    • 특히 OS 를 각각 가지므로, 여러개의 VM 을 사용한다면, 단순히 OS 가 사용하는 공간도 적지 않음

그럼에도 불구하고 자동화의 장점이 더 많기 때문에, 이런 서베이가 있다고 합니다.

Enterprises with over 1,000 employees have adopted application virtualization twice as much as smaller businesses, according to Spiceworks.

Spiceworks 에 따르면, 직원 수가 1,000 명이 넘는 회사는 작은 회사에 비해 어플리케이션 가상화를 두배 더 많이 도입했다고 합니다.

- The Pros and Cons of Virtualization@Business news daily

가상화와 클라우드의 관계

정확히는 클라우드 가상화로, 클라우드 가상화는 가상화의 종류 중 하나 입니다.

클라우드 가상화란 서버, 스토리지 및 다양한 리소스를 가상화하여, 클라이언트가 온프레미스로 준비할 필요 없이, 서비스로 이용할 수 있는 것을 말합니다. (#28)

  • IaaS(Infrastructure as a Service) - 서버, 스토리지, 네트워크 리소스가 가상화 한 것으로, 서비스로 사용할 수 있음
  • PaaS(Platform as a Service) - 하드웨어, 소프트웨어, 인프라가 가상화 한 것으로, 서비스로 사용할 수 있음
  • SaaS(Software as a service) - 애플리케이션을 가상화 한 것으로, 서비스로 사용할 수 있음

하이퍼바이저

하이퍼바이저 란

아까 예시 그림에서 HostOS 와 각 VM 사이에 Hyperviser(하이퍼바이저) 라는 것이 있었습니다.

가상화 구조에서는 VM 과 하드웨어가 직접적으로 연결되어있지 않습니다. 즉 VM 생성을 위한 자원을 할당받고, 자원을 요청하는 등을 하려면 이를 도와줄 매니저가 필요한데요, 하이퍼바이저가 이 역할을 합니다. 때문에 하이퍼바이저는 가상 머신 매니저 (Virtual Machine Manager 또는 Monitor, VMM) 라고도 불립니다. selog@tistory

하이퍼바이저는 VM 이 요청하는 하드웨어 리소스를 할당 해준다던가, 각 VM 들의 리소스 사용을 스케줄링 해준다던가, VM 이 하드웨어에 요청하는 I/O 명령을 처리 하는 등 중간에서 이것 저것 처리해주며 관리자 역할을 합니다. selog@tistory

하이퍼바이저 유형

하이퍼바이저에는 하이퍼바이저 가상화 와 유형과 호스트 가상화 라는 유형이 있습니다.

사실 가상화는 컨테이너, 도커, 쿠버네티스 등의 공부를 위한 준비 였기 때문에... 가상화에 대해선 여기서 마무리를 하겠습니다 :D

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions