가상화(Virtualization)란?

가상화(Virtualization)란?

가상화란?

메일, 웹, 레거시 서버가 각가 다른 서버로 운영되고 있는 경우
메일, 웹, 레거시 서버가 각가 다른 서버로 운영되고 있는 경우

일반적으로 개별 서버는 특정 용도를 위해 할당되지만, 이는 리소스를 효율적으로 활용하지 못할 수 있습니다. 예를 들어, 메일 서버, 웹 서버, 레거시 애플리케이션 서버가 각각 다른 서버로 운영되고 있지만, 이들 중 일부는 실행 용량의 일부만을 활용하고 있습니다. 위 사진의 경우 각 서버가 모두 서버의 30%만 사용 중으로 70%는 모두 낭비되고 있습니다.

가상화를 이용해 효율적으로 개선한 경우
가상화를 이용해 효율적으로 개선한 경우

가상화를 적용하면 이러한 문제를 해결할 수 있습니다. 가상화를 통해 하나의 서버를 여러 개의 가상 서버로 분할하고, 각각 독립적으로 운영하여 리소스 사용률을 높일 수 있습니다. 예를 들어, 보안을 고려하여 서버를 분할하면 사용률을 30%에서 60% 또는 90%까지 높일 수 있습니다. 이렇게 하면 낭비되는 리소스를 최소화하고 서버를 보다 효율적으로 활용할 수 있습니다.

가상화 역사

가상화 기술은 1960년대부터 시작되었으며, 2000년대 초에 널리 사용되기 시작했습니다. 이전에는 하이퍼바이저와 같은 가상화 지원 기술이 개발되어 일괄 처리를 수행하는 컴퓨터에 여러 사용자가 동시에 액세스할 수 있게 되었습니다. 하지만 가상화는 오랜 기간 동안 널리 사용되지 않았으며, 이는 시간 공유 솔루션으로 대체되어 사용자들이 운영 체제 내에서 격리되는 경향이 있었기 때문입니다.

1990년대 후반에는 기업이 단일 벤더 IT 스택을 사용하여 레거시 애플리케이션을 실행할 때 다른 벤더의 하드웨어에서 사용할 수 없었습니다. 이러한 문제를 해결하기 위해 가상화가 도입되었고, 기업은 서버를 파티셔닝하여 여러 유형 및 버전의 운영 체제에서 애플리케이션을 실행할 수 있게 되었습니다. 이로써 리소스를 보다 효율적으로 활용하고 비용을 절감할 수 있었습니다.

하이퍼바이저는 물리 리소스를 필요로 하는 가상 환경으로부터 리소스를 분리하는 소프트웨어입니다. 이를 통해 리소스는 가상 환경으로 파티셔닝되고, 사용자는 가상 머신을 통해 가상 환경 내에서 계산을 실행할 수 있습니다. 이러한 가상 머신은 단일 데이터 파일처럼 작동하여 어느 컴퓨터에서든 동일하게 작동할 수 있습니다.

가상화 기술은 하드웨어 자원을 효율적으로 활용하고 IT 환경을 업데이트하는 데 도움이 되며, 클라우드 컴퓨팅의 발전을 촉진하는 데 기여합니다. 오늘날 가상화는 전문적인 관리 소프트웨어를 사용하여 전체 추적이 가능한 기술로 발전하고 있습니다.

하이퍼바이저(Hypervisor)란?

