안녕하세요.
가상화를 공부중입니다.
몇가지 잘 모르는 부분이 있어 문의 드립니다. 혹시 아시는분 있으면 답변좀^^;
QEMU가 VM에게 가상화 환경을 제공한다고 생각합니다. kvm은 qemu에서 동작하는
가상화 동작에 대해 좀더 성능 향상을 위해 사용된다고 생각합니다.
kvm이 모듈(hw 가상화 기능 지원)없이 qemu에서 게스트 os를 동작 시킬수 있나요>?(동적 바이너리 변환으로.)
qemu와 게스트 os를 동작 시킬수 있지만 성능향상을 위해 kvm을 사용하는게 아닌가 문의 드립니다.
감사합니다.
댓글 3
-
백창우
2013.05.21 23:39
-
김영민
2013.05.22 03:36
먼저 답변 감사드립니다.
제가 질문을 조금 잘 못한 부분이 있는듯 합니다.
QEMU가 VM에게 가상화 환경을 제공한다고 생각합니다. kvm은 qemu에서 동작하는
가상화 동작에 대해 좀더 성능 향상을 위해 사용된다고 생각합니다.
가정이 틀렸습니다. KVM이 가상머신을 생성하고, 동작시킵니다.
QEMU는 디바이스를 emulation합니다.
kvm이 모듈(hw 가상화 기능 지원)없이 qemu에서 게스트 os를 동작 시킬수 있나요>?(동적 바이너리 변환으로.)
일단 가정이 틀렸기 때문이 애초에 이 질문은 틀린 질문이지만 몇가지 답변드리면 H/W 지원없이 KVM은 동작할 수 없습니다. 하지만 QEMU는 애초 emulator이기 때문에 H/W 지원없어도 OS를 동작시키는 것이 가능합니다.
qemu와 게스트 os를 동작 시킬수 있지만 성능향상을 위해 kvm을 사용하는게 아닌가 문의 드립니다.
위에서 답변드렸습니다.
-> 제가 의도하고자 했던 질문을 제가 잘 못 표현한듯합니다.제가 기본 전제로 가정했던 부분은 답변 주신것 처럼 qemu가 emulator이기 때문에kvm/(하드웨어 가상화)없이 동작은 할수 있습니다. 그렇다면 kvm없이도 동작은 합니다.하지만 성능적인 문제로 kvm(하드웨어 가상화)을 사용해서 성능향상을 위해 주로 사용하는게 아닌가 하는 생각이 듭니다.kvm에서 가상 머신 생성, 실행들 여러가지 일을 지원 하지만 주 탄생목적(?)은 h/w virtualization을 이용하여 성능 향상을 이루고자 한게 아닌가하는 생각입니다.qemu가 vm에게 가상화 환경을 제공한다고 표현한것은 qemu가 guest os이미지를 가지고 실행하면서 ioctl를 통해 kvm에게 여러 기능들을 실행하도록 하기 때문에 qemu가 각 guest os가 동작할 수 있는 통합된 환경을 제공한다. (한국말이지만 표현이 어렵습니다.) 를 말하고 싶었습니다. -
woos
2013.05.22 12:20
그래서 그 전제가 잘못되었다는 것입니다.
kvm은 hypervisor입니다.
hypervisor는 emulator의 성능 향상을 위해 만들어진것이 아니라, 그 자체로써 가상머신을 생성 및 관리하기 위해 만들어진 것입니다.
물론 그 이면에는 emulator의 낮은 성능을 극복하기 위한 측면도 있습니다.
하지만 말씀하신 관점과 같이 qemu(emulator)의 성능을 높이기 위해 kvm(hypervisor)을 사용하는 것은 아닙니다.
오히려 반대로 다음과 같은 이유 때문에 kvm에서 qemu를 사용합니다.
1. kvm(hypervisor)은 독자적으로 가상머신을 생성하고 관리해서 guest OS를 동작시킬수 있다.
2. 이때 해당 가상머신에 여러가지 디바이스들을 emulation해줄 필요가 있다.
3. 원래는 kvm에서 해당 디바이스의 emulation 코드를 작성해야 되지만 방대하고 어려운 일이다.
4. 그래서 kvm의 디바이스 emulation 기능을 사용하는 것이다.
이해가 되셨는지요?
덧붙여 첨언하면 kvm을 사용하는데 있어 qemu-system을 사용하여 동작 시키기 때문에 주/객에 대한 오해가 있었을것 같습니다. 하지만 그 둘의 관계는 주종 관계가 아닙니다.
단지 kvm이 동작하는데 있어 qemu의 여러기능들을 빌려서 사용하는것 밖에 없습니다. 이미 qemu에 구현된 기능을 이용하는게 kvm을 구현하는데 있어 수월했기 때문입니다.
.
가상화 동작에 대해 좀더 성능 향상을 위해 사용된다고 생각합니다.
가정이 틀렸습니다. KVM이 가상머신을 생성하고, 동작시킵니다.
QEMU는 디바이스를 emulation합니다.
kvm이 모듈(hw 가상화 기능 지원)없이 qemu에서 게스트 os를 동작 시킬수 있나요>?(동적 바이너리 변환으로.)
일단 가정이 틀렸기 때문이 애초에 이 질문은 틀린 질문이지만 몇가지 답변드리면 H/W 지원없이 KVM은 동작할 수 없습니다. 하지만 QEMU는 애초 emulator이기 때문에 H/W 지원없어도 OS를 동작시키는 것이 가능합니다.
qemu와 게스트 os를 동작 시킬수 있지만 성능향상을 위해 kvm을 사용하는게 아닌가 문의 드립니다.
위에서 답변드렸습니다.