Reference
1. Thomas Erl_ Zaigham Mahmood_ Ricardo Puttini - Cloud Computing_ Concepts, Technology & Architecture-Prentice Hall
2. Cloud Computing class by Professor Heonchang-Yu of the Department of Computer Science and Engineering at Korea University
3. Xen으로 배우는 가상화 기술의 이해 - 메모리 가상화 -박은병, 김태훈, 이상철, 문대혁 지음
중요한 내용 위주로 요약 & 정리했습니다.
Virtualization
- secure, customizable and isolated execution environment
- 각 virtual machine들은 가상화된 CPU, network interface, storage, OS를 가짐
- emulation of hardware, software : 한 대의 컴퓨터가 여러 대의 컴퓨터의 역할을 할 수 있게 됨
- elastically scalable system 구축할 수 있는 기술
3가지 요소 - guest, host, virtualization layer
- guest는 host 대신 virtualization layer와 상호작용
- host는 original environment
- virtualization layer는 guest가 operate할 여러 environment를 재생성해야 함
virtualizaion의 역할
- System security → 같은 hardware에서 돌아가는 service의 isolation 허용
- Performance and reliablity → application의 platform 이주 허용
Virtual machine monitors (VMM) == hypervisor
- Geust OS는 VMM의 제어를 받음, hardware 직접 접근 x
- kernel mode에서 돌아감, Guest OS는 user mode
- single hardware platform에서 여러 OS가 동시에 동작하도록 제어
- Guest OS 끼리의 Isolation 강제 → 각 VM의 Isolation → 보안, 캡슐화
- server의 migration
- guest OS가 privileged instruction 수행을 시도할 때, VMM → trap the operation
- VMM이 CPU와 Memory를 가상화
- VMM이 interrupt를 trap하고, 각 guest OS에게 보냄
- shadow page table : 가상 주소에서 머신 주소로 변환하는 정보를 저장
($guest os에서 사용하는 page table은 가상 주소에서 물리 주소로 변환하는 정보를 저장)
Xen으로 배우는 가상화 기술의 이해 메모리 가상화 -P12
현재 가상 머신 하나가 동작 중이고, 그 위에 프로세스 두 개 가 동작한다. 그리고 운영체제는 프로세스마다 페이지 테이블을 운영한다. 또한 하이퍼바이저는 각 프로세스에 해당하는 섀도 페이지 테이블을 유지하며, 페이지 테이블 베이스 레지스터인 CR3는 섀도 페이지 테이블을 가리킨다.
현재 프로세스 1의 가상 주소 10에 해당하는 물리 주소는 50이다. 따라서 게스트 운영체제가 관리하는 페이지 테이블에는 가상 주소 10의 엔트리에 50이라고 쓰여 있다.
하지만 실제 물리 주소 50은 머신 주소 10에 매핑되었고, 프로세스 1의 가상 주소 10에 해당하는 섀도 페이지 테이블 엔트리에는 10이라고 쓰여있다. 페이지 테이블 베이스 레지스터는 섀도 페이지 테이블을 가리키므로, MMU는 가상 주소 2장 메모리 가상화 13 10을 머신 주소 10으로 변환할 것이다. 또한 현재 프로세스 1이 동작하므로 페이지 테이블 베이스 레지스터는 섀도 페이지 테이블 1을 가리킨다.
그런데 여기서 게스트 운영체제가 프로세스 2로 컨텍스트 스위치Context Switch한다면 어떻게 될까?
게스트 운영체제는 컨텍스트 스위치할 때, 페이지 테이블 베이스 레지스터에 프로세스 2의 페이지 테이블을 가리키도록 수정한다. 하이퍼바이저는 페이지 테이블 베이스 레지스터를 변경하는 것을 감지할 수 있으므로, 제어권을 넘겨받아 게스트 운영체제 프로세스 2의 페이지 테이블 주소가 아닌, 프로세스 2의 섀도 페이지 테이블을 페이지 테이블 베이스 레지스터에 설정한다. 즉, 위 과정을 반복하면 하이퍼바이저는 게스트 운영체제 모르게 적절히 섀도 페이지 테이블을 사용해 시스템 전체의 메모리 가상화를 구현할 수 있다.
Virtual machine
- computer 자원 일부에 접근 가능한 isolated environment
- process VM : single process가 host OS 위에서 application으로 동작
- system VM : OS와 user process 서포트
- tranditional VM : host hardware 바로 위에 VMM (software layer) 운영, 성능 좋음
- hybrid VM : VMM과 Host OS가 hardware 공유
- Hosted VM : Host OS 위에서 VMM 운영
virtualized environment 특징
(1) Increase security
(2) Managed execution - sharing, aggregation, emulation, isolation
- sharing : 여러 컴퓨팅 환경이 같은 host에서 생성
- aggregation : 여러 host들이 하나의 virtual host로 집속
- emulation : host와 완전 다른 환경 emulation 가능 → host에 없는 환경을 guest에서 구현 가능
- Isolation : guest에게 완벽히 분리된 환경 제공
(3) Portability : guest를 virtual image로 패키지화
virtualization 기술 분류
- virtualization은 실행 환경, storage, network를 모방하기 위해 사용
(1) Execution virtualization - Machine reference model
- ISA (Instruction Set Architecture) : hardware 와 software의 인터페이스
- ABI (Application binary interface) : 이곳에서 system call 정의됨
- API (Application programming interface)
(2) Execution virtualization - Hardware-level vitualization (=system virutalization)
- guest OS에게 가상화된 실행 환경 제공
(3) Hypervisor (virtual machine manager)
- Type 1 : hardware 위에서 바로 동작 → native virtual machine
OS를 대체하고 ISA interface와 직접 상호 작용
- Type 2 : host OS 위에서 동작
program이 OS에 의해 관리되며 ABI로 소통, ISA의 virtual hardware를 emulate
(4) Full virtualization
- 가상화 환경과 실제 물리적 환경을 분리 → physical system을 완전히 추상화(가상화)
- 모든 guest OS 가 동일한 VMM 사용
- No modification
(1) Hardware Assisted Full Virtualization
- VMM이 OS kernel level(0) 보다 낮은 root level(-1)에서 동작
- Privileged and sensitive call은 자동으로 hypervisor에게 trap
(2) Full virtualization with Binary Translation
- kernel code를 변환하여 nonvirtualizable instruction을 virtual hardware에 의도된 영향을 주는 일련의 새로운 instruction으로 대체시킨다.
- user level code는 직접 processor가 실행
(5) Paravirtualization
- hardware를 완전히 가상화 하지 않음
- 전가상화의 성능 저하를 보완 → Hyper Call을 사용하여 hypervisor에게 직접 요청
- 가상화된 각 guest OS들이 각각 다른 번역기를 갖고 있고, 그 번역기가 통합된 명령어로 번역해줌
- Modification 필요 : hypervisor에게 hyper call 요청을 할 수 있도록 각 OS의 커널을 수정해야 한다.
- VM이 privileged instruction을 trap할 필요 없다.
전가상화 vs 반가상화
(1) 정의
전가상화 : common, cost-effective, 컴퓨터 service가 physical hardware와 분리
반가상화 : geust OS를 VM 안에 설치하기 위해 recomplie
(2) 기능
전가상화는 guest OS가 독립적으로 수행될 수 있음
반가상화는 guest OS가 hypervisor를 통해서 소통함
(3) Accessing Hardware
전가상화는 geust OS가 직접 hardware에 접근 불가
반가상화는 hypervisor에게 직접 소통 하여 접근 가능
(4) 성능
반가상화가 성능이 더 좋다
Memory Virtualization
- physical system memory를 공유하고, 동적으로 VM에게 할당한다.
- OS는 page table에 ‘virtual page number’와 ‘physical page number’를 mapping
- guest OS는 virtual 주소와 guest memory physical 주소를 mapping
- guest OS는 actual machine memory에 접근 불가
Xen으로 배우는 가상화 기술의 이해 메모리 가상화 p.7
가상 주소와 물리 주소와의 매핑을 결정하는 것은 페이지 테이블Page Table이다.
운영체제는 가상 주소와 물리 주소 사이의 매핑 정보를 페이지 테이블에 기록한다. 그런 다음 CPU의 페이지 테이블 베이스 레지스터 Page Table Base Register가 페이지 테이블에 기록한 메모리 주소를 등록하면, MMU는 페이지 테이블을 검색해 CPU가 내보내는 가상 주소의 실제 물리 주소를 찾아내 변환하고, 변환한 주소를 통해 메모리에 접근한다.
즉, 페이지 테이블은 가상 주소와 물리 주소 사이의 변환 테이블이다.
- 비가상화 환경에서는 물리 주소, 가상 주소 두 단계
- 가상화 환경에서는 3단계의 주소를 가진다. (머신 주소 추가)
- VM에서 동작하는 guest OS는 자신이 가상화 환경에 있음을 모른다 → 가상 주소와 물리 주소 사용. 이때의 물리 주소는 실제 물리 주소가 아니며, hypervisor가 실제 물리 주소로 변환하여 사용함 (OS의 page table)
- 하지만 OS가 생각하는 물리 주소는 실제 물리 주소가 아니며, hypervisor가 실제 메모리에 접근할 수 있는 머신 주소로 변환한다.
Xen으로 배우는 가상화 기술의 이해 메모리 가상화 p.11
아직 이해하지 못할 수 있는 독자를 위해 반대로 가상 머신이 사용하는 물리 주소 를 그대로 사용한다고 생각해보자. 기본적으로 운영체제는 할당된 메모리가 0번지 부터 시작한다고 생각해 동작한다. 그러면 모든 가상 머신은 너도나도 0번지부터 시작하는 메모리를 사용할 것이고, 모두 같은 영역의 메모리를 사용하므로 충돌이 일어나서 정상적으로 동작할 수 없을 것이다. 따라서 하이퍼바이저의 적절한 중재 가 있어야 한다.
Device and I/O virtualization
- I/O 요청과 virtual device, shared physical hardware를 연결한다.
Server consolidation
- 자원이 충분히 사용되지 못할 떄, VM을 aggregating 시켜서 충분히 사용되도록 함
- live migration : running 되는 instance 이주
Adavantages of Virtualization
- Managed execution and isolation : 안전하고 통제 가능한 컴퓨팅 환경 구축
- Portability and self-containment : VM은 한 두개의 파일로 구성
→ physical system에 비해 쉽게 이동 가능
Disadvantages of virtualization
- Performance degradation : 추상화 계층을 거치기 때문에 guest OS에서 latency 발생
- Inefficiency and degraded user experience : host의 특정 기능 가상화 계층에 노출 불가 → user는 접근 불가
- Security holes and new threats : hardware 가상화의 경우 악성 프로그램이 OS보다 먼저 load되어 VMM 역할을 수행할 수 있음,
Xen
- 반가상화 VMM
'Computer Science > Cloud computing' 카테고리의 다른 글
[Cloud computing] 7. Models (0) | 2022.12.04 |
---|---|
[Cloud computing] 6. Parallel & Distributed (0) | 2022.10.24 |
[Cloud computing] 3. Architecture (0) | 2022.10.13 |
[Cloud computing] 2. Model (0) | 2022.10.12 |
[Cloud computing] 1. Concepts (0) | 2022.10.12 |