TIL/2025

가상화(Virtualization) 소개 | hypervisor, arm architecture

고무 오리 2025. 4. 28. 23:22
728x90
📢 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

 

 

 

 

 

 

728x90