서버 가상화란?
서버 가상화는 물리적 서버의 리소스를 논리적으로 분할하여 여러 가상 서버를 생성하고, 각 가상 서버에서 독립적으로 운영체제와 애플리케이션을 실행할 수 있게 하는 기술입니다.
서버 가상화는 호스트 가상화, 하이퍼바이저 가상화 (이하 전가상화와 반가상화), 그리고 컨테이너 가상화 방식이 있습니다. 지금부터 각 기술에 대해 자세히 설명해드리겠습니다.
1. 호스트 가상화
호스트 가상화(Host Virtualization) 방식에서는 기존의 운영체제(OS) 위에 가상화 소프트웨어를 설치하여 가상 머신(VM)을 생성하고 실행합니다. 이 가상화 소프트웨어를 호스트형 하이퍼바이저라고도 부릅니다. 이 방식은 사용자 PC나 서버에 이미 설치된 운영체제(OS)를 기반으로 가상화 소프트웨어가 동작하는 방식입니다.
예시로 말씀드리겠습니다.
VMware Workstation은 사용자의 기존 운영체제(예: Windows, Linux) 위에 설치되는 가상화 소프트웨어입니다. 이를 통해 사용자는 물리적 하드웨어를 직접 제어하는 대신, 가상화 소프트웨어를 통해 여러 가상 머신을 생성하고 실행할 수 있습니다. 각 가상 머신은 고유의 운영체제와 애플리케이션을 실행할 수 있는 독립된 환경을 제공합니다.
즉 호스트 가상화 방식은 기존 운영체제에서 쉽게 가상화 환경을 설정할 수 있어 개인용 PC나 개발 환경에 적합합니다.
단점으로는 호스트 운영체제가 중간에서 리소스를 관리하기 때문에 성능이 전가상화나 반가상화에 비해 다소 낮을 수 있습니다.
2. 하이퍼바이저 가상화
하이퍼바이저 가상화는 물리적 하드웨어와 가상 머신 사이에 직접 설치되는 가상화 소프트웨어를 사용하는 방식입니다. 하이퍼바이저는 물리적 리소스를 가상 머신에 분배하고, 가상 머신 간의 자원 충돌을 방지하며, 높은 성능과 효율성을 제공합니다. 하이퍼바이저 가상화는 전가상화와 반가상화로 구분할 수 있습니다.
여기서 잠깐. 호스트 vs. 하이퍼바이저 가상화를 비교하고 넘어가겠습니다. 호스트 가상화는 운영체제 위에 가상 머신을 올리는 방식인 반면, 하이퍼바이저 가상화는 하드웨어 바로 위에서 작동합니다.
2.1 전가상화 (Full Virtualization)
전가상화(Full Virtualization)는 하이퍼바이저가 물리적 하드웨어를 완전히 에뮬레이션하여, 가상 머신들이 각자 독립적인 하드웨어를 사용하는 것처럼 보이게 하는 가상화 방식입니다. 즉, 가상 머신은 호스트 운영체제나 하이퍼바이저의 도움 없이 독립적으로 실행됩니다. 이 과정에서 하이퍼바이저가 하드웨어를 완전히 에뮬레이트해야 하므로, 일부 성능 오버헤드가 발생할 수 있습니다.
2.2 반가상화 (Paravirtualization)
반가상화(Paravirtualization)는 가상 머신의 운영체제와 하이퍼바이저가 협력하여 가상화 효율성을 높이는 방식입니다.
가상 머신 운영체제가 하이퍼바이저의 API를 호출하여, 직접 하드웨어에 접근하는 대신 하이퍼바이저를 통해 접근합니다.
반가상화는 전가상화보다 성능 오버헤드가 적고, 리소스 관리가 더 효율적입니다. 다만, 운영체제의 변경이 필요합니다. 예로 Xen의 경우에 하이퍼바이저와 운영체제가 직접 통신하도록 수정된 운영체제를 사용하거든요.
정리하자면, 전가상화(Full Virtualization)는 모든 VM이 완전히 독립된 하드웨어 환경을 갖추고 있는 것처럼 보이게 하여 운영체제와 애플리케이션을 수정 없이 사용할 수 있는 반면, 반가상화(Paravirtualization)는 운영체제가 가상화된 환경을 인식하고 하이퍼바이저와 협력하여 더 높은 성능을 제공하는 방식입니다.
3. 컨테이너 가상화 방식
컨테이너 가상화(Container Virtualization)는 모든 컨테이너가 호스트의 커널을 공유합니다. 이에 따라 컨테이너는 VM보다 훨씬 가벼워지고, 하나의 물리 서버에서 더 많은 수의 컨테이너를 실행할 수 있어 자원 활용도가 높습니다. 그러나 이렇게 공유된 커널은 리눅스 기반이기 때문에 윈도우즈와 같은 다른 운영체제를 실행할 수는 없습니다. (Linux 커널을 사용하는 호스트에서 Linux 컨테이너만 실행 가능)
이러한 컨테이너 가상화 방식에서 오케스트레이션 시스템을 도입한 것이 Kubernetes이고, k8s라고 축약해서 부르기도 합니다.
4. 쿠버네티스 가상화 방식
Kubernetes는 여러 컨테이너의 배포, 확장 및 관리 기능을 제공하는 것이 특징입니다.
쿠버네티스는 컨테이너화된 애플리케이션의 배포, 스케일링, 관리 등을 자동화하는 오픈 소스 플랫폼입니다. 여러 대의 서버(클러스터)에서 컨테이너를 조정하고 관리하는 데 중점을 둡니다.
'OPS' 카테고리의 다른 글
Azure ML 실습 (1) | 2024.10.21 |
---|---|
Teams Athenticator 안 될 때 (0) | 2024.09.06 |
가상화 기술이란 v.2 (3) | 2024.09.03 |
SaaS, PaaS, FaaS, CaaS 모델 (2) | 2024.09.02 |
클라우드의 장점 : fat/thin 클라이언트 구분이 없음 (0) | 2024.09.02 |