가상화 기술의 이해
클라우드의 핵심기술: 서버 가상화 (Server Virtualization)
안녕하세요. 계영수 강사입니다.
이번 포스팅에서는 클라우드 컴퓨팅을 가능하게 만든 핵심 기술 중 하나인 ‘서버 가상화’에 대해 알아보겠습니다. 가상화는 여러 고객이 물리적인 서버 하드웨어를 공유하여 사용할 수 있게 해주는 ‘자원 풀링(Resource Pooling)’을 가능하게 합니다. 이는 클라우드의 필수적인 특징이기도 합니다. 하지만 서버 가상화는 클라우드보다 훨씬 이전부터 존재해 왔습니다. 가상화 이전의 환경과 비교해보며 이해해 봅시다.
1. 가상화 이전의 환경 (Legacy Environment)
90년대 제 첫 직장의 사례를 들어보겠습니다.
당시 소규모 회사의 전산실(Server Room)에는 랙(Rack)이 있었고, 다음과 같은 장비들이 필요했습니다.
- 서버: 이메일 서버(MS Exchange), 데이터베이스 서버(MS SQL), 웹 서버 등 각각 별도의 물리적 서버가 필요했습니다.
- 전원 및 보호: 서버 전원 공급을 위한 UPS(무정전 전원 장치)가 필요했습니다. 정전 시 배터리로 전력을 공급해 주는 장치입니다.
- 네트워크: 서버 간 연결 및 PC 연결을 위한 스위치(Switch), 외부 인터넷 연결 및 보안을 위한 라우터(Router)와 방화벽(Firewall)이 필요했습니다.
파란색 직사각형을 하나의 물리적 서버라고 가정해 봅시다.
- 하드웨어: 맨 아래에 CPU, RAM, NIC(네트워크 카드)가 있습니다.
- 운영체제(OS): 하드웨어 바로 위에 설치됩니다.
- 애플리케이션: OS 위에 이메일, DB, 웹 서버 프로그램이 각각 설치됩니다.
문제점:
이렇게 각 애플리케이션마다 별도의 물리 서버를 할당하면 서버 활용률(Utilization)이 매우 낮습니다. 보통 15% 정도만 사용되는데, 이는 비용(전력, 공간, 냉각, 장비값) 측면에서 매우 비효율적입니다. 그렇다고 하나의 OS에 모든 애플리케이션(메일, DB, 웹)을 다 설치하면, ‘나쁜 관행(Bad Practice)’이 됩니다. 하나의 애플리케이션 오류가 전체 시스템을 다운시킬 위험이 있기 때문입니다.
2. 서버 가상화의 등장 (The Solutions)
우리는 하나의 물리적 하드웨어 위에서 여러 서버를 돌려 활용률을 높이면서도, 서로 독립적으로 격리(Isolation)되어 안정성을 확보하고 싶습니다. 이것이 바로 서버 가상화입니다.
[가상화 구조]
- 하드웨어: CPU, RAM, NIC (동일함)
- 하이퍼바이저(Hypervisor): 일반 OS 대신 하드웨어 바로 위에 설치됩니다. (예: VMware ESXi)
- 가상 머신(Virtual Machine, VM):
- VM 1: Windows OS + 이메일 서버
- VM 2: Windows OS + DB 서버
- VM 3: Linux OS + 웹 서버
각 VM은 자신이 가상 머신이라는 사실을 모르며, 마치 독립적인 물리 서버인 것처럼 작동합니다. 하나의 하드웨어 위에서 서로 다른 OS(Windows, Linux 등)를 동시에 구동할 수 있습니다.
3. [Demo] VMware vSphere 실습
[실습환경]
- 관리 도구: vSphere Client (모든 ESXi 호스트와 VM을 중앙 관리)
- 물리적 호스트(ESXi): 2대 (IP: 10.2.1.11, 10.2.1.12)
- 가상 머신(VM): 각 호스트 위에 여러 VM(Windows XP 등)이 구동 중.
[핵심 시능 기연]
- 독립성: 같은 서버 위에 있는 ‘XP 1’과 ‘XP 2’ 콘솔을 열어보면, 서로 완전히 다른 화면과 OS 환경을 가짐을 확인할 수 있습니다.
- 라이브 마이그레이션(vMotion): VM을 끄지 않고 실행 중에 물리적 호스트 A(.11)에서 호스트 B(.12)로 이동시킬 수 있습니다.
- 원리: VM의 하드디스크 파일은 외부 공유 스토리지(SAN/NAS)에 저장되어 있습니다. 마이그레이션 시 메모리 상태(RAM 내용)만 네트워크를 통해 복사하고 제어권을 넘깁니다.
- 효과: 사용자에게는 중단이 거의 느껴지지 않습니다(Ping 1회 정도 손실). 하드웨어 유지 보수나 장애 발생 시 서비스 중단 없이 대처할 수 있는 강력한 기능입니다.
4. 하이퍼바이저 유형 (Type 1 vs Type 2)
하이퍼바이저는 설치 위치와 용도에 따라 두 가지 유형으로 나뉩니다.
| 구분 | Type 1 (Bare-Metal) | Type 2 (Hosted) |
|---|---|---|
| 설치 위치 | 하드웨어 바로 위에 설치 (OS 역할 대체) | 일반 OS(Windows, Mac 등) 위에 애플리케이션처럼 설치 |
| 주요 제품 | VMware ESXi, MS Hyper-V, Red Hat KVM, Citrix XenServer | VMware Workstation/Player, VirtualBox, Parallels |
| 용도 | 데이터 센터, 클라우드 환경 (서버용) | 개인 PC, 노트북 (테스트 및 개발용) |
| 장점 | 오버헤드가 적어 성능이 뛰어남. 자원 효율성 극대화. | 사용 중인 PC 환경을 그대로 유지하며 다른 OS 테스트 가능. |
- Type 1 (데이터 센터용): 하드웨어 제어권이 하이퍼바이저에게 직접 있어 성능 손실이 적습니다. 클라우드 서비스 제공업체(AWS, Azure 등)는 비용 효율을 위해 오픈소스 기반인 KVM이나 XenServer를 많이 사용하기도 합니다.
- Type 2 (개인용): 여러분의 노트북(Windows/Mac) 위에서 리눅스 서버를 테스트하거나, 고객 데모를 위해 별도 장비 없이 내 노트북 안에서 가상 서버를 띄울 때 유용합니다.