virtualization

하드웨어 가상화 VS OS가상화

yueisu 2009. 4. 7. 23:58
서버 가상화는 VMware마이크로소프트Hyper-V, 오픈소스인 Xen과 같이 하드웨어 자체를 가상화하는 기술이 일반적입니다. 이런 하드웨어 가상화는 가상화를 위해 가상머신 모니터란 소프트웨어를 이용합니다. 덕분에 유저들은 필요한 하드웨어의 사양만 맞춰주면 그다지 어려움없이 서버를 가상화할수 있는 장점이 있습니다만, 가상머신 모니터를 이용하는만큼 CPU나 메모리의 오버헤드가 발생하여 가상머신의 성능이 어느정도(어느정도라고 했습니다만, 최근의 서버들은 고사양임으로 그다지 문제는 없을 듯 합니다) 저하되는 단점이 있습니다.

이런 일반적인 하드웨어 가상화 이외에 OS를 가상화하는 기술이 있습니다. OS 가상화는 OS(커널) 상에 가상 레이어를 작성, 그위에 가상머신(인스턴스, VE)를 작성하는 방법으로 호스트OS의 커널이나 드라이버를 공유하기 때문에 하드웨어 가상화와 같은 가상머신 모니터가 필요없습니다. 또한, 호스트OS의 리소스/하드웨어를 공유하기에 CPU나 메모리의 오버헤드도 거의 없고, 가상머신의 밀도나 퍼포먼스가 높은 것이 장점이 있습니다. 하지만 일장일단(一長一短)이란 말이 있듯이, 단점도 있습니다. 그건바로 가상머신을 만들수 있는 OS의 종류가 한정되어있다는 점입니다. 호스트OS의 커널이나 리소스를 공유하다보니, 호스트OS가 Linux라면 가상머신도 Linux밖에 만들 수 없습니다.
대표적인 OS가상화 소프트웨어로는 Parallels사의 Virtuozzo나 오픈소스인 OpenVZ, 썬마이크로 시스템즈의 Sun Containers가 있습니다.

음... 제 지식의 한계로 여기까지밖에 설명을 못하겠군요. 흐흐

결론을 말하자면, 일반 기업에서 그 기업이 사용하는 서버를 가상화하여 집약한다면 하드웨어 가상화, 호스팅 서비스를 제공하는 호스팅 업체라면 OS가상화가 적당하지않을까 합니다. 실제로도 그렇답니다. 흐흐