ESXi는 별도의 주소 변환 수준을 추가하여 게스트의 물리적 메모리를 가상화합니다.

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

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

  • VMM은 게스트 운영 체제 메모리 관리 구조를 제어하는 가상 시스템 명령을 가로채 프로세서의 실제 메모리 관리 장치(MMU)가 가상 시스템에 의해 직접 업데이트되지 않게 만듭니다.

  • ESXi 호스트는 섀도 페이지 테이블에서 가상 페이지와 시스템 페이지 간 매핑을 유지하며, 이 섀도 페이지 테이블은 VMM에 의해 유지 관리되는 물리적 페이지와 시스템 페이지 간 매핑에 의해 최신 상태로 유지됩니다.

  • 프로세서의 페이징 하드웨어는 섀도 페이지 테이블을 직접 사용합니다.

이 주소 변환 방식을 사용하면 섀도 페이지 테이블을 설정한 후 추가적인 주소 변환 오버헤드 없이 가상 시스템에서 일반적인 메모리 액세스를 실행할 수 있습니다. 프로세서 캐시에 있는 TLB(Translation Look-aside Buffer)가 섀도 페이지 테이블에서 읽은 가상 페이지와 시스템 페이지 간 직접 매핑을 캐싱하므로 VMM에 의한 추가적인 오버헤드 없이 메모리에 액세스할 수 있습니다.

성능 고려 사항

페이지 테이블 두 개를 사용함에 따라 다음과 같은 성능 영향이 있습니다.

  • 일반적인 게스트 메모리 액세스에서는 오버헤드가 발생하지 않습니다.

  • 가상 시스템 내에서 메모리를 매핑하기 위해 추가적인 시간이 필요합니다. 이는 다음 작업이 일어남을 뜻합니다.

    • 가상 시스템 운영 체제가 가상 주소와 물리적 주소 간 매핑을 설정하고 업데이트합니다.

    • 가상 시스템 운영 체제가 한 주소 공간에서 다른 주소 공간으로 전환됩니다(컨텍스트 전환).

  • CPU 가상화와 마찬가지로 메모리 가상화 오버헤드는 워크로드에 따라 달라집니다.