one of a kind scene

4-3 데이터 처리 기술_클라우드 인프라 기술 part4_메모리 가상화 본문

ADP/이론

4-3 데이터 처리 기술_클라우드 인프라 기술 part4_메모리 가상화

specialscene 2020. 1. 27. 01:13

메모리 가상화

메모리 가상화 : VMware기법

- VMware 하이퍼바이저의 핵심 모듈은 VMkernel

- Shaodw Page Table

 

1. 개념 및 특징

     • VMware란 한 대의 컴퓨터로 마치 여러 대의 컴퓨터를 사용하는 것과 같이 가상의 공간을 만들어주는 프로그램

     • 운영체제는 메모리를 관리하기 위해 물리주소(Physical Address)와 가상주소(Virtual Address)를 사용

                                                              설명     
물리주소 0부터 시작해서 실제 물리적인 메모리 크기까지 나타냄
가상주소 하나의 프로세스가 가리킬 수 있는 최대 크기를 의미하며 32비트 운영체제에서는 4GB까지 가능

     • 프로그램에서의 주소는 물리적인 메모리의 주소 값이 아닌 가상주소 값이다.

     • 따라서, 가상주소 값의 위치(VPN, Virtual Page Number)를 실제 물리적인 주소 값 위치(MPN, Machine Page Number)로 매핑하는 과정이 필요

     • 매핑 연산을 하드웨어적으로 도와주는 것TLB(Translation Lookaside Buffer)라고 함

     • VMware 하이퍼바이저의 핵심 모듈은 VMkernel

     • VMkernel은 Service Console, 디바이스 드라이버들의 메모리 영역을 제외한 나머지 전체 메모리 영역을 모두 관리하면서 가상머신에 메모리를 할당함

     • 생성되는 가상머신은 자신에게 할당된 메모리들을 연속된 공간의 실제 물리적인 메모리로 인식

     • VMware는 하이퍼바이저 내에 Shadow Page Table을 별도로 두어 가상 메모리 주소와 물리 메모리 주소의 중간 변환 과정을 가로챔

     • Shadow Page Table은 마치 연속된 빈 공간의 메모리가 실제 존재하는 것처럼 게스트 운영체제에게 매핑해주는 역할을 하며, 동시에 개별적인 모든 가상머신들이 자신만의 메모리 주소공간을 갖도록 함

(그림1) Shadow Page Table 설명

(형식2)

3. 가상머신 메모리 할당의 문제 해결을 위한 방법

     ① Memory Balloning

          • VMkernel은 예약된 메모리보다 더 많은 메모리를 사용하는 가상머신의 메모리 영역을 빈 값으로 강제로 채워 가상머신 운영체제가 자체적으로 swapping 하도록 한다.

          • 가상머신 운영체제에서 보이는 물리적인 메모리(실제로 하이퍼바이저에서 제공한 논리적 메모리)가 채워지고 있다는 것을 감지한 가상머신 운영체제는 swap 파일에 메모리 영역을 page out 시키고 메모리를 비우게 됨

          • 하이퍼바이저는 page out된 메모리 영역을 다른 가상 머신에 할당

     ② Transparent page sharing : 동일한 내용을 다른 가상머신들과 공유하게끔 함

          • 하나의 물리적인 머신에 여러 개의 가상머신이 운영되는 경우 각 가상머신에 할당된 메모리 중 동일한 내용을 담고 있는 페이지는 물리적인 메모리 영역에 하나만 존재시키고 모든 가상머신이 공유하도록 함

    ③ Memory Overcommitment : 실제 물리적 메모리보다 더 많은 메모리를 가상머신에게 줌(성능저하 우려있음)

          • 2GB 메모리를 가진 물리적 장비에 512MB를 Minimum reserved로 가질 수 있는 가상머신 5개를 수행할 수 있다. 이것은 앞서 설명한 두 가지 기법을 이용하여 가능하지만, 모든 가상머신이 메모리 사용이 많은 업무를 수행하는 경우라면 심각한 성능 저하현상이 발생할 수 있기 때문에 권장하지 않음