[ English | Deutsch | Indonesia | русский | English (United Kingdom) ]

Управление инстансами

В этой главе описывается, как создавать инстансы и получать к ним доступ.

Создание инстанса с помощью панели управления

Используя образ, создайте новый инстанс с помощью возможностей панели управления.

  1. Log into the Dashboard, and select the Compute project from the drop down list.

  2. Нажмите кнопку Образы.

  3. Locate the image that will act as the instance base from the Images table.

  4. Click Launch from the Actions column.

  5. Check the Launch Instances dialog, and find the details tab. Enter the appropriate values for the instance.

    1. In the Launch Instance dialog, click the Access & Security tab. Select the keypair. Set the security group as «default».

    2. Click the Networking tab. This tab will be unavailable if OpenStack networking (neutron) has not been enabled. If networking is enabled, select the networks on which the instance will reside.

    3. Click the Volume Options tab. This tab will only be available if a Block Storage volume exists for the instance. Select Don’t boot from a volume for now.

      Дополнительную информацию о присоединении дисков блочного хранилища к инстансам для постоянного хранения см. в разделе Управление дисками для постоянного хранения ниже.

    4. Add customisation scripts, if needed, by clicking the Post-Creation tab. These run after the instance has been created. Some instances support user data, such as root passwords, or admin users. Enter the information specific to the instance here if required.

    5. Нажмите Дополнительные параметры. Укажите, использует ли инстанс конфигурационный диск для хранения метаданных, выбрав тип раздела диска.

  6. Click Launch to create the instance. The instance will start on a compute node. The Instance page will open and start creating a new instance. The Instance page that opens will list the instance name, size, status, and task. Power state and public and private IP addresses are also listed here.

    Процесс займет меньше минуты. Создание инстанса завершено, когда статус отображается как активный. Обновите страницу, чтобы увидеть новый активный инстанс.

    Параметры запуска инстанса

    Название поля

    Необходимо

    Подробности

    Зона доступности

    Опционально

    Зона доступности, в которой служба образов создает инстанс. Если зоны доступности не определены, инстансы не будут найдены. Провайдер облачных услуг устанавливает зону доступности в виде определенного значения.

    Имя инстанса

    Необходимо

    The name of the new instance, which becomes the initial host name of the server. If the server name is changed in the API or directly changed, the Dashboard names remain unchanged

    Образ

    Необходимо

    Тип формата контейнера, один из ami, ari, aki, bare или ovf

    Тип инстансов

    Необходимо

    Конфигурация vCPU, памяти и диска. Обратите внимание, что создание более крупных вариантов может занять много времени. Если вы создаете инстанс в первый раз и хотите что-то небольшое для тестирования, выберите m1.small.

    Количество инстансов

    Необходимо

    При создании нескольких инстансов с этой конфигурацией введите целое число до числа, разрешенного квотой, которое по умолчанию равно 10.

    Источник загрузки инстанса

    Необходимо

    Specify whether the instance will be based on an image or a snapshot. If it is the first time creating an instance, there will not yet be any snapshots available.

    Имя образа

    Необходимо

    The instance will boot from the selected image. This option will be pre-populated with the instance selected from the table. However, choose Boot from Snapshot in Instance Boot Source, and it will default to Snapshot instead.

    Группы безопасности

    Опционально

    This option assigns security groups to an instance. The default security group activates when no customised group is specified here. Security Groups, similar to a cloud firewall, define which incoming network traffic is forwarded to instances.

    Ключевая пара

    Опционально

    Укажите ключевую пару с помощью этой опции. Если образ использует статический набор ключей (не рекомендуется), ключевая пара не нужна.

    Выбранные сети

    Опционально

    Чтобы добавить сеть к инстансу, нажмите + в поле Сети.

    Скрипт настройки

    Опционально

    Укажите скрипт настройки. Этот скрипт запускается после запуска инстанса и становится активным.

Создание инстанса с помощью командной строки

