Product SiteDocumentation Site

Глава 29. Работа с образами в OpenNebula

29.1. Создание образа ОС в среде OpenNebula
29.1.1. Создание образов дисков
29.1.2. Создание шаблона ВМ
29.1.3. Создание ВМ
29.1.4. Подключение к ВМ и установка ОС
29.1.5. Настройка контекстуализации
29.1.6. Создание образа типа OS
29.2. Использование магазина приложений OpenNebula
Система хранилищ позволяет пользователям настраивать/устанавливать образы, которые могут быть образами ОС или данных, для использования в ВМ. Данные образы могут использоваться несколькими ВМ одновременно, а также предоставляться другим пользователями.
Типы образов для дисков ВМ (хранятся в хранилище образов):
  • OS — образ загрузочного диска;
  • CDROM — файл образа, содержащий CDROM. Эти образы предназначены только для чтения. В каждом шаблоне ВМ, можно использовать только один образ данного типа;
  • DATABLOCK — файл образа, содержащий блок данных (например, базу данных) или может быть отформатирован как пустой диск.
Типы файлов (хранятся в файловом хранилище):
  • KERNEL — файл, который будет использоваться в качестве ядра ВМ (kernels);
  • RAMDISK — файл, для использования в качестве виртуального диска;
  • CONTEXT — файл для включения в контекстный CD-ROM.
Образы могут работать в двух режимах:
  • persistent (постоянные) — изменения, внесенные в такие образы, будут сохранены после завершения работы ВМ. В любой момент времени может быть только одна ВМ, использующая постоянный образ.
  • non-persistent (непостоянный) — изменения не сохранятся после завершения работы ВМ. Непостоянные образы могут использоваться несколькими ВМ одновременно, поскольку каждая из них будет работать со своей собственной копией.
Управлять образами можно, используя интерфейс командной строки — команда oneimage.
Также управлять образами можно в веб-интерфейсе, на вкладке Образы ВМ.
OpenNebula-Sunstone. Вкладка Образы ВМ

29.1. Создание образа ОС в среде OpenNebula

Для создания образа ОС, необходимо подготовить ВМ и извлечь её диск.

29.1.1. Создание образов дисков

Создать образ типа CDROM с установочным ISO-образом.
Для этого перейти в раздел ХранилищеОбразы ВМ, на загруженной странице нажать +Создать:
Создание образа
В открывшемся окне заполнить поле Название, выбрать тип образа CD-ROM только для чтения, выбрать хранилище, выбрать расположение образа Путь на сервере OpenNebula (Path in OpenNebula Server), указать путь к файлу (.iso) и нажать кнопку Создать:
Создание образа типа CD-ROM

Примечание

ISO-образ должен быть загружен в папку, к которой имеет доступ пользователь oneadmin.
Создать пустой образ диска, на который будет установлена операционная система.
Для этого создать новый образ. Заполнить поле Название, в выпадающем списке Тип выбрать значение Generic storage datablock, в выпадающем списке Этот образ является постоянным выбрать значение Да, выбрать хранилище, в разделе Расположение образа выбрать пункт Пустой образ диска, установить размер выбранного блока, например 45GB, в разделе Расширенные настройки указать драйвер qcow2 и нажать кнопку Создать:
Создание образа типа datablock

Примечание

Эти же действия можно выполнить в командной строке.
Создать образ типа CDROM в хранилище данных по умолчанию (ID = 1):
$ oneimage create -d 1 --name "ALT Workstation ISO" --path /var/tmp/alt-workstation-9.1-x86_64.iso --type CDROM
ID: 31
Создать пустой образ диска (тип образа — DATABLOCK, размер 45 ГБ, драйвер qcow2):
$ oneimage create -d 1 --name "ALT Workstation" --type DATABLOCK --size 45G --persistent --driver qcow2
ID: 33

29.1.2. Создание шаблона ВМ

Примечание

Создание шаблона в командной строке:
  1. Создать файл template со следующим содержимым:
    NAME = "ALT Workstation"
    CONTEXT = [
      NETWORK = "YES",
      SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ]
    CPU = "0.25"
    DISK = [
      IMAGE = "ALT Workstation ISO",
      IMAGE_UNAME = "oneadmin" ]
    DISK = [
      DEV_PREFIX = "vd",
      IMAGE = "ALT Workstation",
      IMAGE_UNAME = "oneadmin" ]
    GRAPHICS = [
      LISTEN = "0.0.0.0",
      TYPE = "SPICE" ]
    HYPERVISOR = "kvm"
    INPUTS_ORDER = ""
    LOGO = "images/logos/alt.png"
    MEMORY = "1024"
    MEMORY_UNIT_COST = "MB"
    NIC = [
      NETWORK = "VirtNetwork",
      NETWORK_UNAME = "oneadmin",
      SECURITY_GROUPS = "0" ]
    NIC_DEFAULT = [
      MODEL = "virtio" ]
    OS = [
      BOOT = "disk1,disk0" ]
    SCHED_REQUIREMENTS = "ID=\"0\""
    
  2. Создать шаблон:
    $ onetemplate create template
    ID: 22
    