하이퍼바이저는 물리적인 하드웨어를 가상 환경으로 분할하고, 여러 개의 가상 머신(가상화된 컴퓨터 시스템)을 실행하여 이를 관리하는 소프트웨어를 의미합니다. 하이퍼바이저의 기능은 다음과 같습니다.

  • 리소스 관리: 하이퍼바이저는 물리적인 CPU, 메모리, 저장장치 등의 리소스를 가상 머신들 사이에 분배합니다. 이를 통해 각 가상 머신은 할당된 리소스를 독립적으로 사용하며, 물리 서버의 리소스를 최대한 활용할 수 있습니다.

  • 가상 머신 관리: 하이퍼바이저는 가상 머신들의 생성, 시작, 중지, 삭제 등을 관리합니다. 또한 가상 머신들 간의 리소스 공유와 격리를 제어하여 안전하고 효율적인 가상 환경을 제공합니다.

  • 하드웨어 추상화: 하이퍼바이저는 물리적인 하드웨어를 추상화하여 가상 머신들이 하드웨어에 독립적으로 실행될 수 있도록 합니다. 이를 통해 가상 머신들은 호스트 시스템의 하드웨어에 대한 자세한 정보 없이 실행될 수 있습니다.

  • 성능 최적화: 하이퍼바이저는 가상 머신들 간의 리소스 공유를 최적화하여 성능을 향상시킵니다. 이를 통해 서버의 리소스를 효율적으로 활용하고 가상 머신들 간의 성능 경합을 방지합니다.

  • 보안 강화: 하이퍼바이저는 가상 머신들 간의 격리를 제공하여 한 가상 머신에서 발생하는 문제가 다른 가상 머신에 영향을 미치지 않도록 보호합니다. 또한 보안 정책을 적용하여 가상 환경을 안전하게 유지합니다.

하이퍼바이저 종류

하이퍼바이저는 두 가지 유형으로 나눌 수 있습니다: 타입 1(Bare-Metal Hypervisor)타입 2(Hosted Hypervisor). 타입 1 하이퍼바이저는 물리 서버에 직접 설치되어 운영 체제와 함께 동작하며, 예시로는 VMware ESXi와 Microsoft Hyper-V가 있습니다. 반면 타입 2 하이퍼바이저는 호스트 운영 체제 위에 설치되고 하나 이상의 가상 머신을 실행하는 소프트웨어로, 예시로는 Oracle VirtualBox와 VMware Workstation이 있습니다. 일반적으로 개인 컴퓨터에서 가상화를 이용하는 경우 타입 2를 이용하게 됩니다.

타입 1 : Bare-Metal Hypervisor

Bare-Metal Hypervisor
Bare-Metal Hypervisor

해당 타입의 하이퍼바이저는 물리적인 하드웨어 위에서 바로 구동됩니다. 즉, 호스트 OS는 없이 하이퍼바이저를 통해 나뉘어진 게스트 OS들만 존재하는 형태입니다. 그렇기 때문에 타입 2 하이퍼바이저에 비해 오버헤드가 적어서 빠르다는 장점이 있습니다. 하지만 나뉘어진 VM들을 자체적으로 관리하는 기능이 없기 때문에 VM 관리를 위한 별개의 콘솔이 필요하다는 단점이 있습니다.

타입 2 : Hosted Hypervisor

Hosted Hypervisor
Hosted Hypervisor

해당 타입의 하이퍼바이저는 물리적인 하드웨어 위에 존재하는 호스트 OS 위에서 구동됩니다. 호스트 OS를 한 번 거치기 때문에 오버헤드가 크고, 호스트 OS 문제가 전체 게스트 OS 영향에 줄 수 있다는 단점이 있습니다. 하지만 기존 시스템 위에서 쉽게 사용할 수 있다는 장점이 있습니다.

가상화 컨테이너 차이

가상화와 컨테이너 차이는 다음과 같습니다.

  가상화 컨테이너
운영체제 독립적으로 운영 운영체제 커널 공유

결국 위에 차이점이 모든 차이점을 일으키는 원초적인 이유라고 생각할 수 있습니다. 가상화는 물리적으로 모든 리소스가 격리되어 있기 때문에 보안상으로는 장점이지만 실행 속도로는 단점이 있습니다. 반대로 컨테이너는 물리적으로 모든 리소스가 격리되어 있지는 않아 보안상으로는 단점이지만 실행 속도로는 장점이 있습니다.

⚠️질문

도커를 사용해서 컨테이너 기술 사용 중인데, 컨테이너에 우분투 같은 OS를 설치했는데요?

다음과 같은 경우 컨테이너에도 개별적인 OS를 설치할 수 있는 것 아니냐?라는 궁금증이 생길 수 있습니다. 하지만 이는 실질적으로 호스트 OS와 완전히 분리되어 있는 개별적인 게스트 OS로 인정되지 않습니다. 호스트 OS의 커널을 공유하는 형태지 온전히 따로 동작하는 OS 형식이 아닙니다.

추가 정보

results matching ""

    No results matching ""