On the command line, instance creation is managed with the openstack server create command. Before launching an instance, determine what images and flavors are available to create a new instance using the openstack image list and openstack flavor list commands.

  1. Войдите в любой контейнер утилит.

  2. Issue the openstack server create command with a name for the instance, along with the name of the image and flavor to use:

    $ openstack server create --image precise-image --flavor 2 --key-name example-key example-instance
    +-------------------------------------+--------------------------------------+
    |               Property              |                Value                 |
    +-------------------------------------+--------------------------------------+
    |          OS-DCF:diskConfig          |                MANUAL                |
    |         OS-EXT-SRV-ATTR:host        |                 None                 |
    | OS-EXT-SRV-ATTR:hypervisor_hostname |                 None                 |
    |    OS-EXT-SRV-ATTR:instance_name    |          instance-0000000d           |
    |        OS-EXT-STS:power_state       |                  0                   |
    |        OS-EXT-STS:task_state        |              scheduling              |
    |         OS-EXT-STS:vm_state         |               building               |
    |              accessIPv4             |                                      |
    |              accessIPv6             |                                      |
    |              adminPass              |             ATSEfRY9fZPx             |
    |             config_drive            |                                      |
    |               created               |         2012-08-02T15:43:46Z         |
    |                flavor               |               m1.small               |
    |                hostId               |                                      |
    |                  id                 | 5bf46a3b-084c-4ce1-b06f-e460e875075b |
    |                image                |             precise-image            |
    |               key_name              |              example-key             |
    |               metadata              |                  {}                  |
    |                 name                |           example-instance           |
    |               progress              |                  0                   |
    |                status               |                BUILD                 |
    |              tenant_id              |   b4769145977045e2a9279c842b09be6a   |
    |               updated               |         2012-08-02T15:43:46Z         |
    |               user_id               |   5f2f2c28bdc844f9845251290b524e80   |
    +-------------------------------------+--------------------------------------+
    
  3. Чтобы проверить, что инстанс был успешно создан, выполните команду openstack server list:

    $ openstack server list
    +------------------+------------------+--------+-------------------+---------------+
    |        ID        |       Name       | Status |      Networks     |   Image Name  |
    +------------------+------------------+--------+-------------------+---------------+
    | [ID truncated]   | example-instance | ACTIVE |  public=192.0.2.0 | precise-image |
    +------------------+------------------+--------+-------------------+---------------+
    

Управление инстансом

  1. Log in to the Dashboard. Select one of the projects, and click Instances.

  2. Выберите инстанс из списка доступных инстансов.

  3. Check the Actions column, and click on the More option. Select the instance state.

Столбец Действия включает в себя следующие параметры:

  • Изменить тип или переустановить любой инстанс

  • Просмотреть лог консоли инстанса

  • Редактировать инстанс

  • Изменить группы безопасности

  • Приостановить, возобновить или приостановить инстанс

  • Мягкая или жесткая перезагрузка инстанса

Примечание

Удалите инстанса в столбце Действия.

Managing volumes for persistent storage

Диски присоединяются к инстансам, ​​обеспечивая постоянное хранение. Хранилище дисков обеспечивает источник памяти для инстансов. Администраторы могут присоединять диски к работающему инстансу или перемещать диск из одного инстанса в другой.

Живая миграция инстансов Nova

Nova способна осуществлять динамическую миграцию инстансов с одного хоста на другой хост для поддержки различных операционных задач, включая:

  • Техническое обслуживание хоста

  • Host capacity management

  • Resizing and moving instances to better hardware

Nova configuration drive implication

Depending on the OpenStack-Ansible version in use, Nova can be configured to force configuration drive attachments to instances. In this case, a ISO9660 CD-ROM image will be made available to the instance via the /mnt mount point. This can be used by tools, such as cloud-init, to gain access to instance metadata. This is an alternative way of accessing the Nova EC2-style Metadata.

To allow live migration of Nova instances, this forced provisioning of the config (CD-ROM) drive needs to either be turned off, or the format of the configuration drive needs to be changed to a disk format like vfat, a format which both Linux and Windows instances can access.