Ниже рассмотрен пример создания шаблона в веб-интерфейсе.
В левом меню выбрать ШаблоныВМ, на загруженной странице нажать кнопку + и выбрать пункт Создать.
На вкладке Общие необходимо указать параметры процессора, оперативной памяти, а также гипервизор:
Создание шаблона ВМ. Вкладка Общие
На вкладке Хранилище необходимо указать ранее созданный пустой диск (DATABLOCK), в разделе Расширенные настройки в выпадающем списке Шина выбрать Virtio. Далее следует добавить новый диск и указать диск с установщиком ОС.
Создание шаблона ВМ. Вкладка Хранилище
На вкладке Сеть в поле Default hardware model to emulate for all NICs указать Virtio и если необходимо выбрать сеть:
Создание шаблона ВМ. Вкладка Сеть
На вкладке ОС и ЦПУ необходимо указать архитектуру устанавливаемой системы и выбрать порядок загрузки. Можно установить в качестве первого загрузочного устройства — пустой диск (DATABLOCK), а в качестве второго — CDROM (при такой последовательности загрузочных устройств при пустом диске загрузка произойдёт с CDROM, а в дальнейшем, когда ОС будет уже установлена на диск, загрузка будет осуществляться с него).
Создание шаблона ВМ. Вкладка ОС и ЦПУ
На вкладке Ввод/Вывод следует включить SPICE:
Создание шаблона ВМ. Вкладка Ввод/Вывод
На вкладке Контекст необходимо включить параметр Использовать сетевое задание контекста, а также авторизацию по RSA-ключам (укажите свой открытый SSH (.pub) для доступа к ВМ по ключу, если оставить поле пустым, будет использована переменная $USER[SSH_PUBLIC_KEY]):
Создание шаблона ВМ. Вкладка Контекст
На вкладке Расписание если необходимо можно выбрать кластер/хост, на котором будет размещаться виртуальное окружение:
Создание шаблона ВМ. Вкладка Расписание
Для создания шаблона ВМ нажать кнопку Создать.

29.1.3. Создание ВМ

Для инициализации создания ВМ из шаблона в левом меню следует выбрать пункт ШаблоныВМ, выбрать шаблон и нажать кнопку Создать ВМ:
Создание экземпляра ВМ из шаблона
В открывшемся окне необходимо указать имя ВМ и нажать кнопку Создать ВМ:
Создание экземпляра ВМ из шаблона

Примечание

Создание экземпляра ВМ из шаблона в командной строке:
$ onetemplate instantiate 22
VM ID: 94

29.1.4. Подключение к ВМ и установка ОС

Примечание

Процесс создания ВМ может занять несколько минут. Следует дождаться статуса — «ЗАПУЩЕНО» («RUNNING»).
Подключиться к ВМ можно как из веб-интерфейса Sunstone, раздел Экземпляры ВМВМ выбрать ВМ и подключиться по SPICE:
Подключение к ВМ
Так и используя, любой клиент SPICE:
spice://192.168.0.190:5994
где 192.168.0.190 адрес хоста с ВМ, а 94 идентификатор ВМ (номер порта 5900 + 94).
Далее необходимо провести установку системы:
Установка ОС

29.1.5. Настройка контекстуализации

OpenNebula использует метод, называемый контекстуализацией, для отправки информации на ВМ во время загрузки. Контекстуализация позволяет установить или переопределить данные ВМ, имеющие неизвестные значения или значения по умолчанию (имя хоста, IP-адрес, .ssh/authorized_keys).
Пример настройки контекстуализации на установленной ОС Альт:
  1. Подключиться к ВМ через SPICE или по ssh.
  2. Установить пакет opennebula-context:
    # apt-get update && apt-get install opennebula-context 
    
  3. Переключиться на systemd-networkd:
    • установить пакет systemd-timesyncd:
      # apt-get install systemd-timesyncd
      
    • создать файл автонастройки всех сетевых интерфейсов по DHCP /etc/systemd/network/lan.network со следующим содержимым:
      [Match]
      Name = *
      
      [Network]
      DHCP = ipv4
      
    • переключиться с etcnet/NetworkManager на systemd-networkd:
      # systemctl disable network NetworkManager && systemctl enable systemd-networkd systemd-timesyncd
      
  4. Перезагрузить систему.
После перезагрузки доступ в систему будет возможен по ssh-ключу, ВМ будет назначен IP-адрес, который OpenNebula через механизм IPAM (подсистема IP Address Management) выделит из пула адресов.

29.1.6. Создание образа типа OS

После завершения установки и настройки системы следует выключить и удалить ВМ. Диск находится в состоянии Persistent, поэтому все внесенные изменения будут постоянными.
Для удаления ВМ в левом меню следует выбрать пункт Экземпляры ВМВМ, выбрать ВМ и нажать кнопку Уничтожить:
Удаление ВМ

Примечание

Удаление ВМ в командной строке:
$ onevm terminate 94
Затем перейти в ХранилищеОбразы ВМ, выбрать образ с установленной ОС (ALT Workstation) и изменить тип блочного устройства с Datablock на ОС и состояние на Non Persistent:
Изменение типа блочного устройства

Примечание

Изменить тип блочного устройства на ОС и состояние на Non Persistent:
$ oneimage chtype 33 OS
$ oneimage nonpersistent 33
Образ готов. Далее можно использовать как имеющийся шаблон, так и создать новый на основе образа диска «ALT Workstation».