Создание профиля KVM: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 1: Строка 1:
Образ виртуальной машины [[KVM]] предназначен для переноса виртуальной машины на другой компьютер.
Образ виртуальной машины [[KVM]] предназначен для переноса виртуальной машины на другой компьютер.


== Подготовка ==
== Профиль kvm ==


Необходимо установить дистрибутив с поддержкой KVM и qemu (начиная с ALT Linux 5.0 Server эта поддержка уже интегрирована в дистрибутив иначе необходимо установить пакеты '''kvm''' и '''qemu''') на оборудование, поддерживающее KVM.
В этом документе описано создание профиля (bundle) для виртуальной машины под управленим [http://www.linux-kvm.org/ KVM].
Профиль представляет из себя архив tar, содержащий следующие обязательные файлы:
* ''Манифест'' - файл, содержащий информацию обо всех файлах профиля, а также информацию, необходимую для последующей работы с профилем.
* ''Образ диска'' - файл специального формата, представляющий диск, на который будет установлена виртуальная машина.
 
В профиле также могут содержаться следующие необязательные файлы.
* ''Лицензия'' - некоторые производители могут захотеть добавить в профиль лицензию на использование созданного ими профиля.
== Создание профиля вручную ==
 
==== Требования к окружению ====
Для создания профиля kvm вам необходима машина с аппаратной поддержкой виртуализации,
на которой установлены kvm и qemu. Более подробную информацию о том имеет ли ваша
машина аппаратную поддержку виртуальзации и о том как установить kvm и qemu, вы можете
найти [http://www.linux-kvm.org/page/Documents здесь].
 
Пользователи Linux могут проверить наличие аппаратной поддержки виртуализации с помощью команды
egrep -q '^flags.*(vmx|svm)' /proc/cpuinfo && echo yes
Если команда в ответ сказала <tt>yes</tt>, то это значит, что виртуализация есть.
Помните также, что поддержка виртуализации может быть выключена в BIOS.
 
==== Формат манифеста для машин kvm ====
Манифест - это файл с метаинформацией, необходимой для нормальной
установки и дальнейшей работы с контейнером. Манифест должен называться info
и состоять из нескольких секций. Секция начинается с заголовка в квадратных скобках,
например,
[main]
и, в свою очередь, состоит из строк вида
имя=значение
 
Манифест в профилях kvm состоит из двух секций - секции main и секции image.
Далее описаны обязательные параметры, которые должны быть указаны в секции main.
Секция image описыватся {{Создание образа виртуальной машины|далее}}.
 
[main]
hypervisor=kvm
os=<Операционная система>
vendor=<Организация, создавшая профиль>
version=<Версия bundle>
arch=<архитектура>
ip=DHCP
memory=<размер оперативной памяти>
license=<файл с лицензией>
[image]
image_path=<образ виртуальной машины>
image_size=<размер образа>
image_compression=lzma ''только если образ был сжат с использованием lzma''
 
==== Создание образа виртуальной машины ====
 
1. Создайте пустой виртуальный диск для устанавливаемой операционной системы
 
qemu-img create -f qcow2 mydisk.img 10G
 
Формат образа ''qcow'' позволяет занимать образом только то пространство на реальной файловой системе, которое занято внутри виртуальной машины. 10G (10 ГБ) — максимальный размер образа.
 
2. Установите дистрибутив в виртуальную машину
 
kvm -cdrom 'distro.iso' -drive file=mydisk.img,if=scsi,boot=on -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext
 
где
* '''-cdrom 'distro.iso' ''' — образ устанавливаемого дистрибутива
* '''-drive file=mydisk.img,if=scsi,boot=on''' — образ диска, созданного на этапе 1
* '''-m 512''' — размер выделяемой оперативной памяти для виртуальной машины (в мегабайтах)
* '''-net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext''' — создание одного внешнего сетевого интерфейса
 
 
Скрипт /etc/kvm/brext:
<pre>#!/bin/sh
 
switch=brext
/sbin/ip link set up $1
/sbin/brctl addif ${switch} $1</pre>
 
При пустом диске загрузка будет произведена с CD-ROM. Если нужно установить с CD-ROM на уже готовую систему, Нажмите при запуске F12 и затем 3.
 
==== Добавление лицензии ====
Если вы хотите добавить в профиль лицензию, то вы должны добавить строку
license=<файл>
в секцию main манифеста и запаковать указанный <файл> в профиль.
 
==== Упаковка bundle ====
Профиль должен иметь расширение <tt>.bun</tt>, а файлы, лежащие в bundle должны быть отсортированы
по размеру. Таким образом, если мы находимся в директории с исходными файлами, то bundle можно создать,
например, с помощью команды
tar -cf <имя профиля>.bun $(ls -Sr)
 
[[Категория:Платформа5]]


== Создание профиля вручную ==
== Создание профиля вручную ==

Версия от 15:47, 16 апреля 2009

Образ виртуальной машины KVM предназначен для переноса виртуальной машины на другой компьютер.

Профиль kvm

В этом документе описано создание профиля (bundle) для виртуальной машины под управленим KVM. Профиль представляет из себя архив tar, содержащий следующие обязательные файлы:

  • Манифест - файл, содержащий информацию обо всех файлах профиля, а также информацию, необходимую для последующей работы с профилем.
  • Образ диска - файл специального формата, представляющий диск, на который будет установлена виртуальная машина.

В профиле также могут содержаться следующие необязательные файлы.

  • Лицензия - некоторые производители могут захотеть добавить в профиль лицензию на использование созданного ими профиля.

Создание профиля вручную

Требования к окружению

Для создания профиля kvm вам необходима машина с аппаратной поддержкой виртуализации, на которой установлены kvm и qemu. Более подробную информацию о том имеет ли ваша машина аппаратную поддержку виртуальзации и о том как установить kvm и qemu, вы можете найти здесь.

Пользователи Linux могут проверить наличие аппаратной поддержки виртуализации с помощью команды

egrep -q '^flags.*(vmx|svm)' /proc/cpuinfo && echo yes

Если команда в ответ сказала yes, то это значит, что виртуализация есть. Помните также, что поддержка виртуализации может быть выключена в BIOS.

Формат манифеста для машин kvm

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

[main]

и, в свою очередь, состоит из строк вида

имя=значение

Манифест в профилях kvm состоит из двух секций - секции main и секции image. Далее описаны обязательные параметры, которые должны быть указаны в секции main. Секция image описыватся Шаблон:Создание образа виртуальной машины.

[main]
hypervisor=kvm
os=<Операционная система>
vendor=<Организация, создавшая профиль>
version=<Версия bundle>
arch=<архитектура>
ip=DHCP
memory=<размер оперативной памяти>
license=<файл с лицензией>

[image]
image_path=<образ виртуальной машины>
image_size=<размер образа>
image_compression=lzma только если образ был сжат с использованием lzma

Создание образа виртуальной машины

1. Создайте пустой виртуальный диск для устанавливаемой операционной системы

qemu-img create -f qcow2 mydisk.img 10G

Формат образа qcow позволяет занимать образом только то пространство на реальной файловой системе, которое занято внутри виртуальной машины. 10G (10 ГБ) — максимальный размер образа.

2. Установите дистрибутив в виртуальную машину

kvm -cdrom 'distro.iso' -drive file=mydisk.img,if=scsi,boot=on -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext

где

  • -cdrom 'distro.iso' — образ устанавливаемого дистрибутива
  • -drive file=mydisk.img,if=scsi,boot=on — образ диска, созданного на этапе 1
  • -m 512 — размер выделяемой оперативной памяти для виртуальной машины (в мегабайтах)
  • -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext — создание одного внешнего сетевого интерфейса


Скрипт /etc/kvm/brext:

#!/bin/sh

switch=brext
/sbin/ip link set up $1
/sbin/brctl addif ${switch} $1

При пустом диске загрузка будет произведена с CD-ROM. Если нужно установить с CD-ROM на уже готовую систему, Нажмите при запуске F12 и затем 3.

Добавление лицензии

Если вы хотите добавить в профиль лицензию, то вы должны добавить строку

license=<файл>

в секцию main манифеста и запаковать указанный <файл> в профиль.

Упаковка bundle

Профиль должен иметь расширение .bun, а файлы, лежащие в bundle должны быть отсортированы по размеру. Таким образом, если мы находимся в директории с исходными файлами, то bundle можно создать, например, с помощью команды

tar -cf <имя профиля>.bun $(ls -Sr)

Создание профиля вручную

1. Создайте пустой виртуальный диск для устанавливаемой операционной системы

qemu-img create -f qcow2 mydisk.img 10G

Формат образа qcow позволяет занимать образом только то пространство на реальной файловой системе, которое занято внутри виртуальной машины. 10G (10 ГБ) — максимальный размер образа.

2. Установите дистрибутив в виртуальную машину

kvm -cdrom 'distro.iso' -drive file=mydisk.img,if=scsi,boot=on -m 512 -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext

где

  • -cdrom 'distro.iso' — образ устанавливаемого дистрибутива
  • -drive file=mydisk.img,if=scsi,boot=on — образ диска, созданного на этапе 1
  • -m 512 — размер выделяемой оперативной памяти для виртуальной машины (в мегабайтах)
  • -net nic,vlan=0 -net tap,vlan=0,script=/etc/kvm/brext — создание одного внешнего сетевого интерфейса


Скрипт /etc/kvm/brext:

#!/bin/sh

switch=brext
/sbin/ip link set up $1
/sbin/brctl addif ${switch} $1


При пустом диске загрузка будет произведена с CD-ROM. Если нужно установить с CD-ROM на уже готовую систему, Нажмите при запуске F12 и затем 3.