Этот обходной путь необходим для всех версий Libvirt до 1.2.17.

To turn off the forced provisioning of and change the format of the configuration drive to a hard disk style format, add the following override to the /etc/openstack_deploy/user_variables.yml file:

nova_nova_conf_overrides:
  DEFAULT:
    config_drive_format: vfat
    force_config_drive: false

Туннелирование и прямое соединение

В конфигурации по умолчанию Nova определяет правильный URL-адрес транспорта для передачи данных с одного хоста на другой. В зависимости от переопределения nova_virt_type используются следующие конфигурации:

  • в kvm по умолчанию qemu+tcp://%s/system

  • по умолчанию в qemu qemu+tcp://%s/system

TCP-порт Libvirt для передачи данных для миграции.

OpenStack-Ansible изменяет настройки по умолчанию и использует зашифрованное SSH-соединение для передачи данных инстанса.

live_migration_uri = "qemu+ssh://nova@%s/system?no_verify=1&keyfile={{ nova_system_home_folder }}/.ssh/id_rsa"

Другие конфигурации можно настроить внутри файла /etc/openstack_deploy/user_variables.yml:

nova_nova_conf_overrides:
  libvirt:
    live_migration_completion_timeout: 0
    live_migration_progress_timeout: 0
    live_migration_uri: "qemu+ssh://nova@%s/system?keyfile=/var/lib/nova/.ssh/id_rsa&no_verify=1"

Локальное и общее хранилище

По умолчанию живая миграция предполагает, что ваши инстансы Nova хранятся в общем хранилище, и KVM/Libvirt нужно только синхронизировать память и базовый образ инстанса Nova с новым хостом. Живые миграции в локальном хранилище не будут выполнены из-за этого предположения. Миграции с локальным хранилищем можно выполнить, разрешив миграцию дисков инстансов с помощью параметра --block-migrate.

Дополнительные функции Nova, такие как временное хранилище или swap, влияют на производительность и успешность живой миграции.

Для присоединенных дисков Cinder также требуется версия Libvirt не ниже 1.2.17.

Выполнение миграции

Живая миграция доступна через клиента nova.

nova live-migration [--block-migrate] [--force] <uuid> [<host>]

Пример живой миграции на локальном хранилище:

nova live-migration --block-migrate <uuid of the instance> <nova host>

Мониторинг статуса

После принятия запроса на живую миграцию статус можно отслеживать с помощью клиента nova:

nova migration-list

+-----+------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+
| Id | Source Node | Dest Node | Source Compute | Dest Compute | Dest Host | Status    | Instance UUID | Old Flavor | New Flavor | Created At | Updated At | Type            |
+----+-------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+
| 6  | -           | -         | compute01      | compute02    | -         | preparing | f95ee17a-d09c | 7          | 7          | date       | date       | live-migration  |
+----+-------------+-----------+----------------+--------------+-----------+-----------+---------------+------------+------------+------------+------------+-----------------+

Для фильтрации списка можно использовать параметры --host или --status:

nova migration-list --status error

In cases where the live migration fails, both the source and destination compute nodes need to be checked for errors. Usually it is sufficient to search for the instance UUID only to find errors related to the live migration.

Другие формы миграции инстансов

Помимо живой миграции, Nova предлагает возможность миграции целых хостов в режиме онлайн (живая) или офлайн (холодная) миграции.

Предусмотрены следующие команды клиента nova:

  • host-evacuate-live

    Живая миграция всех инстансов указанного хоста на другие хосты, если использование ресурсов позволяет. Лучше всего использовать общее хранилище, например Ceph или NFS, для эвакуации хоста.

  • host-servers-migrate

    Эта команда похожа на эвакуацию хоста, но переносит все инстансы с указанного хоста, пока они выключены.

  • resize

    Изменяет тип инстанса Nova (увеличивает) при перезагрузке, а также мигрирует (холодный) инстанс на новый хост для удовлетворения новых требований к ресурсам. Эта операция может занять значительное количество времени, в зависимости от размеров образа диска.