FastNetMon

Wednesday 5 September 2007

Виртуализация в openSUSE 10.2 x86_64 c помощью QEMU и kvm, введение.

Вы должно быть заметили, что последнее время начался бум всевозможных технологий виртуализации и соответственно самих эмлуяторов (Parallels Desktop, QEMU, Xen, vmware, VirtualBox и проч.) это и не случайно, ведь данные технологии предоставляют невиданые ранее удобства в масштабировании и интеграции всевозможных система, чего только стоят решения vmware для корпоративных клиентов, позволяющие создавать в целые виртуальные вычислительные среды на основе кластеров, причём отдельные элементы этих ВС являются виртуальными машинами, которые могут в случае сбоя одного из элементов кластера (уже физического) быть автоматически перемещены на другой физический сервер.

Также учитывая мощности (зачастую 2х и более ядерных) современных систем можно без проблем держать несколько виртуальных машин на некоторой хост операционной системе, например почтовый сервер от MS или сервер 1С можно спокойно держать в виртуальной машине. У меня собственно необходимость в виртуализации встала, когда потребовалось поставить программы, которые работают либо только под виндовс, либо под дос (да, увы, и такие архаизмы встречаются), а сервера (впрочем, как и рабочие станции, находящиеся в моём распоряжении) работают исключительно на Линуксе.

Для начала краткий экскурс по технологиям.
QEMU is a generic and open source machine emulator and virtualizer.

When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performances.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. A host driver called the QEMU accelerator (also known as KQEMU) is needed in this case. The virtualizer mode requires that both the host and guest machine use x86 compatible processors.

Тут вроде итак все понятно, Qemu представляет собой платформу для эмуляции систем (а также других платформ, например Arm).
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.

Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.

The kernel component of KVM is included in mainline Linux, as of 2.6.20.

KVM is open source software.

Тут, конечно, как в предыдущем случае двумя словами обойтись нельзя, но я постараюсь - kvm представляет собой модули для ядра Линукса, которые позволяют достичь очень высокой производительности виртуальных систем (до 50% мощности хостовой операционной системы).

Для заинтересовавшихся привожу официальные сайты этих проектов:
- QEMU
- kvm

В следующих публикациях будут пошаговые инструкции по конкретной реализации описанных технологий.

No comments :

Post a Comment

Note: only a member of this blog may post a comment.