📢 Server, Automotive의 필수 기능인 Virtualization에 대해 살펴봐요
Overview
Armv8-A AArch64에서의 virtualization에 대해 알아봐요
Target profile이 달라도 Virtualization에 대한 컨셉을 익힐 수 있죠
Introduction to virtualization
Amazon은 Black Friday 같은 날 서버 터질 것 준비해서 서버 빵빵하게 준비해요
그런데 평소에는 이 서버 자원들이 놀고 있는 게 문제가 됐죠
이 놀고 있는 자원들을 필요한 사람들에게 돈 받고 빌려주면? 사업이 되겠군!
이러한 관점에서 Virtualization이 등장했죠
Virtualization의 핵심 가치는 아래 4가지에요
- Isolation: A, B 서비스는 서로의 환경에 영향을 주면 안돼요
- High Availability: A 서비스 장애 발생 시 VM을 다른 물리 서버로 안전하고 빠르게 이동 가능해요
- Workload balancing: 하드웨어 자원을 최대한 효율적으로 사용하는 것이죠
- Sandboxing: 개발 중이거나 위험할 수 있는 앱을 안전하게 격리 실행 가능하죠. 즉, 실험실 처럼 사용 가능해요
Standalone(Type1) and Hosted(Type2) hypervisors
Hosted(Type2) hypervisors
Hypervisor를 Application 레벨로 구현해요
속도가 느려요 (Guest OS → Hypervisor → Host OS → 물리 자원)
ex) VM ware…
Standalone(Type1) hypervisors
Hypervisor를 OS 레벨로 구현해요
비교적 빠르죠 (Guest OS → Hypervisor → 물리 자원)
ex) Xen Hypervisor…
Type 2 Hypervisor Type 1 Hypervisor
────────────────────────────────────── ─────────────────────────
+---------+ +---------+ +---------+ +---------+
| App(s) | | App(s) | | App(s) | | App(s) |
+---------+ +---------+ +---------+ +---------+
| | | |
+---------+ +---------+ +---------+ +---------+ +---------+
| Guest OS| | Guest OS| | App(s) | | Guest OS| | Guest OS|
+---------+ +---------+ +---------+ +---------+ +---------+
| | | | |
+-----------------------+-------------+ +-----------------------+
| Hypervisor | | | |
+-----------------------+ | | Hypervisor |
| Host OS | | |
+-------------------------------------+ +-----------------------+
+-------------------------------------+ +-----------------------+
| Hardware | | Hardware |
+-------------------------------------+ +-----------------------+
Full virtualization and Para-virtualization
Full virtualization
Guest OS가 가상화인지 모르고 물리 자원을 사용 할 수 있어요
trap and emulate (exception)로 구현해요
CPU, RAM, Interrupt 명령을 보통 Full virtualization로 구현해요
Para-virtualization
Guest OS가 가상화인지 알고 사용하는 방법이죠
Hypercall 및 Virt I/O 등을 사용하여 API 사용하는 방식으로 물리 자원 사용
보통 네트워크나 디스크 I/O 구현에 사용해요
🤔 그럼 Trap and emulate를 위한 Full virtialization만 쓰면 되는거 아닐까요?
Para-vitrualization을 쓰면 Guest OS수정도 들어가야하는데..?
Trap and emulate는 무거운 작업 이에요
그래서 I/O 작업 등 빠른 속도가 중요한 경우 최적화를 위해 para-virtualization을 사용하는거죠
Virtual machines and virtual CPUs
vCPU와 VM은 같은 개념이 아니에요
VM은 여러 vCPU를 통해 실행 될 수 있죠
참고로 pCPU는 여러 vCPU들(VM 상관없이)을 수행해요
Reference
https://developer.arm.com/documentation/102142/0100/Introduction-to-virtualization
Documentation – Arm Developer
developer.arm.com
'TIL > 2025' 카테고리의 다른 글
| Trapping and Emulation of instructions (0) | 2025.04.29 |
|---|---|
| Memory Management Unit (MMU)의 Stage 2 translation (0) | 2025.04.29 |
| About the Arm architecture (0) | 2025.04.28 |
| Arm R-Profile Architecture 학습 방법 및 자료 (0) | 2025.04.28 |
| Overview of Armv8-R AArch32, Cortex-R52 (1) | 2025.04.28 |