가상화를 통해 추가적인 수준의 메모리 매핑이 적용되기 때문에 ESXi는 모든 가상 시스템에 대해 효과적으로 메모리를 관리할 수 있습니다.
가상 시스템의 물리적 메모리 일부는 매핑되지 않거나 스왑되지 않은 페이지로 매핑되거나 공유 페이지로 매핑될 수 있습니다.
호스트는 게스트 운영 체제를 인식하지 않으며 게스트 운영 체제의 자체 메모리 관리 하위 시스템을 방해하지 않고 가상 메모리 관리를 수행합니다.
각 가상 시스템의 VMM은 게스트 운영 체제의 물리적 메모리 페이지와 기반 시스템의 물리적 메모리 페이지 간 매핑을 유지합니다. (VMware에서는 기반 호스트의 물리적 페이지를 “시스템” 페이지라고 하고 게스트 운영 체제의 물리적 페이지를 “물리적” 페이지라고 표현합니다.)
각 가상 시스템에게는 0부터 시작하는 연속적 주소 지정이 가능한 물리적 메모리 공간이 보입니다. 하지만 각 가상 시스템에서 사용하는 서버의 기반 시스템 메모리는 연속적일 필요가 없습니다.
게스트 가상 대 게스트 물리적 주소는 게스트 운영 체제에서 관리됩니다. 하이퍼바이저는 게스트 물리적 주소를 시스템 주소로 변환하는 일만 담당합니다. 하드웨어 지원 메모리 가상화는 하드웨어 기능을 활용하여 게스트의 페이지 테이블과 하이퍼바이저가 유지하는 중첩된 페이지 테이블이 포함된 결합된 매핑을 생성합니다.
이 그림에서는 메모리 가상화의 ESXi 구현을 보여 줍니다.
- 상자는 페이지를 나타내며 화살표는 여러 메모리 매핑을 보여 줍니다.
- 게스트 가상 메모리에서 게스트 물리적 메모리로의 화살표는 게스트 운영 체제에서 페이지 테이블에 유지되는 매핑을 보여 줍니다. x86 아키텍처 프로세서에 대한 가상 메모리에서 선형 메모리로의 매핑은 표시되어 있지 않습니다.
- 게스트 물리적 메모리에서 시스템 메모리로의 화살표는 VMM에서 유지하는 매핑을 보여 줍니다.
- 점선 화살표는 마찬가지로 VMM에서 유지하는 섀도우 페이지 테이블에서 게스트 가상 메모리로부터 시스템 메모리로의 매핑을 보여 줍니다. 가상 시스템을 실행하는 기본 프로세서는 섀도우 페이지 테이블 매핑을 사용합니다.