ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

가상머신

컴퓨터 과학의 핵심 개념

 

 

What ?

가상머신

컴퓨터는 하드웨어( CPU, 메모리 , 저장 장치)가 존재하고, 그 위에 소프트웨어( 운영체제 )가 설치돼 프로그램들을 실행합니다.

실제 컴퓨터에 컴퓨터 프로그램( 소프트웨어적 )으로 구현된 또 다른 컴퓨터 환경을 의미합니다.


Why ?

가상머신

💡 하드웨어와 소프트웨어 사이의 추상화 계층을 제공

 

  • 하드웨어 추상화
    • 실제 물리적 하드웨어를 가상화하여 게스트 운영체제(Guest OS)에게 일관된 인터페이스를 제공합니다.
    • 게스트 OS는 실제 하드웨어의 종류나 구성에 상관없이 가상머신이 제공하는 가상의 하드웨어 환경에서 실행될 수 있습니다.
    • 이는 애플리케이션 개발 및 배포의 이식성을 크게 향상시킵니다.
  • 소프트웨어 추상화
    •  하이퍼바이저(Hypervisor)라고 불리는 VM 관리 소프트웨어는 여러 개의 VM을 생성하고 관리하며, 각 VM에게 필요한 자원을 할당하고 격리합니다.
    • 이를 통해 각 VM은 서로 영향을 주지 않고 독립적으로 실행될 수 있으며, 이는 시스템의 **안정성(Stability)**과 **보안성(Security)**을 높이는 데 기여합니다.

 

2. 자원 관리 (Resource Management)

하이퍼바이저는 물리적 자원을 효율적으로 관리하고 각 VM에 적절하게 할당하는 역할을 수행합니다.

  • CPU 스케줄링: 하이퍼바이저는 물리적 CPU 코어들을 여러 VM에 나누어 할당하고, 각 VM이 마치 자신만의 CPU를 사용하는 것처럼 느끼게 합니다. 다양한 스케줄링 알고리즘을 통해 CPU 자원의 활용률을 최적화할 수 있습니다.
  • 메모리 관리: 각 VM에게 필요한 메모리 공간을 할당하고, 메모리 오버커밋(Memory Overcommit)과 같은 기술을 통해 물리적 메모리보다 더 많은 용량의 메모리를 VM에 할당할 수 있습니다. 이는 메모리 사용률을 높이는 데 도움이 되지만, 과도한 오버커밋은 성능 저하를 유발할 수 있습니다.
  • 저장 장치 관리: 물리적 저장 장치를 가상 디스크 이미지 파일로 추상화하여 각 VM에게 독립적인 저장 공간을 제공합니다. 스냅샷, 클로닝 등의 기능을 통해 데이터 관리의 편의성을 높일 수 있습니다.
  • 네트워크 관리: 물리적 네트워크 인터페이스를 공유하거나 가상 네트워크 인터페이스를 생성하여 각 VM에게 네트워크 연결을 제공합니다. NAT(Network Address Translation), 브리징(Bridging) 등의 기술을 통해 다양한 네트워크 구성이 가능합니다.

3. 격리 (Isolation)

가상 머신의 중요한 특징 중 하나는 **격리(Isolation)**입니다.

  • 각 VM은 자신만의 운영체제, 애플리케이션, 데이터를 가지며, 다른 VM의 환경과는 완전히 분리되어 실행됩니다.
  • 하나의 VM에서 발생한 오류나 보안 문제가 다른 VM에 영향을 미치지 않도록 보호합니다. 이는 멀티 테넌트 환경(Multi-tenant Environment)에서 중요한 이점입니다.
  • 보안 취약점을 분석하거나 악성 코드를 테스트하는 격리된 환경을 제공하는 데 유용합니다.

4. 종류 (Types of Virtual Machines)

가상 머신은 구현 방식에 따라 크게 두 가지 유형으로 나눌 수 있습니다.

  • Type-1 하이퍼바이저 (베어 메탈 하이퍼바이저, Native Hypervisor): 물리적 하드웨어 위에 직접 설치되어 하드웨어 자원을 관리하고 게스트 OS를 실행합니다. 성능 오버헤드가 적고 효율성이 높다는 장점이 있습니다. 예시: VMware ESXi, Microsoft Hyper-V Server, Xen, KVM (Kernel-based Virtual Machine).
  • Type-2 하이퍼바이저 (호스트형 하이퍼바이저, Hosted Hypervisor): 기존 운영체제(호스트 OS) 위에 애플리케이션 형태로 설치되어 게스트 OS를 실행합니다. 사용하기 쉽고 다양한 호스트 OS를 지원하지만, Type-1 하이퍼바이저에 비해 성능 오버헤드가 있을 수 있습니다. 예시: VMware Workstation, VirtualBox, Parallels Desktop.

5. 활용 분야 (Applications)

가상 머신 기술은 다양한 분야에서 활용되고 있습니다.

  • 서버 통합 (Server Consolidation): 여러 대의 물리적 서버를 하나의 물리적 서버 위에 여러 개의 VM으로 통합하여 하드웨어 비용, 전력 소비, 관리 비용을 절감할 수 있습니다.
  • 테스트 및 개발 환경 (Test and Development Environment): 다양한 운영체제 및 환경을 쉽게 구축하고 테스트할 수 있으며, 개발 환경과 운영 환경을 분리하여 안정성을 높일 수 있습니다.
  • 데스크톱 가상화 (Desktop Virtualization, VDI): 중앙 서버에서 가상 데스크톱 환경을 제공하여 사용자들은 다양한 장치에서 일관된 작업 환경에 접근할 수 있습니다. 관리 용이성 및 보안성을 향상시킵니다.
  • 클라우드 컴퓨팅 (Cloud Computing): 클라우드 서비스 제공자들은 가상화 기술을 기반으로 컴퓨팅 자원을 탄력적으로 제공합니다. 사용자들은 필요한 만큼의 자원을 할당받아 사용하고, 사용량에 따라 비용을 지불합니다.
  • 운영체제 호환성 (OS Compatibility): 특정 운영체제에서만 실행되는 애플리케이션을 다른 운영체제 환경에서 VM을 통해 실행할 수 있습니다.
  • 보안 (Security): 격리된 환경을 제공하여 악성 코드 분석, 침투 테스트 등에 활용될 수 있으며, 시스템 장애 발생 시 빠르게 복구할 수 있는 스냅샷 기능을 제공합니다.
728x90