Ноя
11

KVM в Linux




  • Безымянный 27625

  • История Олимпийских Игр


  • Запись опубликована Bozaro. Пожалуйста, оставляйте комментарии там.

    С недавнего времени я активно использую OpenVZ, но вот понадобилось поставить на виртуальную машину M$ Windows и взор обратился к KVM (KVM и OpenVZ не являются взаимоисключающими и могут работать одновременно).

    KVM использует аппаратную виртуализацию, что накладывает сильные ограничения на аппаратную составляющую, но, теоретически, дает минимальную усадку по производительности.

    Аппаратная часть

    Компьютер собирался относительно недавно и с расчетом на виртуализацию. Основное, как выяснилось, - это процессор с поддержкой виртуализации (серверные варианты я не рассматривал):

    1. От Intel (технология Intel VT): поддержка виртуализации есть на некоторых Core2 Duo и некоторых Core2 Quad (см. здесь: http://www.intel.com/products/processor/core2duo/specifications.htm и http://ark.intel.com/cpu.aspx), а так же на Core i7;
    2. От AMD (технология AMD SVM): поддержка есть на всех AMD Phenom, включая AMD Phenom X3.

    Себе лично я взял самый дешевый AMD Phenom X3 из тех, что были в наличии.

    Проверить наличие виртуализации в системе можно по наличию в файле /proc/cpuinfo флага vmx для Intel и флага svm для AMD.

    Так же виртуализацию нужно включить в BIOS.

    Программная часть

    Работает KVM только под Linux и требует включения его в ядре. В Ubuntu 8.10 по-умолчанию модули для KVM есть, в том числе и в ядре с патчем под OpenVZ. То есть это дает возможность использовать KVM и OpenVZ одновременно.

    Для установки KVM под Ubuntu Linux 8.10 достаточно выполнить:

    apt-get install kvm

    Так как под KVM нет свой утилиты для создания вируального диска, придется поставить еще и qemu:

    apt-get install qemu

    Установка виртуальной машины

    Для начала нужно создать виртуальный диск, например:

    qemu-img create -f qcow disk.img 10G

    Эта команда создаст диск формата qcow (в отличие от raw, файл будет расти по мере надобности) с логическим объемом 10Гб.

    После этого можно запустить виртуальную машину, например:

    kvm disk.img -m 512 -localtime -no-acpi -net nic -net tap,ifname=veth1 -vnc :1 -daemonize

    Здесь:

    • -m 512 - выделить 512Мб оперативной памяти;
    • -localtime - в виртуальной машине использовать локальное время (по умолчанию UTC), что полезно при запуске M$ Windows;
    • -no-acpi - избавление от проблем с ACPI, иногда полезно;
    • -net nic -net tap,ifname=veth1 - создать для виртуальной машины сетевой интерфес veth1 и цепануть его к первому попавшемуся bridge-у (по умолчанию используется сеть HOST-only). Для указания конкретного интерфеса моста я правил файл /etc/kvm/kvm-ifup.
    • -vnc :1 - сделать машину доступной по VNC на дисплее :1. Очень полезно при удаленной установке;
    • -daemonize - не держать процесс до завершения работы виртуальной машины.

    Штатного интерфейса для запуска виртульных машин при старте системы я не обнаружил.

    Впечатления

    Впечатления следующие: после установки M$ Windows настройл в ней подключение по RDP и поиздевался над системой (компиляция, установка нескольких программ и т.д.). Тормозов не почувствовал.

    Сильно портит впечатление тот факт, что я не обнаружил штатного средства запуска при старте системы и корректного завершения виртуальной машины при остановке системы. Хотя, возможно, я просто недоглядел.

    Ссылки


  • Безымянный 27625

  • История Олимпийских Игр



  • Социальные сети

    Рубрики

    Последние записи