가상화

가상화(virtualization)는 하나의 물리적인 컴퓨팅 자원이나 시스템을 여러 독립적인 논리적 자원으로 표현하고 관리할 수 있게 하는 기술이다. 대표적으로 한 대의 물리 서버에서 서로 다른 운영체제를 실행하는 여러 가상 머신을 만들 수 있으며, 저장 장치와 컴퓨터 네트워크, 메모리...

영문명Virtualization
분류컴퓨터 과학 · 시스템 소프트웨어
핵심 개념하나의 물리 자원을 여러 논리적 자원 또는 실행 환경으로 추상화
주요 기술하이퍼바이저 · 가상 머신 · 컨테이너
구현 방식전가상화 · 반가상화 · 하드웨어 보조 가상화
CPU 지원Intel VT-x · AMD-V · ARM Virtualization Extensions
가상화 대상CPU · 메모리 · 저장 장치 · 네트워크 · 운영체제
대표 소프트웨어QEMU · KVM · Xen · VirtualBox
격리 모델게스트 운영체제 · 프로세스·네임스페이스 기반 격리
주요 용도서버 통합 · 개발·시험 · 재해 복구
보안 과제하이퍼바이저 취약점 · 게스트 격리 · 장치 패스스루
관련 기술클라우드 컴퓨팅 · 컨테이너 · 에뮬레이션
관리 요소스냅샷 · 마이그레이션 · 자원 할당 · 모니터링
기술 자료Red Hat: 가상화 설명

가상화(virtualization)는 하나의 물리적인 컴퓨팅 자원이나 시스템을 여러 독립적인 논리적 자원으로 표현하고 관리할 수 있게 하는 기술이다. 대표적으로 한 대의 물리 서버에서 서로 다른 운영체제를 실행하는 여러 가상 머신을 만들 수 있으며, 저장 장치와 컴퓨터 네트워크, 메모리도 가상 자원으로 추상화할 수 있다. 가상화의 목적은 자원 활용률을 높이는 것뿐 아니라 실행 환경을 격리하고 배포·시험·복구 작업을 간소화하는 데 있다.[1]

가상화 연구는 대형 메인프레임에서 한 물리 컴퓨터를 여러 사용자와 운영체제 환경이 공유하도록 하는 요구에서 발전했다. 1960~1970년대 IBM의 가상 머신 시스템은 하드웨어 추상화와 독립된 게스트 실행 환경을 실용적으로 구현했으며, 1990년대 후반 이후에는 개인용 컴퓨터와 서버에서도 가상 머신 기술이 널리 활용되었다. 이후 x86의 하드웨어 보조 가상화 명령어와 다중 코어 CPU의 보급으로 성능과 운영 편의성이 향상됐고, 클라우드 데이터센터와 개발 환경의 기반 기술로 성장했다.

가상 머신을 관리하는 핵심 구성 요소는 하이퍼바이저로, 게스트 운영체제가 사용하는 CPU·메모리와 장치를 물리 하드웨어에 연결한다. 하이퍼바이저가 하드웨어에서 직접 실행되는 유형과 기존 호스트 운영체제 위에서 실행되는 유형을 구분할 수 있다. KVM은 Linux 커널의 가상화 지원을 이용하고 QEMU는 시스템 및 장치 에뮬레이션과 가상 머신 실행을 지원한다. Xen, VirtualBox 등도 각기 다른 구조와 관리 도구를 제공한다.

하드웨어 가상화는 게스트와 호스트가 같은 CPU 아키텍처를 사용할 때 하드웨어의 가상화 기능을 이용하여 게스트 코드를 실행할 수 있다. 반면 에뮬레이션은 다른 CPU나 장치의 동작을 소프트웨어로 재현할 수 있어 반드시 같은 명령어 집합을 사용할 필요가 없다. 일부 가상화 환경은 하드웨어 장치 패스스루, 가상 네트워크와 스냅샷을 제공하며 게스트를 다른 호스트로 옮기는 라이브 마이그레이션을 지원한다. 이 기능들은 하이퍼바이저 및 저장소·네트워크 구성에 영향을 받는다.

컨테이너는 가상 머신과 달리 일반적으로 호스트 커널을 공유하면서 프로세스의 이름 공간과 자원 사용량을 분리한다. Linux에서는 네임스페이스와 cgroups 등이 이런 격리를 구현하는 기본 요소이고, 컨테이너 이미지는 응용 프로그램과 그 의존성을 일관되게 배포할 수 있게 한다. 커널을 별도로 실행하는 가상 머신과 컨테이너는 격리 경계, 시작 시간, 오버헤드와 운영 편의가 다르므로 서로 완전히 같은 기술로 다뤄서는 안 된다.

가상화는 기업 서버 통합, 클라우드 컴퓨팅, 운영체제 이식 시험, 악성코드 분석을 위한 격리 환경, 소프트웨어 빌드 및 교육에 활용된다. 다만 가상 머신이 존재한다고 자동으로 모든 공격이나 데이터 손상이 차단되는 것은 아니며, 하이퍼바이저 취약점·가상 장치의 입력 처리·호스트 관리 권한과 공유 저장소 설정을 함께 보호해야 한다. 자원 과할당으로 성능이 저하될 수 있으므로 실제 CPU·메모리·I/O 사용량과 장애 복구 계획을 관측하는 일도 중요하다.

역사

메인프레임 가상화

현대 하드웨어 가상화

종류

시스템 가상화

운영체제 수준 가상화

저장소와 네트워크 가상화

구현 구조

하이퍼바이저

CPU와 메모리 가상화

가상 장치와 패스스루

가상 머신과 컨테이너

스냅샷과 마이그레이션

성능과 자원 관리

보안과 격리

활용 분야

관련 문서

  1. Red Hat: 가상화의 개념과 작동 원리 ↩