가상화란?

코딩하는범이·2022년 4월 22일
0
post-thumbnail

가상화

가상화란 한대의 물리 시스템 하드웨어를 논리적으로 분리하여 가상의 시스템에 활용하는 개념이다. 가상화라는 개념이 없을 때에는 하나의 하드웨어가 하나의 시스템을 사용했기 때문에 또 다른 애플리케이션을 띄우기 위해서는 또 다른 장비가 필요했다. 그러나 가상화를 통해서 하나의 하드웨어에서도 여러개의 시스템을 효율적으로 사용 할 수 있었다.

Hypervisor

가상화 기술이 나온 것은 1960년대로 오래되었지만 성능 문제 때문에 널리 사용되지 못했다. 초기에 나왔던 VMware, Virtual PC는 해당 에뮬레이터를 통해서 게스트 OS의 하드웨어와 명령어를 모두 에뮬레이션 해야 했기 때문에 속도가 매우 느렸다.

이후 인텔과 AMD에서는 CPU 차원에서 가상화를 지원하기 시작했고 CPU의 하이퍼바이저가 기존의 하드웨어와 명령어를 모두 에뮬레이션하지 않고 처리해줄 수 있게 되어 성능이 매우 향상되었다. 이 방식은 전가상화(Full Virtualization)라고 해서 게스트 운영체제 수정 없이 바로 실행 할 수 있었다.

Xen의 소프트웨어 하이퍼바이저 등장

Xen(젠)이라는 소프트웨어 하이퍼바이저가 등장하면서 가상화에 큰 성능 개선이 이루어졌다. Xen은 반가상화(Paravitualization)를 제공해 줬는데 이 방식은 게스트 OS(커널)를 수정해야 했지만 전가상화보다 빠르며 호스트와 거의 비슷한 성능을 냈기 때문에 큰 인기를 끌었다. 또한 시간이 지날 수록 서버용 OS로 Linux를 많이 사용하게 되었는데, Linux는 오픈 소스라 커널 수정에는 큰 문제가 되지 않았다.

현재에도 반가상화를 사용하는가?

현재에는 반가상화를 사용하지 않는 추세이다. AWS에서도 PV(반가상화) 를 전부 걷어내고 현재는 HVM(가상화)를 사용하고 있다. 그 이유는 반가상화의 성능상 이점을 전가상화가 따라잡으면서 게스트 OS 커널 소스 수정을 하면서 까지 반가상화 방식을 사용할 이유가 없어졌기 때문이다. 개인적인 생각으로는 최신 세대 CPU 출시와 성능 향상으로 인한 이유가 클것으로 보인다.

출처

profile
기록 그리고 기억

0개의 댓글