1. 가상화(Virtualization)란?
[ 가상화(Virtualization)란? ]
가상화란 가상화를 관리하는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상 머신(VM)을 만드는 프로세스이다. Hypervisor는 가상화 층을 구현하여 물리적 머신의 컴퓨팅 리소스로부터 가상 환경을 분리하고 가상 머신(VM)을 생성한다. VM은 물리적 머신과 동일한 역할 및 성능을 수행하지만, cpu와 메모리 및 스토리지와 같은 물리적 머신의 컴퓨팅 리소스를 사용한다. Hypervisor는 필요에 따라 각 VM에 이러한 컴퓨팅 리소스를 할당한다.
최근에는 Docker와 같은 컨테이너 가상화 기술이 등장하기도 하였다. 도커를 윈도우에서 사용하는 경우에는 Hypervisor를 사용하지만, 리눅스에서 사용하는 상황에서는 커널의 특징을 이용하기 때문에 Hypervisor를 사용하지 않는다고 한다.
[ 가상화 예시 ]
가상화를 이용하면 서버를 통합(Server Consolidation) 하고 서버의 자원을 최대한으로 활용함으로써 서버 급증 문제(Server Proliferation Problem)를 해결할 수 있다.
예를 들어, 용도가 다른 3개의 물리 서버가 있다고 가정하자. 1개는 메일서버이고, 다른 1개는 웹 서버이고, 다른 1개는 내무 레거시 애플리케이션을 실행하는 서버이다. 각 서버는 잠재적인 실행 용량의 30%만 사용되고 있지만, 내부 운영을 위해 레거시 애플리케이션이 계속 필요하므로, 레거시 애플리케이션과 이를 호스팅하는 또 다른 3번째 서버를 유지해야 한다.
전통적으로 1개의 서버에 설치된 1개의 OS 위에 1개의 태스크를 수행하도록 하는 것이 더 쉽고 안정적인 경우가 많다. 하지만 이러한 경우 각각의 서버가 자원을 최대한으로 활용하지 않기 때문에 서버 전력비가 비효율적으로 발생하며, 각각의 서버가 서로 다른 공간에 위치하므로 공간 대여 비용도 발생하는 등 각각의 서버를 최대한으로 활용하지 못하고 있다.
그러나 가상화를 사용하면 기존의 메일 서버를 2개로 분리하여 1개의 서버로는 메일을 처리하고, 1개의 서버로는 레거시 애플리케이션을 마이그레이션 할 수 있다.
또한 메일서버를 만약 3개로 분리한다면, 메일 서버의 자원을 최대한으로 활용하고, 남은 2개의 서버는 다른 태스크를 처리하거나 사용을 중지하여 냉각 및 유지 관리 비용을 줄일 수 있다.
2. 가상화의 장점
[ 비가상화 VS 가상화 ]
Non-Virtualized System | Virtualized System |
1개의 OS가 모든 하드웨어 자원을 관리한다. | 1개의 하드웨어 상에서 여러 개의 가상 머신(VM)을 구동할 수 있다. |
1개의 머신에서 여러 개의 애플리케이션을 구동하는 것은 충돌 등의 문제를 발생시킬 수 있다. | 하드웨어와 무관하게 원하는 운영체제나 그에 맞는 애플리케이션을 실행할 수 있다. |
유연하지 못하여 인프라의 비용이 높아질 수 있다. | 어떠한 시스템에서도 가상 머신이 프로비저닝 될 수 있다. |
[ 가상화의 장점 ]
- Server Consolidation: 물리적인 서버의 개수를 줄여 1개의 서버로 통합함으로써 서버의 전력 및 냉각 비용, 하드웨어 공간 비용 등을 줄일 수 있다.
- Isolation: 기능에 맞게 여러 개의 머신으로 분리하여 Failures나 Security Leaks 등에 더욱 잘 대처할 수 있다.
- Efficiency: 컴퓨팅 자원의 사용을 최대화하고 보다 쉽게 관리 할 수 있다.
- Flexibility: 한 서버의 데이터를 마이그레이션하기에 용이해진다.
그 외에도 가상화를 통해 동일한 머신에서 다양한 유형의 앱, 데스크탑 및 운영체제를 실행할 수 있거나 새로운 어플리케이션을 프로비저닝 하는데 걸리는 시간을 줄일 수 있다는 등 여러 가지 장점이 있다.
[ 클라우드 컴퓨팅에서 가상화의 역할 ]
클라우드 컴퓨팅은 인터넷을 통해 공유 컴퓨팅 리소스, 소프트웨어 또는 데이터를 제공하는 방식이다. 사용자는 클라우드를 통해 컴퓨터의 자원을 Transparent하게 사용할 수 있다.
가상화는 클라우드 컴퓨팅을 가능하게 하는 주요 기술 중 하나로, 클라우드 공급업체는 가상화를 사용하기 때문에 하나의 서버에서 여러 고객에게 서비스를 제공할 수 있다. 많은 기업들은 가상화 및 클라우드 컴퓨팅을 모두 사용하여 효율성을 극대화하고 있다.
관련 포스팅
- 가상화(Virtualization)란? (1/2)
- 하드웨어 가상화(Virtualization)의 종류 및 차이 (2/2)
참고 자료
- https://www.citrix.co.kr/glossary/what-is-virtualization.html
- https://www.redhat.com/ko/topics/virtualization/what-is-virtualization
- http://www.itworld.co.kr/print/1719
- https://zhihuicao.wordpress.com/2015/06/13/para-virtualization-full-virtualization-differences/
- https://judo0179.tistory.com/36
출처: https://mangkyu.tistory.com/86?category=925341 [MangKyu's Diary]
'Cloud + System > IT인프라 기본개념' 카테고리의 다른 글
[LDAP] 개념 잡기 (0) | 2021.11.07 |
---|---|
SSO란? (0) | 2021.10.31 |
코어 덤프 , 힙 덤프, 쓰레드 덤프 (Core dump, heap dump, thread dump) (0) | 2021.10.27 |
2. 가상화, 전가상화, 반가상화 (0) | 2021.10.24 |
IT인프라 기본용어 (0) | 2021.10.23 |