Development

하이퍼바이저 (Hypervisor) Type1, Type2 차이

chbae 2023. 8. 5. 04:33
728x90

차량용 ECU 아키텍처가 분산 아키텍처에서 중앙집중형, 도메인, Zonal 아키텍처로 움직이고 있다. OEM 마다 약간씩 다르지만 목적은 작은 수십/수백개의 ECU를 성능 좋은 수/수십개로 줄이는 것이다. 하드웨어 비용을 줄이고 소프트웨어 업데이트 등을 조금 더 자유롭고 편하게 하고자 하는 목적이다.

 

이렇게 함으로써 ECU 하나에 들어있는 소프트웨어의 복잡도는 늘어나고 각기 다른 기능을 위한 OS도 하나의 ECU에 여러개가 서로 고립되면서 돌아가야 한다. 이 때 하이퍼바이저 (Hypervisor)을 사용한다. 하이퍼바이저 쪽 전문가는 아니지만 최근 프로젝트를 하면서 Type1, Type2 하이퍼바이저에 대한 구분 및 장단점 그리고 전 가상화 (Full Virtualization)와 반 가상화 (Para Virtualization) 등에 대한 이해를 하면 좋을 것 같아 스터디를 하면서 간단하게 글을 써본다.

 

출처: Wikipedia

TYPE1

하드웨어에 바로 하이퍼바이저를 올리고 그 위에 Guest OS를 올림 (Xen ..), 하드웨어 위에 바로 올려서 성능상 이점을 가지고 갈 수 있고 하드웨어 리소스 관리가 유연하다. QNX Hypervisor이 TYPE1 이라고  이야기는 하지만 TYPE1과 TYPE2 중간 어딘가에 있다고들 한다. QNX Hypervisor은 QNX OS가 무조건 있어야 하는걸로 알고 있다.

 

QNX Hypervisor

TYPE2

하드웨어 위에 OS를 올리고 그 위에 하이퍼바이저를 올린 후 Guest OS를 올림 (Ex, VMWare Workstation, Virtual Box, QEMU), OS에 큰 제약사항이 없지만 성능이 TYPE1에 비해 약간 떨어질 수 있음

 

그 외에 OS위에 컨테이너로 올리는 것을 TYPE 3라고도 하긴 하는데 Docker나 LXC 등으로 많이 사용함.

 

출처: https://pediaa.com/what-is-the-difference-between-full-virtualization-and-paravirtualization-in-cloud/

전 가상화 (Full Virualization)

하드웨어를 완전히 가상화한다. 이 말은 Guest OS에서 HW를 사용할 때 모두 Hypervisor를 거쳐서 가고 이때문에 성능상 저하가 발생할 수 있다. 하지만 Guest OS를 수정할 필요가 없다는 장점이 있다.

반 가상화 (Para Virtualization)

일부만 가상화를 한다. 일부는 중간 단계 없이 직접 Hypercall을 통해 직접 HW에 접근을 하여 속도는 빠르지만 Guest OS의 커널을 수정해야 한다.

 

아직 학습중이라 기본적인 내용만 올렸는데 좀 더 알아봐야할 것 같다.