Создание профиля KVM
Материал из ALT Linux Wiki
(→Подготовка) |
|||
Строка 1: | Строка 1: | ||
Образ виртуальной машины [[KVM]] предназначен для переноса виртуальной машины на другой компьютер. | Образ виртуальной машины [[KVM]] предназначен для переноса виртуальной машины на другой компьютер. | ||
- | == | + | == Профиль 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.