메모리 가상화에는 소프트웨어 기반 메모리 가상화와 하드웨어 지원 메모리 가상화의 두 가지 유형이 있습니다

가상화를 통해 추가적인 수준의 메모리 매핑이 적용되기 때문에 ESXi는 모든 가상 시스템에 대해 효과적으로 메모리를 관리할 수 있습니다. 가상 시스템의 물리적 메모리 일부는 매핑되지 않거나 스왑되지 않은 페이지로 매핑되거나 공유 페이지로 매핑될 수 있습니다.

호스트는 게스트 운영 체제를 인식하지 않으며 게스트 운영 체제의 자체 메모리 관리 하위 시스템을 방해하지 않고 가상 메모리 관리를 수행합니다.

각 가상 시스템의 VMM은 게스트 운영 체제의 물리적 메모리 페이지와 기반 시스템의 물리적 메모리 페이지 간 매핑을 유지합니다. (VMware에서는 기반 호스트의 물리적 페이지를 “시스템” 페이지라고 하고 게스트 운영 체제의 물리적 페이지를 “물리적” 페이지라고 표현합니다.)

각 가상 시스템에게는 0부터 시작하는 연속적 주소 지정이 가능한 물리적 메모리 공간이 보입니다. 하지만 각 가상 시스템에서 사용하는 서버의 기반 시스템 메모리는 연속적일 필요가 없습니다.

소프트웨어 기반 및 하드웨어 지원 메모리 가상화 모두에서, 게스트 가상 대 게스트 물리적 주소는 게스트 운영 체제가 관리합니다. 하이퍼바이저는 게스트 물리적 주소를 시스템 주소로 변환하는 일만 담당합니다. 소프트웨어 기반 메모리 가상화는 게스트의 가상 대 시스템 주소를 소프트웨어에서 결합하고 이를 하이퍼바이저가 관리하는 섀도 페이지 테이블에 저장합니다. 하드웨어 지원 메모리 가상화는 하드웨어 기능을 활용하여 게스트의 페이지 테이블과 하이퍼바이저가 유지하는 중첩된 페이지 테이블이 포함된 결합된 매핑을 생성합니다.

이 그림에서는 메모리 가상화의 ESXi 구현을 보여 줍니다.

그림 1. ESXi 메모리 매핑


이 그림에서는 메모리 가상화의 구현을 보여 줍니다.

  • 상자는 페이지를 나타내며 화살표는 여러 메모리 매핑을 보여 줍니다.

  • 게스트 가상 메모리에서 게스트 물리적 메모리로의 화살표는 게스트 운영 체제에서 페이지 테이블에 유지되는 매핑을 보여 줍니다. x86 아키텍처 프로세서에 대한 가상 메모리에서 선형 메모리로의 매핑은 표시되어 있지 않습니다.

  • 게스트 물리적 메모리에서 시스템 메모리로의 화살표는 VMM에서 유지하는 매핑을 보여 줍니다.

  • 점선 화살표는 마찬가지로 VMM에서 유지하는 섀도우 페이지 테이블에서 게스트 가상 메모리로부터 시스템 메모리로의 매핑을 보여 줍니다. 가상 시스템을 실행하는 기본 프로세서는 섀도우 페이지 테이블 매핑을 사용합니다.