개념 사전 · 개념
가상 머신과 하이퍼바이저
VM · Virtual Machine · Hypervisor · 가상 머신 · 하이퍼바이저
은 가상 CPU·메모리·디스크·NIC 위에서 독립 게스트 운영체제를 실행하는 환경이다. 와 장치 구현은 그 가상 자원을 호스트의 실제 자원에 연결하고 게스트 실행을 중재한다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 하나의 물리 호스트에서 여러 게스트 운영체제를 실행한다.
- 가상 자원의 크기와 연결을 정의하여 반복 가능한 실습 환경을 만든다.
- 하드웨어 가속··반가상화 I/O를 조합해 실행을 제공한다.
02어떤 순서로 동작하나
- 가상 장치 정의
구성에 ·RAM·디스크·NIC와 부팅 장치를 지정한다.
- 게스트 부팅
가상 펌웨어가 운영체제 부팅 코드를 읽고 게스트 커널이 가상 장치를 인식한다.
- 실제 자원 연결
실행은 호스트 CPU 시간에 배정되고 와 디스크 I/O는 호스트 자원에 매핑된다.
- 외부 통신·저장
게스트의 NIC·블록 요청이 가상 네트워크와 저장 계층을 거친다. 게스트·호스트 어느 층의 제한인지 분리해 해석한다.
03먼저 알아둘 용어와 구성요소
- 는 호스트가 실행 시간을 배정하는 가상 실행 단위이며 물리 코어를 항상 하나씩 독점한다는 의미는 아니다.
- 게스트 물리 메모리도 호스트 메모리에 매핑된다.
- 장치 은 실제 하드웨어와 비슷한 레지스터·동작을 소프트웨어로 구현하므로 기존 드라이버를 사용할 수 있지만 처리 비용이 생긴다.
- 같은 반가상화 I/O는 게스트 드라이버와 호스트가 협력하는 인터페이스를 사용해 이 비용을 줄인다.
- QEMU는 장치와 CPU를 에뮬레이션할 수 있으며 KVM과 결합하면 호환되는 게스트의 CPU 실행을 하드웨어 가상화 기능으로 가속할 수 있다.
- copy-on-write 계열에서는 이후 쓰기가 차이 영역에 쌓이고 읽을 때 변경된 블록과 기준 블록을 함께 참조한다.
LEARN THROUGH PRACTICE
VM의 가상 NIC에서 GNS3 스위치까지 연결 추적하기
설정의 네트워크 이름을 실제 실습 토폴로지의 연결점과 대응시킨다.
실습 구성과 전제
- 설정 화면과 토폴로지 화면은 서로 다른 실습 구성이다. VMnet 번호가 다르므로 같은 NIC를 이어 촬영한 결과로 보지 않는다.
- 의 가상 네트워크와 Cloud가 사용할 호스트 인터페이스가 준비되어 있어야 한다. 설정 화면은 연결 의도를 보여 줄 뿐 패킷 통과까지 증명하지 않는다.
게스트에 제공한 가상 하드웨어를 확인한다
- 설정에서 메모리·CPU·가상 디스크와 NIC 수를 확인한다. NIC마다 연결할 VMnet이 따로 지정되므로 게스트의 두 인터페이스는 같은 네트워크에 있다고 가정할 수 없다.
- Custom VMnet이라는 이름만으로 ·브리지·격리 네트워크 중 무엇인지 확정되지 않는다. 해당 VMnet의 실제 가상 네트워크 설정을 함께 읽어야 한다.
원본 크기로 보기 ↗- VM에는 메모리 4GB, CPU 2개와 40GB NVMe 가상 디스크가 설정되어 있다.
- 네트워크 어댑터 두 개가 각각 Custom VMnet19와 VMnet10을 사용한다.
확인 기준연결 대상 VMnet 번호와 게스트 NIC의 를 기록해 대응시킨다. 화면에 없는 IP 주소나 을 추정하지 않는다.
GNS3의 Cloud 연결을 스위치 포트에 대응시킨다
- Cloud는 호스트 측 인터페이스 등 외부 연결점을 토폴로지에 연결한다. 게스트→가상 NIC→VMnet→Cloud→가상 스위치 경로를 실제 설정 이름으로 따라간다.
- 별도 토폴로지에는 ··의 VMnet 연결점이 스위치에 모인다. 같은 스위치에 선이 연결되었다고 IP 대역과 게스트 방화벽까지 자동 설정되는 것은 아니다.
원본 크기로 보기 ↗- Ubuntu VMnet17, Rocky VMnet19, Windows VMnet18 표시가 각각 Cloud 옆에 보인다.
- Cloud 연결들이 중앙 스위치로 이어져 여러 VM 네트워크를 실습 토폴로지에 가져온 형태다.
확인 기준첫 화면의 VMnet10을 이 토폴로지의 VMnet17·18과 동일시하지 않는다. 실제 프로젝트에서 인터페이스 선택을 다시 대조한다.
게스트의 주소·경로와 이웃 발견을 확인한다
- 게스트에서 링크·주소·을 먼저 조회한 뒤 허용된 상대에게 시험 패킷을 보낸다. 같은 통신이라면 이웃 발견과 스위치의 프레임 전달이 먼저 연결되어야 한다.
- IP 중복, 잘못 고른 VMnet, 게스트 NIC 비활성화, 방화벽 문제는 서로 다른 경계다. 선이 초록색이라는 UI 상태만으로 애플리케이션 통신을 판정하지 않는다.
baship -brief link ip -brief address ip route ip neigh게스트에서 가상 연결과 L3 설정을 조회하는 예시다.
확인 기준게스트 인터페이스의 MAC과 설정을 대응시킨 뒤 주소·경로·이웃 테이블을 순서대로 확인한다.
실습에서 확인한 동작 원리
- 가상 NIC와 VMnet, Cloud는 연결 계층이 다르므로 이름과 인터페이스를 명시적으로 대응시킨다.
- 설정과 토폴로지 화면은 구성의 증거이며 실제 패킷 성공은 게스트와 경로에서 추가 확인한다.
동작·명령 참고 문서
04예제로 따라가기
- 에 4개를 할당했다고 물리 코어 4개를 항상 독점하는 것은 아니며 다른 과 호스트 부하의 영향을 받을 수 있다.
- 가상 디스크 크기가 32GiB이고 호스트 점유가 3GiB인 성장형 이미지는 아직 쓰지 않은 영역을 작은 물리 할당으로 표현할 수 있다.
- 게스트의 df가 여유를 보여도 호스트 이미지 저장소가 가득 차면 추가 쓰기가 실패할 수 있다.
05혼동하기 쉬운 점과 확인 기준
- 게스트가 CPU를 요구하는 시간과 호스트가 를 실제 실행시킨 시간을 구별한다. 수를 늘린 것만으로 물리 CPU 시간과 처리량이 같은 비율로 증가하지 않는다.
- 게스트 파일 시스템의 free와 호스트 이미지 저장소의 free를 각각 본다. 스냅샷·backing chain 때문에 공간 회수 시점도 두 층에서 다를 수 있다.
- 스냅샷으로 돌아온 게스트의 시계·IP·애플리케이션 상태가 외부 시스템과 어긋날 수 있다. 복원 성공과 다시 서비스에 참여할 준비 완료를 구별한다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
가상 머신·하이퍼바이저와 GNS3가상 머신은 운영체제와 네트워크 환경을 분리해 실습하는 기반입니다. 가상 네트워크의 연결 범위까지 이해해야 실습을 재현할 수 있습니다.상세 노트 읽기 →가상 메모리·페이지 변환·Swap과 메모리 부족가상 주소가 실제 메모리에 연결되는 과정과 페이지 폴트·회수·Swap을 구분하고, free·vmstat·OOM 기록으로 메모리 문제를 해석합니다.상세 노트 읽기 →컨테이너·Docker와 데이터 지속성컨테이너는 격리된 프로세스 환경입니다. 이미지, 실행 중인 컨테이너, 영속 데이터와 공개 포트를 따로 관리합니다.상세 노트 읽기 →
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.