Технический справочник
Версия zVirt: 4.1
1. Введение
1.1. Менеджер управления
Менеджер управления обеспечивает централизованное управление средой виртуализации. Доступ к Менеджеру управления можно получить через несколько различных интерфейсов, при этом каждый по-разному обеспечивает доступ к среде виртуализации.
Менеджер управления предоставляет графические интерфейсы и API-интерфейс. Каждый интерфейс подключается к Менеджеру управления, т. е. к приложению, доставляемому встроенным экземпляром Wildfly. Помимо Wildfly, существует ряд других компонентов, которые поддерживают Менеджер управления.
1.2. Среда исполнения zVirt
К среде zVirt подключены один или несколько хостов. Хост — это сервер, который предоставляет физическое оборудование, используемое виртуальными машинами.
На хосте с zVirt работает оптимизированная операционная система, установленная со специального дистрибутива, предназначенного для создания хостов виртуализации.
Оба метода установки хостов подходят для создания хостов, которые одинаково взаимодействуют с остальной частью виртуальной среды, и слово "хосты" будет применяться к обоим методам.
- Модуль Kernel-based Virtual Machine (KVM)
-
Модуль Kernel-based Virtual Machine (KVM) — это загружаемый модуль ядра, который обеспечивает полную виртуализацию с помощью расширений аппаратных средств Intel VT или AMD-V. Хотя сам модуль KVM работает в пространстве ядра, выполняющиеся на нем гостевые процессы работают как отдельные процессы QEMU в пространстве пользователя. С помощью KVM хост делает свое физическое оборудование доступным для виртуальных машин.
- Эмулятор QEMU
-
QEMU — это мультиплатформенный эмулятор для полной эмуляции системы. QEMU эмулирует систему полностью, например, ПК, в том числе один или несколько процессоров и периферийные устройства. Эмулятор можно использовать для запуска различных операционных систем или для отладки системного кода. QEMU, работая в связке с KVM и процессором с соответствующими расширениями виртуализации, обеспечивает полную аппаратную виртуализацию.
- Агенты хоста Менеджера управления, VDSM
-
В zVirt, VDSM запускает действия над виртуальными машинами и хранилищем, а также поддерживает связь между хостами. VDSM отслеживает ресурсы хоста: память, хранилище и сеть. Кроме того, VDSM занимается диспетчеризацией задач при создании виртуальных машин, сборе статистики и журналов. Экземпляр VDSM запускается на каждом хосте и получает команды управления от Менеджера управления через перенастраиваемый порт
54321. - VDSM-REG
-
VDSM с помощью VDSM-REG регистрирует каждый хост в Менеджере управления. VDSM-REG предоставляет информацию о самом себе и своем хосте через порт
80или порт443. - libvirt
-
Libvirt поддерживает управление виртуальными машинами и ассоциированными с ними виртуальными устройствами. Когда Менеджер управления запускает команды жизненного цикла виртуальной машины (запуск, остановка, перезагрузка), VDSM вызывает libvirt на соответствующих хостах для их выполнения.
- Менеджер пула хранения (Storage Pool Manager, SPM)
-
Менеджер пула хранения (Storage Pool Manager, SPM) — это роль, назначаемая одному хосту в центре данных. Хост SPM обладает исключительным правом вносить все изменения в метаданные структуры домена хранения в конкретном центре данных. Сюда относятся создание, удаление и управление виртуальными дисками, снимками и шаблонами, а также выделение ресурсов хранилища для динамически расширяемых блочных устройств в SAN хранилищах. Роль SPM можно передать любому хосту в центре данных. В результате у всех хостов в центре данных должен быть доступ ко всем доменам хранения, заданным в центре данных.
Менеджер управления обеспечивает постоянную доступность SPM. При возникновении ошибок подключения хранилища Менеджер управления назначает роль SPM другому хосту.
- Гостевая операционная система
-
Гостевые операционные системы можно установить на виртуальные машины в среде zVirt без модификаций. Гостевая операционная система и любые приложения поверх нее не знают, что находятся в среде виртуализации, и работают как обычно.
zVirt предоставляет расширенные драйверы устройств для более быстрого и эффективного доступа к виртуализированным устройствам. Кроме того, можно установить гостевой агент zVirt, который передает более подробную информацию о гостевых машинах на консоль управления.
1.3. Компоненты, поддерживающие Менеджер управления
1.3.1. WildFly
WildFly — это сервер приложений Java, предоставляющий фреймворк для эффективной разработки и доставки кросс-платформенных приложений Java. Менеджер управления доставляется через WildFly.
| Версию WildFly, поставляемую вместе с Менеджером управления, нельзя использовать для обслуживания других приложений. Она была настроена специально для обслуживания Менеджера управления. Если сервер WildFly, входящий в состав Менеджера управления, использовать в дополнительных целях, то это отрицательно сказывается на его способности обслуживать среду zVirt. |
1.3.2. Сбор отчетов и данных истории
Менеджер управления включает в себя хранилище (DWH, Data Warehouse), которое собирает данные мониторинга о хостах, виртуальных машинах и хранилищах, а также в нем предусмотрено несколько предварительно заготовленных отчетов. Заказчики могут анализировать свои среды и создавать отчеты с помощью любых инструментов запросов, поддерживающих SQL.
В процессе установки Менеджера управления создаются две базы данных:
-
Менеджер управления использует базу данных engine в качестве основного хранилища данных. В этой базе данных хранится информация о среде виртуализации, например, о ее состоянии, конфигурации и производительности.
-
В базе данных ovirt_engine_history содержится информация о конфигурации и статистические показатели, которые консолидируются с течением времени из операционной базы данных engine. Данные о конфигурации в базе данных engine проверяются ежеминутно, а изменения реплицируются в базу данных ovirt_engine_history. Отслеживание изменений в базе данных позволяет получить информацию об объектах в базе данных, а также проанализировать и повысить производительность среды zVirt и устранить неполадки.
Дополнительные сведения о создании отчетов на основе базы данных ovirt_engine_history см. в разделе База данных истории в Руководстве по хранилищу zVirt.
| Репликация данных в базу данных ovirt_engine_history выполняется сервисом ovirt-engine-dwhd. |
Эти базы данных создаются на экземпляре Postgres, который выбирается во время установки.
1.3.3. Службы каталогов
Службы каталогов поддерживают централизованное сетевое хранилище пользовательской и организационной информации, включая такие типы информации как настройки приложений, профили пользователей, данные групп, политики и контроль доступа. Менеджер управления поддерживает:
-
389ds
-
389ds RFC-2307 Schema
-
Active Directory
-
IBM Security Directory Server
-
IBM Security Directory Server RFC-2307 Schema
-
IPA
-
Novell eDirectory RFC-2307 Schema
-
OpenLDAP RFC-2307 Schema
-
OpenLDAP Standard Schema
-
Oracle Unified Directory RFC-2307 Schema
-
RFC-2307 Schema (Generic)
-
RHDS
-
RHDS RFC-2307 Schema
-
iPlanet
Существует также локальный, внутренний домен, предназначенный только для целей администрирования. В этом внутреннем домене есть только один пользователь: администратор (admin).
1.4. Хранилище
В zVirt используется централизованная СХД для виртуальных дисков, шаблонов, снимков и файлов ISO. Хранилище логически сгруппировано в пулы хранения, которые состоят из доменов хранения. Домен хранения объединяет в себе емкость хранилища и метаданные, которые описывают внутреннюю структуру хранилища (См. раздел Типы доменов хранения):
-
Домен данных — это единственный домен, обязательный для каждого центра данных. У каждого центра данных свой относящийся только к нему домен хранения данных.
-
Домены экспорта и ISO — не строго обязательные домены.
Домены хранения — общие ресурсы, которые должны быть доступны для всех хостов центра данных.
1.5. Сеть (Network)
Сетевая архитектура zVirt обеспечивает связь между разными элементами среды zVirt. Сетевая архитектура не только поддерживает сетевое подключение, но и позволяет разделять сети.
В zVirt сетевая архитектура состоит из нескольких уровней. Необходимо создать и настроить базовую физическую сетевую инфраструктуру, чтобы обеспечить связь между аппаратными и логическими компонентами среды zVirt.
1.5.1. Уровень сетевой инфраструктуры
В основе сетевой архитектуры zVirt лежат некоторые стандартные аппаратные и программные устройства:
-
Сетевые карты (NIC) — это физические устройства сетевого интерфейса, через которые хост подключается к сети.
-
Виртуальные сетевые карты (vNIC) — это логические сетевые карты, которые работают на физических сетевых картах хоста и обеспечивают сетевое подключение виртуальных машин.
-
Несколько сетевых карт объединяют в единый bond-интерфейс.
-
Мосты (bridges) — это метод пересылки пакетов в сетях с коммутацией пакетов. Это основа логических сетей виртуальных машин.
1.5.2. Логические сети
Логические сети позволяют разделять сетевой трафик в зависимости от требований среды. Типы логических сетей:
-
логические сети, передающие сетевой трафик виртуальных машин
-
логические сети, не передающие сетевой трафик виртуальных машин
-
необязательные логические сети
-
обязательные сети
Все логические сети могут быть либо обязательными, либо необязательными.
Логическая сеть, передающая сетевой трафик виртуальных машин, реализуется на уровне хоста как программный мост. По умолчанию при установке Менеджера управления задается одна логическая сеть: сеть управления ovirtmgmt.
Другие логические сети, которые может добавить администратор: выделенная логическая сеть хранилища и выделенная логическая сеть отображения. В логических сетях, не передающих трафик виртуальных машин, нет ассоциированного устройства моста на хостах. Они ассоциированы с сетевыми интерфейсами хоста напрямую.
zVirt отделяет сетевой трафик, связанный с управлением, от сетевого трафика, связанного с миграцией, что позволяет использовать выделенную сеть (без маршрутизации) для миграции на лету и гарантирует, что сеть управления (ovirtmgmt) не потеряет связь с гипервизорами во время миграции.
1.5.3. Описание логических сетей на разных уровнях
Логические сети по-разному воздействуют на каждый уровень среды виртуализации.
- Уровень центра данных
-
Логические сети задаются на уровне центра данных. В каждом центре данных по умолчанию есть сеть управления ovirtmgmt. Желательно, но необязательно добавить другие логические сети. Назначить Сеть ВМ (VM Network) и задать пользовательское значение MTU можно на уровне центра данных. Логическую сеть, заданную центру данных, также необходимо добавить в кластеры, которые используют эту логическую сеть.
- Уровень кластера
-
Логические сети предоставляются из центра данных, и их необходимо добавить в кластеры, которые будут их использовать. По умолчанию каждый кластер подключен к сети управления. При желании можно добавить в кластер логические сети, которые были заданы для родительского центра данных кластера. Когда необходимая логическая сеть добавлена в кластер, она должна быть добавлена для каждого хоста в кластере. Дополнительные логические сети можно добавить к хостам по мере необходимости.
- Уровень хоста
-
Логические сети виртуальных машин реализуются для каждого хоста в кластере в виде программного моста, ассоциированного с определенным сетевым интерфейсом. В логических сетях невиртуальных машин нет ассоциированных мостов; они ассоциированы с сетевыми интерфейсами хостов напрямую. На каждом хосте есть сеть управления, реализованная как мост с помощью одного из сетевых устройств, включенного в среду zVirt. Дополнительные необходимые логические сети, добавленные в кластер, следует ассоциировать с сетевыми интерфейсами на каждом хосте, чтобы они заработали с кластером.
- Уровень виртуальной машины
-
Логические сети могут быть доступны для виртуальных машин так же, как сеть может быть доступна для физической машины. Виртуальная машина может подключить свою виртуальную сетевую карту к любой логической сети виртуальной машины, которая была реализована на хосте, на котором она работает. После этого виртуальная машина сможет подключиться к любым другим устройствам или приемникам, доступным в логической сети, к которой она подключена.
Логическая сеть управления под названием ovirtmgmt создается автоматически при установке Менеджера управления. Сеть ovirtmgmt выделена для трафика управления между Менеджером управления и хостами. Если другие мосты специального назначения не настроены, то ovirtmgmt будет мостом по умолчанию для всего трафика.
1.6. Центры данных
Центр данных — это высший уровень абстракции в zVirt. В центре данных содержится три вида информации:
- Хранилище
-
Включает типы хранилищ, домены хранилищ и информацию о подключении доменов хранилищ. Хранилище задано для центра данных и доступно всем кластерам в нем. Все хосты в кластерах центра данных имеют доступ к одним и тем же доменам хранения.
- Логические сети
-
Сюда относятся такие данные, как сетевые адреса, теги VLAN и поддержка STP. Можно задать логические сети для центра данных и применить их к кластерам.
- Кластеры
-
Кластеры — это группы хостов с совместимыми ядрами процессоров, будь то процессоры AMD или Intel. Кластеры представляют собой домены миграции; виртуальные машины можно переместить на лету на любой хост в кластере, но не на другие кластеры. В одном центре данных может быть несколько кластеров, а каждый кластер может содержать несколько хостов.
1.7. Уровни совместимости центров данных и кластеров
У центров данных и кластеров zVirt есть версия совместимости.
Версия совместимости центра данных обозначает версию zVirt, с которой должен быть совместим конкретный центр данных. Все кластеры в таком центре данных должны поддерживать требуемый уровень совместимости.
Версия совместимости кластера описывает возможности zVirt, поддерживаемые всеми хостами в кластере. Совместимость кластера устанавливается в соответствии с версией операционной системы наименее подходящего хоста в кластере.
1.8. Безопасность
1.8.1. Шифрование паролей
Для повышения уровня информационной безопасности системные пароли в конфигурационных файлах шифруются с помощью алгоритма AES (Advanced Encryption Standard).
Шифрование паролей применяется к следующим файлам:
-
/etc/ovirt-engine/engine.conf.d/11-setup-sso.conf
-
/etc/ovirt-engine/engine.conf.d/10-setup-database.conf
-
/etc/ovirt-engine/engine.conf.d/10-setup-dwh-database.conf
-
/etc/ovirt-engine/engine.conf.d/10-setup-pki.conf
-
/etc/ovirt-engine-dwh/ovirt-engine-dwhd.conf.d/10-setup-grafana-database.conf.
-
/etc/ovirt-engine/aaa/***.local.properties
-
/etc/ovirt-engine/engine.conf.d/10-setup-cinderlib-database.conf
1.8.2. Цифровая подпись пакетов
Для повышения доверия к распространяемому программному обеспечению реализовано подписание файлов с помощью электронной цифровой подписи. В метаданных теперь указывается производитель «Orionsoft».
Для проверки цифровой подписи используйте команду rpm -K <package>.
rpm -K cockpit-299.fl-1.19278.wip.zvirt.el8.x86_64.rpm (1)
cockpit-299.fl-1.19278.wip.zvirt.el8.x86_64.rpm: digests signatures OK (2)
rpm -K cockpit-310.2-1.fc40.src.rpm (3)
cockpit-310.2-1.fc40.src.rpm: digests SIGNATURES NOT OK (4)
| 1 | - проверка цифровой подписи пакета, скачанного с официального репозитория Orionsoft. |
| 2 | - проверка пройдена успешно. |
| 3 | - проверка цифровой подписи пакета, скачанного со стороннего репозитория. |
| 4 | - проверка не пройдена. |
Также можно проверить производителя в метаданных пакетов с помощью rpm -qi <package>.
rpm -qi cockpit-299.fl-1.19278.wip.zvirt.el8.x86_64.rpm (1)
Name : cockpit
Version : 299.fl
...
Vendor : "Orionsoft" (2)
...
rpm -qi cockpit-310.2-1.fc40.src.rpm (3)
warning: cockpit-310.2-1.fc40.src.rpm: Header V4 RSA/SHA256 Signature, key ID a15b79cc: NOKEY (4)
Name : cockpit
Version : 310.2
...
Vendor : Fedora Project (5)
...
| 1 | - проверка метаданных пакета, скачанного с официального репозитория Orionsoft. |
| 2 | - вендором данного пакета является Orionsoft. |
| 3 | - проверка метаданных пакета, скачанного со стороннего репозитория. |
| 4 | - присутствует предупреждение об отсутствии ключа. |
| 5 | - вендором данного пакета является Fedora Project. |
2. Хранилище
2.1. Обзор доменов хранения
Домен хранения – это набор образов, имеющих общий интерфейс хранения. Домен хранения содержит полные образы шаблонов и виртуальных машин (включая снимки), файлы ISO и их метаданные. Домен хранения может состоять либо из блочных устройств (SAN - iSCSI или FCP), либо из файловой системы (NAS - NFS, GlusterFS или иных POSIX-совместимых файловых систем).
| Техническая поддержка по службе Gluster Storage не оказывается. |
В NAS все виртуальные диски, шаблоны и снимки являются файлами.
В SAN (iSCSI/FCP) каждый виртуальный диск, шаблон или снимок представляет собой логический том. Блочные устройства объединяются в логическую сущность, называемую группой томов, а затем с помощью Менеджера логических томов (Logical Volume Manager, LVM) делятся на логические тома для использования в качестве виртуальных жестких дисков.
Виртуальные диски могут иметь один из двух форматов: QCOW2 или raw. Возможные типы хранилищ: динамически расширяемые (sparse) или предварительно размеченные (preallocated). Снимки всегда имеют формат sparse , но могут создаваться для дисков любого из этих форматов.
Для виртуальных машин, совместно использующих один домен хранения, возможна миграция между хостами, относящимися к одному кластеру.
2.2. Типы хранилищ, лежащие в основе доменов хранения
Домены хранения могут базироваться на блочном и файловом хранилищах.
- Файловое хранилище
-
zVirt поддерживает файловые хранилища следующих типов: NFS, GlusterFS, другие POSIX-совместимые файловые системы и локальные хранилища хостов.
Техническая поддержка по службе Gluster Storage не оказывается. Управление файловым хранилищем производится извне среды zVirt. Хранилище NFS управляется NFS-сервером zVirt или другим сторонним сервером хранения, подключенным к сети.
Хосты могут управлять файловыми системами своих собственных локальных хранилищ.
- Блочное хранилище
-
В блочном хранилище используются неформатированные блочные устройства. Блочные устройства объединяются в группы томов с помощью Менеджера логических томов (LVM). Экземпляр LVM работает на всех хостах и не знает об экземплярах, работающих на других хостах. VDSM добавляет логику кластеризации поверх LVM, сканируя группы томов на наличие изменений. Обнаружив изменения, VDSM обновляет отдельные хосты, давая им команду обновить их информацию о группе томов. Хосты делят группу томов на логические тома, записывая метаданные логических томов на диск. Если к существующему домену хранения добавляется дополнительная емкость, Менеджер управления дает команду VDSM на каждом хосте обновить информацию о группе томов.
LUN – это отдельное блочное устройство. Для подключения к LUN используется один из поддерживаемых протоколов блочных хранилищ: iSCSI или Fibre Channel. Менеджер управления управляет программными iSCSI-подключениями к LUN. Управление всеми остальными подключениями к блочному хранилищу производится извне среды zVirt. Любые изменения в блочной среде хранения (такие как создание, расширение или удаление логических томов и добавление нового LUN) обрабатываются Менеджером логических томов (LVM) на специально выбранном хосте, который называется Менеджером пула хранения (Storage Pool Manager, SPM). Затем изменения синхронизируются с помощью VDSM, метаданные хранилища которого обновляются на всех хостах в кластере.
2.3. Типы доменов хранения
zVirt поддерживает следующие типы доменов хранения, а также типы хранилищ, поддерживаемые каждым доменом хранения:
-
Домен данных хранит образы жестких дисков всех виртуальных машин в среде zVirt. Образы дисков могут содержать установленную операционную систему или данные, хранящиеся на виртуальной машине или сгенерированные ею. Домены хранения данных поддерживают хранилища NFS, iSCSI, FCP, GlusterFS и POSIX-совместимые хранилища. Домен данных не может использоваться несколькими центрами данных.
-
Домен экспорта служит для временного хранения образов жестких дисков и шаблонов виртуальных машин, передаваемых между центрами данных. Кроме того, в доменах экспорта хранятся резервные копии виртуальных машин. Домены экспорта поддерживают NFS-хранилища. К одному домену экспорта могут обращаться несколько центров данных, но в конкретный момент времени использовать его может только один центр данных.
Сущность домен экспорта считается устаревшей. Домен экспорта можно отключить от центра данных и импортировать в другой центр данных в той же или другой среде. Затем виртуальные машины, "плавающие" виртуальные диски и шаблоны можно выгрузить из импортированного домена хранения в подключенный центр данных. -
Домен ISO хранит файлы ISO, называемые также образами. Файлы ISO – это представления физических CD или DVD. В среде zVirt используются в основном такие типы файлов ISO, как установочные диски операционных систем, приложений и гостевых агентов. Эти образы можно подключать к виртуальным машинам и загружать так же, как происходила бы загрузка при установке физического диска в дисковод. Домены хранения ISO позволяют всем хостам в центре данных совместно использовать файлы ISO, избавляя от необходимости в физических оптических носителях.
Домен ISO считается устаревшим типом домена хранения. Инструмент ISO Uploader считается устаревшим. Рекомендуется выгружать образы ISO в домен данных на Портале администрирования или с помощью REST API
2.4. Форматы хранения для виртуальных дисков
- Хранилище виртуальной машины в формате QCOW2
-
QCOW2 – это формат хранения для виртуальных дисков. QCOW расшифровывается как QEMU с копированием при записи. Формат QCOW2 отделяет физический уровень хранения от виртуального уровня, добавляя сопоставление между логическими и физическими блоками. Каждому логическому блоку сопоставляется его физическое смещение, что делает возможным избыточное выделение пространства и создание снимков виртуальных машин, в которых каждый том QCOW представляет только изменения, внесенные в базовый виртуальный диск.
Первоначальным сопоставлением для всех логических блоков задаются смещения в базовом файле или томе. Когда виртуальная машина записывает данные в том QCOW2 после снимка, соответствующий блок считывается из базового тома, изменяется с учетом новой информации и пишется в новый том снимка QCOW2. Затем сопоставление обновляется так, чтобы указывать на новое место.
- Raw
-
Формат RAW имеет более высокую производительность, чем QCOW2, поскольку к виртуальным дискам, хранящимся в формате RAW, не применяется форматирование. Выполнение операций с данными виртуальной машины на виртуальных дисках в формате RAW не требует дополнительных действий от хостов. Когда виртуальная машина пишет данные по заданному смещению на своем виртуальном диске, вводимые/выводимые данные пишутся по тому же смещению в базовый файл или логический том.
Формат RAW требует, чтобы все пространство заданного образа было выделено заранее, если только не используются управляемые извне LUN с динамическим выделением из массива хранения.
2.5. Политики выделения пространства для виртуальных дисков
- Предварительно размеченное пространство
-
Все пространство, необходимое для виртуального диска, выделяется до создания виртуальной машины. Если для виртуальной машины создается образ диска размером 20 ГБ, то он использует 20 ГБ емкости домена хранения. Предварительно размеченный диск, как правило, обеспечивает более высокую скорость записи, поскольку не требует выполнения операции по выделению пространства, хотя это в свою очередь оборачивается потерей гибкости. Такая политика затрудняет для Менеджера управления избыточное выделение пространства. Предварительно размеченный диск рекомендуется для виртуальных машин, работающих с интенсивным вводом/выводом и чувствительных к задержкам при операциях чтения/записи. Обычно в эту категорию попадают виртуальные серверы.
Если используется функция динамического выделения пространства, которую обеспечивает серверная часть хранилища, то при выделении пространства для виртуальных машин на Портале администрирования по-прежнему следует выбирать предварительно размеченное пространство. - Динамически расширяемое пространство
-
При создании виртуальной машины задаётся верхний предел размера виртуального диска. Изначально образ диска не использует всю выделенную ёмкость домена хранения. Используемое пространство растет по мере того, как виртуальная машина пишет данные на диск. Это происходит до тех пор, пока не будет достигнут верхний предел. При удалении данных из образа диска емкость не возвращается домену хранения. Данная политика рекомендуется для виртуальных машин, работающих с вводом/выводом средней или низкой интенсивности и не очень чувствительных к задержкам чтения/записи. Обычно в эту категорию попадают виртуальные рабочие станции.
Если серверная часть хранилища обеспечивает функцию динамического выделения пространства, то ее следует использовать как предпочтительный метод динамического выделения. В графическом пользовательском интерфейсе необходимо выбирать политику с предварительно размеченным пространством, а динамическое выделение должно возлагаться на серверную часть.
2.6. Версии метаданных хранилища в zVirt
zVirt хранит информацию о доменах хранения в виде метаданных в самих доменах хранения. В каждый основной релиз zVirt входят улучшения реализации метаданных хранилища.
- Метаданные V1
-
-
Каждый домен хранения содержит метаданные, описывающие его собственную структуру, и все имена физических томов, на которых базируются виртуальные диски.
-
Мастер-домены дополнительно содержат метаданные для всех доменов и имен физических томов в пуле хранения. Общий размер этих метаданных не может превышать 2 КБ, что ограничивает количество доменов хранения в пуле.
-
Базовые образы шаблонов и виртуальных машин доступны только для чтения.
-
Метаданные V1 применимы к доменам хранения NFS, iSCSI и FC.
-
- Метаданные V2
-
-
Все метаданные домена хранения и пула хранятся в виде тегов логического тома, а не записываются на логический том. Метаданные о томах виртуальных дисков по-прежнему хранятся в логических томах доменов.
-
Имена физических томов больше не включаются в метаданные.
-
Базовые образы шаблонов и виртуальных машин доступны только для чтения.
-
Метаданные V2 применимы к доменам хранения iSCSI и FC.
-
- Метаданные V3
-
-
Все метаданные домена хранения и пула хранятся в виде тегов логического тома, а не записываются на логический том. Метаданные о томах виртуальных дисков по-прежнему хранятся в логических томах доменов.
-
Базовые образы виртуальных машин и шаблонов теперь доступны не только для чтения. Это изменение делает возможным создание снимков на лету, миграцию хранилища на лету и клонирование из снимка.
-
Добавлена поддержка метаданных Unicode для имен томов на языках, отличных от английского.
-
Метаданные V3 применимы к доменам хранения NFS, GlusterFS, POSIX, iSCSI и FC.
-
- Метаданные V4
-
-
Поддержка уровней совместимости QCOW2 – формат образа QCOW включает в себя номер версии, что позволяет вводить новые функции, которые изменяют формат образа, делая его несовместимым с более ранними версиями. Более новые версии QEMU (1.7 и выше) поддерживают QCOW2 версии 3, у которой нет обратной совместимости, но есть улучшения, такие как нулевые кластеры и обеспечена повышенная производительность.
-
Новый том xleases для поддержки аренды ВМ – эта функция позволяет получать аренду для каждой виртуальной машины в общем хранилище без привязки аренды к диску виртуальной машины.
Аренда ВМ позволяет:
-
Избежать ситуации "split-brain".
-
Запустить ВМ на другом хосте, если исходный хост перестанет отвечать на запросы, тем самым повышается доступность ВМ с признаком высокой доступности.
-
- Метаданные V5
-
-
Поддержка переменного выравнивания SANLOCK.
-
Поддержка новых свойств:
-
BLOCK_SIZE– хранит размер блока домена хранения в байтах. -
ALIGNMENT– задает форматирование и размер тома xlease. (1-8 МБ). Определяется максимальным числом поддерживаемых хостов (значение указывается пользователем) и размером блока диска.Например, для блока в 512 байт и 2 000 хостов том xlease имеет размер 1 МБ. Для 4 КБ и 2 000 хостов – 8 МБ.
По умолчанию максимальное количество хостов равно 250, поэтому том xlease имеет размер 1 МБ для дисков с 4-килобайтным блоком.
-
-
Устаревшие свойства:
-
Поля
LOGBLKSIZE,PHYBLKSIZE,MTIMEиPOOL_UUIDбыли удалены из метаданных домена хранения. -
Поле
SIZE(размер в блоках) было заменено полемCAP(размер в байтах).
-
-
|
2.7. Автоматическое восстановление домена хранения в zVirt
Хосты в среде zVirt ведут мониторинг доменов хранения в своих центрах данных, считывая метаданные из каждого домена. Домен хранения становится неактивным, когда все хосты в центре данных сообщают, что не могут получить доступ к домену хранения.
Вместо того, чтобы отключить неактивный домен хранения, Менеджер управления предполагает, что он стал неактивным на время (например, из-за временного отключения сети). Каждые 5 минут Менеджер управления пытается повторно активировать все неактивные домены хранения.
Для устранения причины перебоя в подключении к хранилищу может потребоваться вмешательство администратора, но после восстановления подключения Менеджер управления сам позаботится о повторной активации доменов хранения.
2.8. Storage Pool Manager (SPM)
Для описания внутренней структуры доменов хранения zVirt использует метаданные. Структурные метаданные пишутся в сегмент каждого домена хранения. Хосты работают с метаданными домена хранения по схеме "один пишет, многие читают". Посредством структурных метаданных домена хранения отслеживается создание и удаление образов и снимков, а также расширение томов и доменов.
Хост, который может вносить изменения в структуру домена данных, называется Менеджером пула хранения (Storage Pool Manager, SPM). SPM координирует все изменения метаданных в центре данных, такие как создание и удаление образов дисков, создание и объединение снимков, копирование образов между доменами хранения, создание шаблонов и выделение пространства для блочных устройств. На каждый центр данных имеется один SPM. Все остальные хосты могут только читать структурные метаданные домена хранения.
Хост можно задать в качестве SPM вручную или назначить с помощью Менеджера управления. Менеджер управления назначает роль SPM, инициируя попытку потенциального хоста SPM взять на себя аренду конкретного хранилища. Аренда позволяет хосту SPM писать метаданные хранилища. Словосочетание "конкретного хранилища" означает, что факт аренды записывается в домен хранения, а не отслеживается Менеджером управления или хостами. Факт аренды конкретного хранилища записывается в специальный логический том с именем leases в домене хранения master. Метаданные о структуре домена данных записываются в специальный логический том с именем metadata. Логический том leases защищает логический том metadata от изменений.
Менеджер управления использует VDSM для выдачи команды spmStart хосту, инициируя попытку VDSM на этом хосте взять на себя аренду конкретного хранилища. В случае успеха хост получает роль SPM и сохраняет аренду конкретного хранилища до тех пор, пока Менеджер управления не потребует, чтобы роль SPM взял на себя новый хост.
Менеджер управления переносит роль SPM на другой хост в следующих случаях:
-
Хост SPM не может получить доступ ко всем доменам хранения, но может получить доступ к домену хранения master
-
Хост SPM не может продлить аренду из-за потери подключения к хранилищу или из-за того, что том аренды заполнен и операцию записи не удается выполнить
-
Хост SPM аварийно завершает работу
2.9. Процесс выбора Менеджера пула хранения
Если хосту не была назначена роль Менеджера пула хранения (SPM) вручную, то процесс выбора SPM инициируется и управляется Менеджером управления.
Первым делом Менеджер управления запрашивает у VDSM подтверждение того, какой хост взял на себя аренду конкретного хранилища.
Менеджер управления отслеживает историю назначений SPM, начиная с первоначального создания домена хранения. Доступность роли SPM подтверждается тремя способами:
-
Команда getSPMstatus: Менеджер управления использует VDSM для проверки хоста, который последним имел статус SPM, и получает один из вариантов ответа: "SPM", "Состязающийся (Contending)" или "Свободный (Free)".
-
В томе метаданных для домена хранения содержится последний хост со статусом SPM.
-
Том метаданных для домена хранения содержит версию последнего хоста со статусом SPM.
Если работоспособный и реагирующий на запросы хост сохраняет аренду конкретного хранилища, то Менеджер управления помечает этот хост как SPM на Портале администрирования. Никаких дополнительных действий не выполняется.
Если хост SPM не отвечает, то он считается недоступным. Если для хоста настроено управление питанием, то он автоматически изолируется. Если же нет, то требуется его ручная изоляция. Роль SPM не может быть назначена новому хосту до тех пор, пока предыдущий SPM не будет изолирован.
Когда роль SPM и аренда конкретного хранилища не будут кем-то заняты, Менеджер управления назначит их случайно выбранному работающему хосту в центре данных.
Если назначить роль SPM на новом хосте не удастся, то Менеджер управления добавит хост в список хостов, на которых эта операция не удалась, отмечая эти хосты как неподходящие на роль SPM. Этот список очищается в начале следующего процесса выбора SPM, чтобы все хосты снова подходили на роль SPM.
Менеджер управления продолжает отправлять запрос на то, чтобы роль SPM и аренду конкретного хранилища принял на себя случайно выбираемый хост, которого нет в списке отказавших хостов, и продолжает так делать до тех пор, пока SPM не будет успешно выбран.
Каждый раз, когда текущий SPM перестает реагировать на запросы или оказывается неспособен выполнять свои обязанности, Менеджер управления инициирует процесс выбора SPM.
2.10. Эксклюзивные ресурсы и Sanlock в zVirt
Доступ к некоторым ресурсам в среде zVirt должен предоставляться на эксклюзивной основе.
Один из таких ресурсов – роль SPM. Если бы несколько хостов работали как SPM, то возник бы риск повреждения данных, поскольку одни и те же данные можно было бы изменить из двух мест одновременно.
Ранее эксклюзивность SPM поддерживалась и отслеживалась с помощью функции VDSM, называемой safelease. Факт аренды записывался в специальную область во всех доменах хранения в центре данных. Все хосты в среде могли отслеживать статус SPM независимо от сети. Безопасная аренда VDSM поддерживала эксклюзивность только одного ресурса: роли SPM.
Sanlock имеет ту же функциональность, но рассматривает роль SPM как один из ресурсов, которые можно заблокировать. Sanlock – более гибкий инструмент, поскольку позволяет блокировать дополнительные ресурсы.
Приложения, требующие блокировки ресурсов, могут регистрироваться в Sanlock. Зарегистрированные приложения могут затем запросить у Sanlock блокировку ресурса от их имени, чтобы больше никакое приложение не смогло получить к нему доступ. Например, вместо того, чтобы блокировать статус SPM самостоятельно, VDSM теперь требует, чтобы это сделал Sanlock.
Блокировки отслеживаются в пространстве блокировки lockspace диска. Для каждого домена хранения есть одно пространство блокировки. В случае блокировки ресурса SPM работоспособность каждого хоста отслеживается в пространстве блокировки. Индикатором работоспособности хоста служит его способность обновлять свой hostid , полученный от Менеджера управления при подключении к хранилищу, и записывать через регулярные промежутки времени временную метку в пространство блокировки. Логический том ids отслеживает уникальные идентификаторы каждого хоста и обновляет свое содержимое всякий раз, когда хост обновляет свой hostid. Ресурс SPM может удерживаться только работоспособным хостом.
Ресурсы отслеживаются в логическом томе leases диска. Ресурс считается занятым, когда в его представление на диске добавлен уникальный идентификатор процесса, который его занял. В случае роли SPM ресурс SPM обновляется идентификатором хоста (hostid), который его занял.
Процесс Sanlock на каждом хосте должен лишь единожды проверить ресурсы, чтобы убедиться, что они заняты. После первоначальной проверки Sanlock может вести мониторинг пространств блокировки до тех пор, пока временная метка хоста с заблокированным ресурсом не устареет.
Sanlock ведет мониторинг приложений, которые используют ресурсы: например, мониторинг VDSM в части статуса SPM и hostid. Если хост не может обновить свой hostid из Менеджера управления, то он теряет эксклюзивность по отношению ко всем ресурсам в пространстве блокировки. Sanlock обновляет состояние ресурса, чтобы показать, что он более не занят.
Если хост SPM не может записать временную метку в пространство блокировки в домене хранения в течение заданного периода времени, то экземпляр Sanlock хоста требует, чтобы процесс VDSM освободил свои ресурсы. Если процесс VDSM отвечает, то его ресурсы освобождены и другой хост может занять ресурс SPM в пространстве блокировки.
Если VDSM на хосте SPM не отвечает на запросы на освобождение ресурсов, то Sanlock на хосте останавливает процесс VDSM. Если остановить процесс командой kill не удается, Sanlock прибегает к эскалации, пытаясь остановить VDSM командой sigkill. Если команда sigkill не дает результата, Sanlock ждет, пока демон watchdog перезагрузит хост.
Всякий раз, когда VDSM на хосте обновляет свой hostid и записывает временную метку в пространство блокировки, демон watchdog получает pet-метку. Когда VDSM не может этого сделать, демон watchdog перестаёт получать pet-метку. Если в течение заданного периода времени демон watchdog не получил pet-метку, он перезагружает хост. Применение этого последнего уровня эскалации гарантирует, что ресурс SPM освобождается и может быть занят другим хостом.
2.11. Динамическое выделение и избыточное выделение пространства
Менеджер управления применяет политики выделения ресурсов для оптимизации использования хранилища в среде виртуализации. Политика динамического выделения позволяет выделять пространство с избытком, исходя из его фактического использования в среде виртуализации.
Избыточное выделение пространства – это выделение виртуальным машинам большего объема хранилища, чем физически доступно в пуле хранения. Как правило, виртуальные машины используют меньше пространства, чем им было выделено. Динамическое выделение позволяет виртуальной машине работать так, как если бы заданное для нее хранилище было выделено полностью, хотя на самом деле выделена лишь его часть.
| Несмотря на то, что в Менеджере управления есть своя функция динамического выделения пространства, следует использовать ту функциональность динамического выделения, которую предоставляет (если предоставляет) серверная часть хранилища. |
Для поддержки избыточного выделения пространства VDSM определяет пороговое значение, используемое при сравнении логически выделенного пространства хранилища с фактически используемым. Это пороговое значение гарантирует, что объем данных, записываемых в образ диска, будет меньше размера логического тома, на котором базируется образ диска. QEMU определяет наибольшее смещение, записанное в логическом томе и указывающее на самый дальний сектор диска, который можно использовать. VDSM отслеживает наибольшее смещение, отмеченное QEMU, чтобы гарантировать, что использование пространства не превысит указанного порогового значения. Все время, пока VDSM продолжает сообщать, что наибольшее смещение остается ниже порогового значения, Менеджер управления знает, что на рассматриваемом логическом томе есть достаточно места для продолжения операций.
Когда QEMU указывает, что использование превысило пороговое значение, VDSM сообщает Менеджеру управления, что размер образа диска скоро достигнет размера своего логического тома. Менеджер управления запрашивает у хоста SPM, чтобы тот расширил логический том. Этот процесс можно повторять, пока в домене хранения данных для центра данных есть свободное пространство. Когда свободное пространство в домене хранения данных заканчивается, необходимо вручную добавить емкость в хранилище, чтобы расширить его.
2.12. Расширение логического тома
Менеджер управления использует динамическое выделение для избыточного выделения пространства, доступного в пуле хранения, и выделяет больше пространства, чем доступно физически. По мере работы виртуальные машины пишут данные. Виртуальная машина с образом диска, использующим динамическое выделение, в конечном счете попытается записать больше данных, чем может вместить логический том, на котором базируется этот образ диска. Когда это происходит, для предоставления виртуальной машине дополнительного пространства и обеспечения ее непрерывной работы применяется расширение логического тома.
В zVirt используется механизм динамического выделения через LVM. В случае хранилища в формате QCOW2 zVirt использует системный процесс хоста qemu-kvm для последовательного сопоставления блоков хранилища на диске с логическими блоками. Это позволяет, например, задать логический диск объемом 100 ГБ, базирующийся на логическом томе объемом 1 ГБ. Когда qemu-kvm превышает порог использования, установленный VDSM, локальный экземпляр VDSM отправляет Менеджеру пула хранения запрос на расширение логического тома еще на один гигабайт. VDSM на хосте, где запущена виртуальная машина, нуждающаяся в расширении тома, уведомляет VDSM Менеджера пула хранения о том, что ей требуется больше места. SPM расширяет логический том, а его экземпляр VDSM заставляет VDSM хоста обновлять информацию о группе томов и подтвердить, что операция расширения завершена. Хост может продолжать работу.
Для расширения логического тома не нужно, чтобы хост знал, какой другой хост выполняет роль SPM; это может быть даже сам SPM. Для обмена сообщениями о необходимости расширения хранилища используются логические тома inbox и outbox. Inbox и outbox – это выделенные логические тома в домене хранения данных. Хост, которому нужно, чтобы SPM расширил логический том, пишет сообщение в пространство inbox, выделенное для этого конкретного хоста. SPM периодически читает inbox, выполняет запрошенные расширения логических томов и пишет ответ в outbox. После отправки запроса хост проверяет входящие сообщения на наличие ответов каждые две секунды. Получив ответ об успешном выполнении его запроса на расширение логического тома, хост обновляет карту логического тома в инструменте сопоставления устройств, чтобы увидеть вновь выделенное пространство.
Когда объем физического хранилища, доступный пулу хранения, почти исчерпан, несколько образов могут исчерпать используемое ими пространство без возможности его расширения. Когда пул хранения исчерпывает свое пространство, QEMU возвращает ошибку enospc, которая указывает на то, что на устройстве больше нет доступного пространства. В этот момент работающие виртуальные машины автоматически приостанавливаются, и требуется ручное вмешательство, чтобы добавить новый LUN в группу томов.
Когда в группу томов добавляется новый LUN, Менеджер пула хранения автоматически распределяет дополнительное пространство между логическими томами, которые в нем нуждаются. Автоматическое выделение дополнительных ресурсов позволяет соответствующим виртуальным машинам автоматически продолжать работу без перерыва либо возобновить работу после остановки.
2.13. Влияние действий в домене хранения на емкость хранилища
Включение, выключение и перезагрузка виртуальной машины без запоминания состояния
Эти три процесса влияют на слой копирования при записи (COW) в виртуальной машине без запоминания состояния. Дополнительные сведения см. в строке Без запоминания состояния (Stateless) таблицы Виртуальная машина: общие настройки в Руководстве по управлению виртуальными машинами.
Создание домена хранения
Создание домена блочного хранения сопровождается созданием файлов с теми же именами, что и у семи логических томов, показанных ниже, и изначально должно требовать меньше места.
ids 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-ao---- 128.00m
inbox 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-a----- 128.00m
leases 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-a----- 2.00g
master 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-ao---- 1.00g
metadata 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-a----- 512.00m
outbox 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-a----- 128.00m
xleases 64f87b0f-88d6-49e9-b797-60d36c9df497 -wi-a----- 1.00g
Удаление домена хранения
Удаление домена хранения высвобождает столько дискового пространства, сколько занимал удаленный процесс.
Миграция домена хранения
При миграции домена хранения дополнительная емкость хранилища не используется. Дополнительную информацию о миграции доменов хранения см. в разделе Миграция доменов хранения между центрами данных в одной среде в Руководстве по администрированию.
Перемещение виртуального диска в другой домен хранения
Для миграции виртуального диска требуется достаточно свободного места в целевом домене хранения. Приблизительный размер свободного места в целевом домене можно посмотреть на Портале администрирования.
Видимая емкость зависит от типа перемещаемого хранилища. Например, если переносить диск с предварительно выделенным пространством из блочного хранилища в файловое, то получившееся в результате свободное пространство может быть значительно меньше первоначального.
При миграции виртуального диска в другой домен хранения на лету также создается снимок, который автоматически объединяется после завершения миграции. Дополнительную информацию о перемещении виртуальных дисков см. в разделе Перемещение виртуального диска в Руководстве по администрированию.
Приостановка работы домена хранения
При приостановке работы домена хранения дополнительная емкость хранилища не используется.
Создание снимка виртуальной машины
Создание снимка виртуальной машины может повлиять на емкость домена хранения.
-
При создании снимка на лету по умолчанию используются снимки памяти и создаются два дополнительных тома для каждой виртуальной машины. Первый том – это сумма памяти, видеопамяти и 200-мегабайтного буфера. Второй том содержит конфигурацию виртуальной машины размером в несколько мегабайт. При использовании блочного хранилища округление происходит до ближайшей единицы хранения (unit), которую может обеспечить zVirt.
-
При создании снимка оффлайн он изначально занимает 1 ГБ блочного хранилища и динамически расширяется вплоть до размера диска.
-
Клонирование снимка создает новый диск того же размера, что и исходный.
-
Фиксация снимка удаляет все дочерние тома в зависимости от того, где в цепочке происходит фиксация.
-
Удаление снимка в конечном итоге приводит к удалению дочернего тома для каждого диска и поддерживается только при работающей виртуальной машине.
-
При предварительном просмотре снимка создается временный том для каждого диска, чтобы обеспечить достаточно места для предварительного просмотра.
-
Отмена предварительного просмотра снимка удаляет временный том, созданный инструментом предварительного просмотра.
Подключение и удаление прямых LUN
Подключение и удаление прямых LUN не влияет на домен хранения, поскольку они не являются компонентом домена хранения. Дополнительные сведения см. в разделе Общие сведения о миграции между хранилищами "на лету" в Руководстве по администрированию.
3. Сетевые подключения
3.1. Сетевые подключения хостов
На канальном уровне (уровень 2) zVirt позволяет конфигурировать bond-интерфейсы Linux, чтобы подключаться к сетям VLAN и задавать MTU для сетевых интерфейсов. Эти сети могут быть доступны сразу нескольким виртуальным машинам через мосты Linux.
В случае SR-IOV можно настроить количество виртуальных функций и их сопоставление с логическими сетями.
Протокол FCoE управляет своими собственными сетями VLAN. Сети VLAN, управляемые протоколом FCoE, используются исключительно для доступа к хранилищу. Они невидимы для Менеджера управления и всех виртуальных машин.
iSCSI управляет bond-интерфейсами iSCSI. Они не входят в видимую конфигурацию сети хостов zVirt. iSCSI можно использовать без bond-интерфейсов iSCSI, которые полезны только для повышения надежности хранилища iSCSI.
| Все хосты в кластере должны использовать или IPv4, или IPv6 в качестве IP-стека для своей сети управления. Одновременное использование обоих стеков не поддерживается. |
Можно настроить DNS-резолвер, который используется хостом.
Можно также управлять ролями сети и QoS.
3.2. Типы сетевых подключений на виртуальных машинах
В zVirt виртуальные сетевые карты виртуальных машин могут подключаться к следующим типам сетей:
-
Мосты Linux
-
Сетевые карты SR-IOV
-
Внутренняя система OVN в zVirt
На следующей схеме представлена структура этих трех подходов, где:
-
Хост 1 представляет мосты Linux
-
Хост 2 представляет сетевые карты SR-IOV
-
Хост 3 представляет OVN
| Мост Linux | SR-IOV | Внутренняя система OVN в zVirt | |
|---|---|---|---|
Изоляция от сетей физических хостов |
Уровень 3, Возможна отдельная IP-сеть |
Уровень 2, Возможны отдельные сети VLAN |
Изолирована |
Миграция на лету |
x |
x |
x |
Политика QoS (QoS) |
x |
||
Зеркалирование портов (Port Mirroring) |
x |
||
конфигурация подключенной vNIC |
x |
x |
|
Управление MAC-адресами |
x |
x |
x |
Распространение MTU |
x |
x |
|
Фильтрация сети VLAN, может потребоваться настройка на физическом коммутаторе |
x |
x |
Предварительная версия технологии, представленная для оценки (Technology Preview) |
Защита от спуфинга MAC-адресов |
x |
x |
|
Защита от спуфинга IP-адресов |
x |
x |
|
Предварительно заданные сетевые фильтры |
x |
||
Пользовательская фильтрация Уровня 3/4 |
x |
||
NAT |
|||
Объявления маршрутизатора/DHCP |
x |
||
Маршрутизатор Уровня 3 |
x |
||
Производительность |
** |
*** |
* |
инкапсуляция данных сети виртуальных машин |
однородная сеть, VLAN |
однородная сеть, VLAN |
Стабильная сеть: GENEVE; Предварительная версия технологии, представленная для оценки (Technology Preview): однородная сеть, VLAN |
3.2.1. Выбор сетевых подключений для различных сценариев
Мост Linux - наиболее проверенный вариант, который задан по умолчанию и подходит в большинстве случаев.
Для сценариев, где требуется очень низкая задержка сети или большое количество Ethernet-фреймов, рассмотрите возможность использования SR-IOV. Однако учтите, что для SR-IOV требуются аппаратная поддержка и дополнительная настройка.
Внутренние OVN-сети zVirt позволяют виртуальным машинам взаимодействовать друг с другом без ручной настройки сети.
Менеджер управления предоставляет только подмножество функций программно-определяемой сети (SDN) и пользовательских интерфейсов. Для использования всех функций SDN, аналогичных внутренней OVN-сети zVirt или сторонней SDN-сети, необходим дополнительный клиент, например CloudForms.
Все типы сетей можно объединить на одном хосте и подключить их к одной и той же виртуальной машине.
3.2.2. Взаимодействие с гостевой операционной системой
zVirt поддерживает первоначальную настройку виртуальной машины, предоставляя данные конфигурации через cloud-init (для виртуальных машин Linux) или через sysprep (для виртуальных машин Windows). Если внутри виртуальной машины работает qemu-guest-agent, то zVirt может сообщить IP-адреса виртуальной машины.
Если виртуальная машина использует сетевую карту VirtIO, то MTU логических сетей zVirt предоставляются гостевой операционной системе. Гостевая операционная система может выбрать MTU из объявлений маршрутизатора DHCPv4 или IPv6, если логическая сеть поддерживает эти объявления.
3.2.3. Сетевые подключения хоста и виртуальных машин
Мост Linux разделяет сетевые подключения виртуальных машин и хоста на третьем уровне OSI. Следовательно, хост и его виртуальные машины совместно используют конфигурацию сети, включая VLAN, бондинг и MTU.
Для уменьшения сетевого периметра хосты не должны назначать IP-адреса сетям VLAN, подключенным к виртуальным машинам. Если IP-адреса не назначены, то на хостах можно будет избежать путаницы, связанной с трафиком виртуальных машин.
IP-адрес, ассоциированный с мостом Linux, необязательно должен быть в той же подсети, что и виртуальные машины, которые используют мост для подключения. Если мосту назначен IP-адрес в той же подсети, в которой находятся виртуальные машины, использующие этот мост, то виртуальные машины могут обращаться к хосту внутри логической сети по его адресу. Как правило, не рекомендуется на хосте виртуализации запускать службы, доступные из сети.
3.3. Сетевая архитектура
Сетевая архитектура в zVirt включает в себя базовые сетевые технологии, сетевое взаимодействие внутри кластера и сетевые конфигурации хоста.
- Базовые сетевые технологии
-
Основные элементы аппаратного и программного обеспечения, способствующие сетевому взаимодействию.
- Сетевое взаимодействие внутри кластера
-
Сетевое взаимодействие между такими объектами кластера как хосты, логические сети и виртуальные машины.
- Сетевые конфигурации хоста
-
Поддерживаемые конфигурации для сетевого взаимодействия внутри хоста.
В хорошо спроектированной и построенной сети задачам, требовательным к полосе пропускания, выделяется необходимая полоса пропускания, задержка не влияет на взаимодействие пользователей, и виртуальные машины можно успешно переносить внутри домена миграции. Некорректно построенная сеть может спровоцировать неприемлемую задержку, а также сбой процессов миграции и клонирования из-за переполнения сети трафиком.
3.4. Условия базового сетевого подключения
zVirt обеспечивает сетевое подключение между виртуальными машинами, хостами виртуализации и более глобальными сетями, используя:
-
Логические сети
-
Сетевую карту (NIC)
-
Мост Linux
-
Bond-интерфейс
-
Виртуальную сетевую карту (vNIC)
-
Виртуальную локальную сеть (VLAN)
Сетевые карты, мосты Linux и виртуальные сетевые карты обеспечивают сетевое взаимодействие между хостами, виртуальными машинами, локальными сетями и сетью Интернет. При желании можно реализовать bond-интерфейсы и сети VLAN для повышения безопасности, отказоустойчивости и пропускной способности сети.
3.5. Сетевая карта
Сетевая карта (NIC) - это сетевой адаптер или адаптер LAN, который подключает компьютер к компьютерной сети. Сетевая карта работает как на физическом, так и на канальном уровне машины и обеспечивает сетевое подключение. На каждом хосте виртуализации в среде zVirt есть как минимум одна сетевая карта, хотя чаще их две или больше.
К одной физической сетевой карте может быть логически подключено несколько виртуальных сетевых карт (vNIC). Виртуальная сетевая карта действует как сетевой интерфейс для виртуальной машины. Чтобы различать сетевую карту и поддерживаемую ею vNIC, Менеджер управления назначает каждой vNIC уникальный MAC-адрес.
3.6. Мост Linux
Мост Linux - это программное устройство, использующее переадресацию пакетов в сети с коммутацией пакетов. Благодаря мосту несколько устройств сетевого интерфейса могут совместно подключаться к одной сетевой карте и отображаться в сети как отдельные физические устройства. Мост проверяет адреса-источники пакета, чтобы определить соответствующие целевые адреса. После определения целевого адреса мост добавляет местонахождение в таблицу для использования в будущем, что позволяет хосту перенаправить сетевой трафик на vNIC, ассоциированные с виртуальной машиной и входящие в мост.
Пользовательские свойства могут задаваться для подключения как по мосту, так и по Ethernet. VDSM передает определение настроек сети и пользовательские свойства хуку скрипта настройки сети.
3.7. Bond-интерфейсы
Bond-интерфейс - это совокупность нескольких сетевых карт на едином программно-определяемом устройстве. Поскольку bond-интерфейс суммирует производительность входящих в него сетевых карт, чтобы действовать как единый сетевой интерфейс, он может обеспечить более высокую скорость передачи, чем одна сетевая карта. Кроме того, бондинг обеспечивает более высокую отказоустойчивость, так как bond-интерфейс выйдет из строя, только если выйдут из строя все входящие в него сетевые карты. Однако есть и ограничение: чтобы поддерживать одни и те же параметры и режимы, все сетевые карты в bond-интерфейсе должны быть от одного производителя и одной модели.
Алгоритм рассеивания (распределения) пакетов для bond-интерфейса определяется используемым режимом бондинга.
| Режимы 1, 2, 3 и 4 поддерживают как сети виртуальных машин (с мостом), так и другие сети (без моста). Режимы 0, 5 и 6 поддерживают только сети, отличные от сетей виртуальных машин (без моста). |
3.8. Режимы бондинга
zVirt использует Режим 4 по умолчанию, но поддерживает следующие общие режимы бондинга:
-
Режим 0 (round-robin) - передача пакетов через сетевые интерфейсы в последовательном порядке. Пакеты передаются в цикле, который начинается с первого доступного сетевого интерфейса на хосте и заканчивается последним доступным сетевым интерфейсом на хосте. Все последующие циклы начинаются с первой доступной карты сетевого интерфейса. Режим 0 обеспечивает отказоустойчивость и распределяет нагрузку между всеми сетевыми интерфейсными картами в связке. Обратите внимание, что режим 0 не может использоваться в сочетании с bridge и поэтому не совместим с логическими сетями виртуальных машин.
-
Режим 1 (active-backup) - переводит все сетевые интерфейсы в резервное состояние, в то время как один сетевой интерфейс остается активным. В случае отказа активного сетевого интерфейса один из резервных интерфейсов заменяет сбойный интерфейс в качестве единственного активного сетевого интерфейса в бонде. MAC-адрес соединения в режиме 1 виден только на одном порту, чтобы предотвратить путаницу, которая может возникнуть, если MAC-адрес соединения изменится на MAC-адрес активной сетевой интерфейсной карты. Режим 1 обеспечивает отказоустойчивость и поддерживается в zVirt.
-
Режим 2 (XOR) - выбирает сетевой интерфейс, через который будут передаваться пакеты, на основе результата операции
XORнад MAC-адресами источника и назначения по модулю количества сетевых интерфейсов. Этот расчет гарантирует, что для каждого используемого MAC-адреса назначения будет выбрана одна и та же карта сетевого интерфейса. Режим 2 обеспечивает отказоустойчивость и балансировку нагрузки и поддерживается в zVirt. -
Режим 3 (broadcast) - передает все пакеты всем сетевым интерфейсам. Режим 3 обеспечивает отказоустойчивость и поддерживается в zVirt.
-
Режим 4 (IEEE 802.3ad) - создает группы агрегации, в которых интерфейсы имеют одинаковые настройки скорости и дуплекса. Режим 4 использует все сетевые интерфейсы в активной группе агрегации в соответствии со спецификацией IEEE 802.3ad и поддерживается в zVirt.
-
Режим 5 (adaptive transmit load balancing) - обеспечивает распределение исходящего трафика с учетом нагрузки на каждый сетевой интерфейс в связке и то, что текущий сетевой интерфейс получает весь входящий трафик. Если сетевой интерфейс, назначенный для приема трафика, выходит из строя, роль приема входящего трафика возлагается на другой сетевой интерфейс. Режим 5 нельзя использовать в сочетании с bridge , поэтому он не совместим с логическими сетями виртуальных машин.
-
Режим 6 (adaptive load balancing) - объединяет режим 5 (adaptive transmit load balancing) с балансировкой нагрузки при приеме для трафика IPv4 без каких-либо специальных требований к коммутатору. Для балансировки принимаемой нагрузки используется согласование ARP. Режим 6 нельзя использовать в сочетании с bridge , поэтому он не совместим с логическими сетями виртуальных машин.
3.9. Конфигурация коммутатора для бондинга
Конфигурации коммутаторов разнятся в зависимости от требований к оборудованию. См. руководства по развертыванию и настройке сетевого подключения для вашей операционной системы.
| Для каждого типа коммутатора важно настроить бондинг коммутатора по протоколу Link Aggregation Control Protocol (LACP), а не по протоколу Cisco Port Aggregation Protocol (PAgP). |
3.10. Виртуальные сетевые карты (vNICs)
Виртуальные сетевые карты (vNIC) — это виртуальные сетевые интерфейсы, основанные на физических сетевых картах хоста. У каждого хоста может быть несколько сетевых карт, и каждая сетевая карта может быть базой для нескольких vNIC.
При подключении vNIC к виртуальной машине Менеджер управления создает несколько ассоциаций между виртуальной машиной, к которой подключена vNIC, самой vNIC и сетевой картой физического хоста, на которой базируется vNIC. Так, когда vNIC подключена к виртуальной машине, новая vNIC и MAC-адрес создаются на сетевой карте физического хоста, на которой базируется vNIC. Как только виртуальная машина запускается первый раз после подключения этой vNIC, libvirt назначает PCI-адрес для vNIC. Затем MAC-адрес и PCI-адрес используются для получения имени vNIC (например, eth0) на виртуальной машине.
Процесс назначения MAC-адресов и ассоциирования этих MAC-адресов с PCI-адресами несколько отличается при создании виртуальных машин на основе шаблонов или снимков:
-
Если PCI-адреса уже были созданы для шаблона или снимка, то виртуальные сетевые карты (vNIC) на виртуальных машинах, созданных на основе этого шаблона или снимка, упорядочиваются по этим PCI-адресам. Затем MAC-адреса распределяются на vNIC в этом порядке.
-
Если PCI-адреса еще не были созданы для шаблона, то виртуальные сетевые карты (vNIC) на виртуальных машинах, созданных на основе этого шаблона, упорядочиваются по алфавиту. Затем MAC-адреса распределяются на vNIC в этом порядке.
-
Если PCI-адреса еще не были созданы для снимка, то Менеджер управления распределяет новые MAC-адреса на vNIC на виртуальных машинах, созданных на основе этого снимка.
Как только vNIC создаются, они добавляются на устройство сетевого моста. Устройства сетевого моста подключают виртуальные машины к виртуальным логическим сетям.
При запуске команды ip addr show на хосте виртуализации отображаются все vNIC, ассоциированные с виртуальными машинами на этом хосте. Также видны все сетевые мосты, которые были созданы для поддержки логических сетей, и все сетевые карты, используемые хостом.
[root@host-01 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:21:86:a2:85:cd brd ff:ff:ff:ff:ff:ff
inet6 fe80::221:86ff:fea2:85cd/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 00:21:6b:cc:14:6c brd ff:ff:ff:ff:ff:ff
5: ;vdsmdummy;: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
link/ether 4a:d5:52:c2:7f:4b brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: bond4: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
8: bond1: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
9: bond2: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: bond3: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
11: ovirtmgmt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 00:21:86:a2:85:cd brd ff:ff:ff:ff:ff:ff
inet 10.64.32.134/23 brd 10.64.33.255 scope global ovirtmgmt
inet6 fe80::221:86ff:fea2:85cd/64 scope link
valid_lft forever preferred_lft forever
Консольный вывод команды отображает несколько устройств: одно loopback-устройство (lo), одно Ethernet-устройство (eth0), одно беспроводное устройство (wlan0), одно фиктивное устройство VDSM (;vdsmdummy;), пять bond-устройств (bond0, bond4, bond1, bond2, bond3) и один сетевой мост (ovirtmgmt).
Все vNIC входят в устройство сетевого моста и логическую сеть. Членство в мосте может быть отображено с помощью команды brctl show:
[root@host-01 ~]# brctl show
bridge name bridge id STP enabled interfaces
ovirtmgmt 8000.e41f13b7fdd4 no vnet002
vnet001
vnet000
eth0
Консольный вывод команды brctl show показывает, что vNIC virtio - члены моста ovirtmgmt. Все виртуальные машины, с которыми ассоциированы vNIC, подключены к логической сети ovirtmgmt. Сетевая карта eth0 также является членом моста ovirtmgmt. Устройство eth0 подключено к коммутатору, который обеспечивает подключение за пределами хоста.
3.11. Виртуальная локальная сеть (VLAN)
VLAN (виртуальная локальная сеть) - это атрибут, применимый к сетевым пакетам. Сетевые пакеты могут быть "тегированы" в пронумерованную сеть VLAN. VLAN - функция безопасности, используемая для изоляции сетевого трафика на уровне коммутатора. Сети VLAN отделены друг от друга и являются взаимоисключающими. Менеджер управления знает о VLAN и может тегировать и перенаправлять трафик, но для реализации VLAN требуется коммутатор, поддерживающий VLAN.
На уровне коммутатора портам назначается обозначение VLAN. Коммутатор применяет тег VLAN к трафику, исходящему из определенного порта, помечая трафик как часть VLAN, и гарантирует, чтобы в ответах был тот же самый тег VLAN. VLAN может охватывать несколько коммутаторов. Сетевой трафик, отмеченный тегом VLAN, на коммутаторе обнаружить могут только машины, подключенные к порту, обозначенному корректной VLAN. Данный порт может быть тегирован в несколько сетей VLAN, что позволяет отправлять трафик из нескольких сетей VLAN на один порт для дешифровки с помощью ПО на машине, получающей трафик.
3.12. Метки сети
Метки сети можно использовать для упрощения некоторых административных задач, связанных с созданием и администрированием логических сетей, а также ассоциированием этих логических сетей с сетевыми интерфейсами физического хоста и bond-интерфейсами.
Метка сети — это метка в виде читаемого текста, которую можно подключить к логической сети или сетевому интерфейсу физического хоста. При создании метки руководствуйтесь следующими правилами:
-
Длина метки не ограничена.
-
Следует использовать комбинацию букв в верхнем и нижнем регистре, подчеркиваний и дефисов.
-
Специальные символы и пробелы использовать нельзя.
При подключении метки к логической сети или сетевому интерфейсу физического хоста создается ассоциация с другими логическими сетями или сетевыми интерфейсами физического хоста, к которым была подключена та же самая метка:
- Ассоциации меток сети
-
-
Как только метка подключена к логической сети, последняя будет автоматически ассоциирована с любыми сетевыми интерфейсами физического хоста с этой меткой.
-
Как только метка подключена к сетевому интерфейсу физического хоста, любые логические сети с данной меткой будут автоматически ассоциированы с этим сетевым интерфейсом физического хоста.
-
Изменение метки, подключенной к логической сети или сетевому интерфейсу физического хоста, аналогично удалению метки и добавлению новой. Ассоциация между связанными логическими сетями или сетевыми интерфейсами физического хоста обновляется.
-
- Метки сети и кластеры
-
-
Когда логическая сеть с меткой добавляется в кластер, и в этом кластере есть сетевой интерфейс физического хоста с такой же меткой, логическая сеть автоматически добавляется в этот сетевой интерфейс физического хоста.
-
Когда логическая сеть с меткой отключается от кластера, и в этом кластере есть сетевой интерфейс физического хоста с такой же меткой, логическая сеть автоматически отключается от этого сетевого интерфейса физического хоста.
-
- Метки сети и логические сети с ролями
-
-
После того как логическая сеть с меткой назначается для работы в качестве сети отображения или сети миграции, эта логическая сеть настраивается на сетевом интерфейсе физического хоста с использованием DHCP, чтобы логической сети можно было назначить IP-адрес.
-
Присвоение метки сети, выполняющей ту или иную роль (например, сети миграции или сети отображения) приводит к массовому развертыванию этой сети на всех хостах. Такое массовое добавление сетей достигается путем использования DHCP. Так как задача ввода множества статических IP-адресов не масштабируется, был выбран именно этот метод массового развертывания, а не метод ввода статических адресов.
-
3.13. Сетевые подключения кластера
Сетевые объекты на уровне кластера включают в себя:
-
Кластеры
-
Логические сети
Центр данных — это логическая группа из нескольких кластеров, при этом каждый кластер — это логическая группа из нескольких хостов. Содержимое отдельного кластера показано на следующей диаграмме:
Все хосты в кластере имеют доступ к одним и тем же доменам хранения. У хостов в кластере также имеются логические сети, которые применяются к кластеру. Чтобы логическую сеть виртуальной машины можно было использовать вместе с виртуальными машинами, сеть должна быть определена и реализована для каждого хоста в кластере с помощью Менеджера управления. Другие типы логических сетей можно реализовать только на использующих их хостах.
В сети с несколькими хостами любые обновленные сетевые настройки автоматически применяются ко всем хостам в центре данных, которому назначена сеть.
3.14. Логические сети
Логические сети позволяют среде zVirt разделять сетевой трафик по типам. Например, сеть ovirtmgmt создается по умолчанию во время установки zVirt и используется для управления взаимодействием между Менеджером управления и хостами. Обычно логические сети используются для группировки сетевого трафика, к которому предъявляются аналогичные требования и который используется похожим образом. Во многих случаях сеть хранения и сеть отображения создаются администратором для изоляции трафика каждого соответствующего типа в целях оптимизации и устранения ошибок.
zVirt поддерживает следующие типы логических сетей:
-
Логические сети, передающие только сетевой трафик хостов, например трафик хранения или миграции
-
Логические сети, передающие сетевой трафик хостов и виртуальных машин
-
Логические сети, передающие только сетевой трафик виртуальных машин, например, сети OVN
Логические сети определяются на уровне центра данных.
При необходимости Менеджер управления автоматически создает экземпляры логических сетей на хосте в зависимости от типа сети виртуальных машин. Дополнительную информацию см. в разделе Типы сетевых подключений виртуальных машин.
Системный администратор хочет протестировать веб-сервер с помощью логической сети.
В центре данных Purple в кластере Pink есть два хоста: Red и White. Как хост Red, так и хост White по умолчанию используют логическую сеть ovirtmgmt для всех сетевых функций. Системный администратор, ответственный за кластер Pink, решил изолировать сетевое тестирование веб-сервера, поместив веб-сервер и некоторые клиентские виртуальные машины в отдельную логическую сеть. Он решил назвать новую логическую сеть test_logical_network.
-
Он создал новую логическую сеть под именем test_logical_network для центра данных Purple с возможностью тегирования VLAN. Тегирование VLAN необходимо, когда две логические сети подключены к одной и той же физической сетевой карте. Он применил test_logical_network к кластеру Pink.
-
На хосте Red он подключил test_logical_network к физической сетевой карте, которая будет включена в мост, созданный Менеджером управления. Сеть не работала, пока системный администратор не установил соответствующий мост на всех хостах в кластере, добавив физический сетевой интерфейс на каждом хосте в кластере Pink к test_logical_network, а потом сделав то же самое на хосте White. Когда на обоих хостах White и Red логическая сеть test_logical_network через мост подключена к физическому сетевому интерфейсу, она готова к работе и использованию виртуальными машинами.
-
Системный администратор ассоциирует виртуальные машины на хостах Red и White с новой сетью.
3.15. Обязательные сети, опциональные сети и сети виртуальных машин
Обязательная сеть - это логическая сеть, которая должна быть доступна всем хостам в кластере. Когда обязательная сеть хоста перестает работать, виртуальные машины, работающие на этом хосте, переносятся на другой хост; объем миграции зависит от выбранной политики планирования. Это полезно при наличии виртуальных машин, на которых запущены критически важные процессы.
Опциональная сеть - это логическая сеть, которая не была явно обозначена как Обязательная (Required). Опциональные сети можно реализовать только на использующих их хостах. Наличие или отсутствие опциональных сетей не влияет на статус работоспособности (Operational status) хоста. Когда необязательная сеть становиться неработоспособной, виртуальные машины, работающие в этой сети, не переносятся на другой хост, что позволяет избежать избыточных операций ввода/вывода, связанных с массовой миграцией. Обратите внимание, что при создании логической сети и добавлении ее в кластеры флажок Обязательная (Required) стоит по умолчанию.
Чтобы изменить обозначение сети как Обязательной (Required), на Портале администрирования в разделе Сеть перейдите в подраздел Сети, выберите нужную сеть, откройте вкладку Кластеры (Clusters) и нажмите кнопку Управление сетью (Manage Network).
Сеть виртуальных машин с отметкой Сеть ВМ (VM network,
) в пользовательском интерфейсе - это логическая сеть, предназначенная для передачи только сетевого трафика виртуальных машин. Сеть виртуальных машин может быть обязательной или опциональной. Виртуальные машины, использующие опциональную сеть ВМ, запускаются только на хостах с этой сетью.
3.16. Зеркалирование портов (Port Mirroring)
При зеркалировании портов сетевой трафик третьего уровня копируется с данной логической сети и хоста на виртуальный интерфейс виртуальной машины. Эта виртуальная машина может использоваться для отладки и настройки сети, обнаружения вторжений и контроля за поведением других виртуальных машин на том же хосте и в той же логической сети.
Копируется только трафик внутри одной логической сети на одном хосте. Во внешней сети хоста трафик не растет. Однако виртуальная машина с включенным зеркалированием портов использует больше CPU и RAM хоста, чем другие виртуальные машины.
Зеркалирование портов включается или выключается в профилях vNIC логических сетей и имеет следующие ограничения:
-
Горячая привязка vNIC к профилю, в котором включено зеркалирование портов, не поддерживается.
-
Зеркалирование портов нельзя изменить, когда профиль vNIC подключен к виртуальной машине.
Учитывая вышеуказанные ограничения, рекомендуется включить зеркалирование портов на дополнительном выделенном профиле vNIC .
| Включение зеркалирования портов снижает конфиденциальность других пользователей сети. |
3.17. Сетевые конфигурации хоста
Для понимания этих сетевых конфигураций может быть полезен раздел Сетевые подключения кластера.
К основным типам сетевых конфигураций относятся:
-
Конфигурация "Мост и сетевая карта" (Bridge and NIC configuration).
В конфигурации используется мост Linux для подключения одной или нескольких виртуальных машин к сетевой карте хоста.
Пример этой конфигурации - автоматическое создание сети ovirtmgmt при установке Менеджера управления. Затем во время установки хоста Менеджер управления устанавливает VDSM на хосте. В результате установки VDSM создается мост ovirtmgmt, который получает IP-адрес хоста для обеспечения связи с Менеджером управления.
Все хосты в кластере должны использовать или IPv4, или IPv6 в качестве IP-стека для своей сети управления. Одновременное использование обоих стеков не поддерживается. -
Конфигурация "Мост, VLAN и сетевая карта" (Bridge, VLAN, and NIC configuration).
VLAN может быть включена в конфигурацию "Мост и сетевая карта", чтобы обеспечить безопасный канал для передачи данных по сети. В этой конфигурации возможно подключение нескольких мостов к одной сетевой карте, использующей несколько VLAN.
-
Конфигурация "Мост, bond-интерфейс и VLAN" (Bridge, Bond, and VLAN configuration).
Bond-интерфейс создает логический канал, соединяющий два (или более) физических канала Ethernet, что обеспечивает отказоустойчивость сетевой карты и возможное расширение полосы пропускания, в зависимости от выбранного режима бондинга.
-
Конфигурация "Несколько мостов, несколько VLAN и сетевая карта" (Multiple Bridge, Multiple VLAN, and NIC configuration).
Конфигурация подключает сетевую карту к нескольким сетям VLAN.
Например, чтобы подключить одну сетевую карту к двум сетям VLAN, сетевой коммутатор может быть настроен на пропускание сетевого трафика, тегированного в одну из двух сетей VLAN, на одну сетевую карту на хосте. Хост использует две виртуальных сетевых карты vNIC для разделения трафика VLAN, по одной для каждой VLAN. Затем трафик, тегированный в любую VLAN, подключается к отдельному мосту благодаря тому, что соответствующая vNIC является членом моста. В свою очередь каждый мост подключается к нескольким виртуальным машинам.
Можно также связать несколько сетевых карт для упрощения подключения с нескольким сетями VLAN. Каждая VLAN в этой конфигурации определяется по bond-интерфейсу, включающему в себя несколько сетевых карт. Каждая VLAN подключается к отдельному мосту, а каждый мост подключается к одной или нескольким гостевым машинам.
4. Управление питанием
4.1. Введение в управление питанием и изоляцию
Среда zVirt наиболее гибкая и устойчивая, когда настроены управление питанием и изоляция. Управление питанием дает Менеджеру управления контроль над операциями циклов питания хостов, а это особенно важно для перезагрузки хостов, на которых были обнаружены проблемы. Изоляция используется, чтобы отделить проблемные хосты от функциональной среды zVirt путем их перезагрузки и тем самым предотвратить спад производительности. Изолированные хосты можно потом вернуть в состояние готовности к работе, выполнив действия от имени администратора, и повторно интегрировать их в среду.
Управление питанием и изоляция задействуют специально выделенное аппаратное обеспечение для перезагрузки хостов независимо от операционных систем хостов. Менеджер управления подключается к устройствам управления питанием, используя IP-адрес сети или имя хоста. В zVirt устройство управления питанием и устройство изоляции — это одно и то же устройство.
4.2. Управление питанием с прокси в zVirt
Менеджер управления не связывается с агентами изоляции напрямую. Вместо этого он использует прокси для отправки команд управления питанием на устройство управления питанием хоста. Менеджер управления использует VDSM для выполнения действий над устройством управления питанием, поэтому другой хост в среде используется в качестве изолирующего прокси.
Варианты выбора:
-
Любой хост в том же кластере, что и хост, который нужно изолировать.
-
Любой хост в том же центре данных, что и хост, который нужно изолировать.
Работоспособный изолирующий прокси-хост имеет статус либо Включен (UP)
, либо Обслуживание (Maintenance)
.
4.3. Управление питанием
Менеджер управления может перезагружать неработоспособные хосты или хосты, которые перестали отвечать на запросы, а также подготовить недостаточно загруженные хосты к выключению в целях экономии энергии. Работа функций зависит от того, насколько правильно настроено устройство управления питанием. Среда zVirt поддерживает следующие устройства управления питанием:
-
American Power Conversion (
apc) -
IBM Bladecenter (
Bladecenter) -
Cisco Unified Computing System (
cisco_ucs) -
Dell Remote Access Card 5 (
drac5) -
Dell Remote Access Card 7 (
drac7) -
Electronic Power Switch (
eps) -
HP BladeSystem (
hpblade) -
Integrated Lights Out (
ilo,ilo2,ilo3,ilo4) -
Intelligent Platform Management Interface (
ipmilan) -
Remote Supervisor Adapter (
rsa) -
Fujitsu-Siemens RSB (
rsb) -
Western Telematic, Inc (
wti)
Серверы HP должны использовать ilo3 или ilo4, серверы Dell — drac5 или интегрированные контроллеры удаленного доступа Dell (Integrated Dell Remote Access Controllers) (idrac), а серверы IBM — ipmilan. Интегрированный модуль управления IMM использует протокол IPMI, следовательно пользователям этого модуля доступно ipmilan.
| Агент изоляции apc не поддерживает устройства управления питанием APC 5.x. Вместо него следует использовать агент изоляции apc_snmp. |
Менеджер управления использует агенты изоляции для связи с перечисленными устройствами управления питанием. С помощью Менеджера управления администраторы могут настроить агент изоляции для устройства управления питанием в их среде и указать параметры, которые устройство будет принимать и на которые оно будет отвечать. Основные параметры конфигурации можно настроить через графический пользовательский интерфейс. Можно также указать специальные параметры конфигурации, которые будут переданы на устройство изоляции без парсинга. Специальные параметры конфигурации уникальны для конкретного устройства изоляции, в то время как базовые параметры конфигурации предназначены для функций, предоставляемых всеми поддерживаемыми устройствами управления питанием. К основным функциям, предоставляемым всеми устройствами управления питанием, относятся:
-
Статус (Status): проверка статуса хоста.
-
Запуск (Start): включение питания хоста.
-
Остановка (Stop): выключение питания хоста.
-
Перезагрузка (Restart): перезагрузка хоста. Фактически это реализовано следующим образом: остановка, ожидание, статус, запуск, ожидание, статус.
Лучше всего протестировать конфигурацию управления питанием сразу при ее первоначальной настройке и периодически тестировать ее в дальнейшем для обеспечения непрерывной работы.
Отказоустойчивость обеспечивают правильно настроенные устройства управления питанием на всех хостах в среде. Через агентов изоляции Менеджер управления взаимодействует с устройствами управления питанием хостов, чтобы обойти операционную систему на проблемном хосте и изолировать хост от остальной среды путем его перезагрузки. Затем Менеджер управления может переназначить роль SPM, если она была назначена проблемному хосту, и безопасно перезапустить все виртуальные машины с признаком высокой доступности на других хостах.
4.4. Изоляция
В среде zVirt изоляция — это перезагрузка хоста, инициированная Менеджером управления с помощью агента изоляции и выполненная устройством управления питанием. Изоляция позволяет кластеру реагировать на неожиданные отказы хоста и принудительно применять политики энергосбережения, балансировки нагрузки и обеспечения доступности виртуальных машин.
Благодаря изоляции роль SPM всегда назначается работающему хосту. Если у изолированного хоста была роль SPM, то она будет снята и переназначена работающему хосту. Записывать метаданные структуры домена данных может только хост с ролью SPM, поэтому если такой хост не отвечает на запросы и не изолирован, его среда утрачивает возможность создавать и уничтожать виртуальные диски, делать снимки, увеличивать размер логических томов и выполнять другие действия, связанные с обязательным изменением метаданных структуры домена данных.
Когда хост перестает отвечать на запросы, все виртуальные машины, которые в этот момент работают на этом хосте, также могут перестать отвечать на запросы. Однако не реагирующий на запросы хост сохраняет блокировку образов жестких дисков виртуальных машин, запущенных на нем. Попытка запустить виртуальную машину на втором хосте и назначить второму хосту права на запись в отношении образа жесткого диска виртуальной машины может привести к повреждению данных.
Изоляция позволяет Менеджеру управления предположить, что блокировка образа жесткого диска виртуальной машины была снята; и Менеджер управления может использовать агент изоляции, чтобы подтвердить, что проблемный хост был перезагружен. Получив подтверждение, Менеджер управления может запустить виртуальную машину с проблемного хоста на другом хосте без риска повреждения данных. Изоляция — это основа для работы виртуальных машин с признаком высокой доступности. Виртуальную машину, которая была отмечена признаком высокой доступности, нельзя безопасно запустить на другом хосте, если нет уверенности в том, что это не приведет к повреждению данных.
Когда хост перестает реагировать, Менеджер управления ждет 30 (тридцать) секунд, прежде чем принимать меры по восстановлению хоста после любых временных ошибок. Если хост не начал реагировать на запросы после периода ожидания, Менеджер управления автоматически начинает уменьшать негативное воздействие такого хоста. Менеджер управления использует агент изоляции применительно к карте управления питанием на хосте, чтобы остановить хост, подтвердить его остановку, запустить хост и подтвердить его запуск. Когда завершается начальная загрузка хоста, он пытается снова подсоединиться к кластеру, частью которого он был до того, как его изолировали. Если перезагрузка решила проблему, из-за которой хост не реагировал на запросы, то хост автоматически переводится в статус Включен (Up)
и снова может запускать и размещать виртуальные машины.
4.5. Программная изоляция хостов
Иногда хосты могут перестать реагировать на запросы из-за неожиданно возникшей проблемы, и хотя VDSM не может отвечать на запросы, виртуальные машины, зависящие от VDSM, остаются активными и доступными. В таких случаях перезапуск VDSM возвращает VDSM в рабочее состояние и устраняет проблему.
SSH Soft Fencing – это процесс, когда Менеджер управления пытается по SSH перезапустить VDSM на хостах, не реагирующих на запросы. Если Менеджеру управления не удается перезапустить VDSM по SSH, то задача изоляции возлагается на внешний агент изоляции, если он настроен.
Программная изоляция по SSH работает следующим образом. На хосте должна быть настроена и включена изоляция, и должен существовать допустимый прокси-хост (второй хост в состоянии Включен (Up)
в центре данных). Когда время ожидания для соединения между Менеджером управления и хостом истекает, происходит следующее:
-
При первом сбое сети статус хоста меняется на "Подключается (connecting)".
-
Затем Менеджер управления делает три попытки запросить статус у VDSM или ждет в течение интервала, определяемого нагрузкой на хост. Формула определения длительности интервала задается параметрами конфигурации TimeoutToResetVdsInSeconds (по умолчанию – 60 секунд) + [DelayResetPerVmInSeconds (по умолчанию – 0,5 секунд)] \* (количество работающих виртуальных машин на хосте) + [DelayResetForSpmInSeconds (по умолчанию – 20 секунд)] * 1 (если хост работает как SPM) или 0 (если хост не работает как SPM). Чтобы дать VDSM максимальное время для ответа, Менеджер управления выбирает более продолжительный из двух вышеупомянутых вариантов (три попытки получить статус VDSM или интервал, определяемый вышеприведенной формулой).
-
Если хост не реагирует и после истечения этого интервала, то по SSH выполняется
vdsm restart. -
Если
vdsm restartне помогает восстановить соединение между хостом и Менеджером управления, то статус хоста меняется на Не отвечает (Non Responsive)
и, если управление питанием настроено, задача изоляции передается внешнему агенту изоляции.
| Программную изоляцию по SSH можно выполнять на хостах, на которых не настроено управление питанием. Она отличается от просто изоляции, которая может выполняться только на хостах, на которых настроено управление питанием. |
4.6. Использование нескольких агентов изоляции управления питанием
Когда используется один агент, он считается первым. Второй агент задействуется, когда есть два агента изоляции, например, для хостов с двойным питанием, в которых к каждому коммутатору питания подключены два агента. Агенты могут быть одного или разных типов.
Когда на хосте несколько агентов изоляции, повышается надежность процесса изоляции. Например, при отказе единственного агента изоляции на хосте, хост будет неработоспособен до тех пор, пока его не перезагрузят вручную. Работа виртуальных машин, ранее запущенных на этом хосте, будет приостановлена, и они будут переключены на другой хост в кластере только после того, как исходный хост будет вручную изолирован. Когда используется несколько агентов, если первый агент выходит из строя, то можно задействовать следующего агента.
Если на хосте определены два агента изоляции, их можно настроить на параллельное или последовательное использование.
-
Параллельное (Concurrent): оба агента (первый и второй) должны отреагировать на команду Остановка (Stop), чтобы остановить хост. Если один агент отреагирует на команду Запуск (Start), то хост запустится.
-
Последовательное (Sequential): для запуска или остановки хоста сначала используется первый агент, а в случае его отказа — второй.
5. Балансировка нагрузки, планирование и миграция
5.1. Балансировка нагрузки, планирование и миграция
Отдельные хосты пользуются ограниченными аппаратными ресурсами и подвержены отказам. Чтобы предупредить отказы и нехватку ресурсов, хосты объединяют в кластеры, которые по сути представляют собой группу общих ресурсов. Политика балансировки нагрузки, планирования и миграции регулирует, как среда zVirt будет реагировать на изменение потребности в ресурсах хостов. Менеджер управления может сделать так, чтобы ни один хост в кластере не отвечал за все виртуальные машины в этом кластере. И наоборот, Менеджер управления способен распознать малоиспользуемый хост и перенести с него все виртуальные машины, позволяя администратору отключить этот хост для экономии электроэнергии.
Проверка доступных ресурсов происходит в трех случаях:
-
Запуск виртуальной машины. Ресурсы проверяются, чтобы определить, на каком хосте будет запущена виртуальная машина.
-
Миграция виртуальной машины. Ресурсы проверяются, чтобы определить подходящий целевой хост.
-
По расписанию. Ресурсы проверяются через равные промежутки времени, чтобы определить, соответствует ли загрузка отдельных хостов политике балансировки нагрузки кластера.
Менеджер управления реагирует на изменения в доступных ресурсах, применяя политику балансировки нагрузки для кластера, чтобы запланировать миграцию виртуальных машин с одного хоста в кластере на другой. В следующих разделах будет рассмотрено, как связаны между собой политика балансировки нагрузки, планирование и миграция виртуальных машин.
5.2. Политика балансировки нагрузки
Политика балансировки нагрузки устанавливается для кластера, который включает в себя один или несколько хостов, у каждого из которых могут быть различные аппаратные параметры и доступная память. Менеджер управления применяет политику балансировки нагрузки, чтобы определить, на каком хосте кластера запускать виртуальную машину. Политика балансировки нагрузки также позволяет Менеджеру управления определять, когда перемещать виртуальные машины с перегруженных хостов на недогруженные.
Процесс балансировки нагрузки выполняется раз в минуту для каждого кластера в центре данных. В результате определяется, какие хосты перегружены, какие недогружены и на какие из них можно перенести виртуальные машины. Все это рассчитывается на основе политики балансировки нагрузки, установленной администратором для конкретного кластера. Варианты политик балансировки нагрузки:
-
Равномерное распределение ВМ (VM_Evenly_Distributed)
-
Равномерное распределение (Evenly_Distributed)
-
Энергосбережение (Power_Saving)
-
Обслуживание кластера (Cluster_Maintenance)
-
Не назначена (None).
5.2.1. Политика балансировки нагрузки: Равномерное распределение ВМ (VM_Evenly_Distributed)
Эта политика распределяет виртуальные машины равномерно между хостами, исходя из количества виртуальных машин. Наибольшее число виртуальных машин — это максимальное количество виртуальных машин, которое может работать на каждом хосте и превышение которого считается перегрузкой хоста. Политика Равномерного распределения ВМ (VM_Evenly_Distributed) позволяет администратору задать наибольшее число виртуальных машин для хостов. Максимальную разницу (включительно) между количеством виртуальных машин на наиболее загруженном и наименее загруженном хостах тоже может задать администратор. Кластер сбалансирован, если для каждого хоста в кластере количество виртуальных машин не превышает этого порога миграции. Кроме того, администратор определяет количество слотов для виртуальных машин, которые должны быть зарезервированы на хостах SPM. Загрузка на хосте SPM будет ниже, чем на других хостах, т.е. эта переменная определяет, насколько меньше виртуальных машин может работать на хосте SPM по сравнению с другими хостами. Если на каком-либо хосте количество работающих виртуальных машин превышает наибольшее число виртуальных машин, и хотя бы на одном хосте количество виртуальных машин превышает порог миграции, то виртуальные машины по одной перемещаются на тот хост в кластере, который потребляет меньше всего ресурсов ЦП. Виртуальные машины будут переноситься одна за другой до тех пор, пока на каждом хосте в кластере количество виртуальных машин не опустится ниже порога миграции.
5.2.2. Политика балансировки нагрузки: Равномерное распределение (Evenly_Distributed)
Согласно этой политике для новых виртуальных машин выбираются хосты с наименьшей загрузкой ЦП или наибольшим объемом доступной оперативной памяти. Максимальная загрузка ЦП и наименьший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, устанавливаются параметрами политики планирования "равномерное распределение". При выходе за эти пределы производительность среды будет снижаться. Политика равномерного распределения позволяет администратору задать эти уровни для работающих виртуальных машин. Если загрузка ЦП или объем доступной памяти на хосте достигли заданного предельного значения и сохраняются на этом уровне дольше установленного времени, то виртуальные машины одна за другой переносятся с этого хоста на тот хост в кластере, у которого наименьшая загрузка ЦП или наибольший объем доступной памяти, в зависимости от того, что из этого потребляется. Ресурсы хоста проверяются каждую минуту, и виртуальные машины переносятся одна за другой до тех пор, пока загрузка ЦП или объем доступной памяти на хосте не вернутся в норму.
5.2.3. Политика балансировки нагрузки: Энергосбережение (Power_Saving)
Согласно этой политике для новых виртуальных машин выбираются хосты с наименьшей загрузкой ЦП или наибольшим объемом доступной оперативной памяти. Максимальная загрузка ЦП и наименьший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, устанавливаются параметрами политики планирования "энергосбережение". При выходе за эти пределы производительность среды будет снижаться. Параметры энергосбережения также устанавливают минимальную загрузку ЦП и наибольший объем доступной памяти, допустимые для хостов в кластере в течение определенного времени, прежде чем дальнейшая работа хоста будет признана неэффективным расходованием электроэнергии. Если загрузка ЦП или наименьший объем доступной памяти на хосте достигли предельного значения и сохраняются на этом уровне дольше установленного времени, то виртуальные машины одна за другой переносятся с этого хоста на тот хост, у которого наименьшая загрузка ЦП или наибольший объем доступной памяти, в зависимости от того, что из этого потребляется. Ресурсы хоста проверяются каждую минуту, и виртуальные машины переносятся одна за другой до тех пор, пока загрузка ЦП или объем доступной памяти на хосте не вернутся в норму. Если загрузка ЦП хоста падает ниже заданного минимального уровня или объем доступной памяти хоста поднимается выше заданного максимального уровня, то виртуальные машины будут переноситься с этого хоста на другие хосты в кластере до тех пор, пока на других хостах в кластере загрузка ЦП и объем доступной памяти будут оставаться в пределах нормы. Когда на недогруженном хосте не останется виртуальных машин, Менеджер управления автоматически отключит питание на хосте и перезапустит его снова, когда потребуется балансировка нагрузки или в кластере не будет достаточно свободных хостов.
5.2.4. Политика балансировки нагрузки: Не назначен (None)
Если политика балансировки нагрузки не выбрана, то виртуальные машины запускаются на хосте в кластере с наименьшей загрузкой ЦП и доступной памятью. Для определения загрузки ЦП используется группа показателей, при этом учитывается количество виртуальных ЦП и процент загрузки ЦП. Такой подход наименее динамичен, поскольку единственный момент выбора хоста — это момент запуска новой виртуальной машины. Виртуальные машины не переносятся автоматически при повышении требований к хосту.
Администратор должен решить, на какой хост лучше переместить определенную виртуальную машину. Виртуальные машины также могут быть ассоциированы с определенным хостом с помощью закрепления. Закрепление не дает виртуальной машине автоматически перемещаться на другие хосты. В средах с интенсивным потреблением ресурсов лучше всего использовать ручную миграцию.
5.2.5. Политика балансировки нагрузки: Обслуживание кластера (Cluster_Maintenance)
Эта политика ограничивает активность в кластере во время выполнения задач технического обслуживания. Когда задана политика обслуживания кластера:
-
нельзя запускать новые виртуальные машины, кроме виртуальных машин с признаком высокой доступности (пользователи могут создавать виртуальные машины с признаком высокой доступности и запускать их вручную).
-
в случае отказа хоста виртуальные машины с признаком высокой доступности перезапустятся в установленном порядке, и любую виртуальную машину можно будет переместить.
5.3. Резервирование виртуальных машин с признаком высокой доступности
Политика резервирования виртуальных машин с признаком высокой доступности позволяет Менеджеру управления отслеживать ресурсы кластера для виртуальных машин с признаком высокой доступности. Менеджер управления может помечать отдельные виртуальные машины как обладающие признаком высокой доступности, т.е. в случае отказа хоста эти виртуальные машины будут перезагружены на альтернативном хосте. Эта политика позволяет равномерно распределять виртуальные машины с признаком высокой доступности между хостами в кластере. В случае отказа какого-либо хоста в кластере оставшиеся хосты смогут принять нагрузку виртуальных машин с признаком высокой доступности без ущерба для производительности кластера. Когда включено резервирование виртуальных машин с признаком высокой доступности, Менеджер управления обеспечивает наличие достаточных ресурсов в кластере для виртуальных машин с признаком высокой доступности, чтобы перенести их в случае внезапного отказа их текущего хоста.
5.4. Планирование
В zVirt под планированием понимается то, как Менеджер управления выбирает в кластере хост для новой или перемещаемой виртуальной машины.
У подходящего хоста должно быть достаточно свободной памяти и ресурсов ЦП, чтобы удовлетворить требования виртуальной машины, которая будет запущена на нем или перемещена на него. Виртуальная машина не запустится на хосте с перегруженным ЦП. По умолчанию ЦП хоста считается перегруженным, если нагрузка на него превышает 80% в течение 5 минут, но эти значения можно изменить с помощью политик планирования. Если подходит несколько хостов, то один из них будет выбран согласно политике балансировки нагрузки для кластера. Например, если действует политика "Равномерное распределение" (Evenly_Distributed), то Менеджер управления выбирает хост с наименьшей загрузкой ЦП. Если действует политика "Энергосбережение" (Power_Saving), то будет выбран хост с наименьшей загрузкой ЦП и попадающий в диапазон между максимальным и минимальным уровнями обслуживания. Статус SPM конкретного хоста также влияет на то, насколько хост подходит для запуска новых или приема перемещаемых виртуальных машин. В качестве приемника предпочтительнее хост без статуса SPM, например, первая виртуальная машина, запущенная в кластере, не будет запускаться на хосте SPM, если роль SPM принадлежит хосту в этом кластере.
Дополнительную информацию см. в разделе Политики планирования руководства администратора.
5.5. Миграция
Менеджер управления прибегает к миграции, чтобы обеспечить соблюдение политик балансировки нагрузки для кластера. Миграция виртуальных машин происходит в соответствии с политикой балансировки нагрузки для кластера и текущими требованиями к хостам в кластере. Можно также настроить автоматическое выполнение миграции на случай изоляции хоста или его перевода в режим обслуживания. Менеджер управления сначала переносит виртуальные машины с наименьшей загрузкой ЦП. Она рассчитывается в процентах, при этом не учитывается использование ОЗУ или операций ввода-вывода, кроме тех случаев, когда операции ввода-вывода влияют на загрузку ЦП. Если у нескольких виртуальных машин загрузка ЦП одинаковая, то первой будет перенесена та, по которой первой придет ответ на запрос Менеджера управления к базе данных, сделанный для определения использования ЦП виртуальной машины.
По умолчанию при миграции виртуальных машин действуют следующие ограничения:
-
Полоса пропускания при миграции каждой виртуальной машины ограничена 52 МиБ/с.
-
Таймаут миграции составляет 64 секунды на каждый ГБ памяти виртуальной машины.
-
Миграция будет отменена, если ее процесс замрет на 240 секунд.
-
При параллельных исходящих миграциях возможна либо только одна миграция на каждое ядро ЦП на каждый хост, либо две миграции в совокупности – в зависимости от того, что меньше.
6. Службы каталогов
6.1. Службы каталогов
Платформа zVirt использует службы каталогов для аутентификации и авторизации пользователей. Взаимодействие со всеми интерфейсами Менеджера управления, включая Пользовательский портал, Портал администрирования и REST API, разрешено только авторизованным пользователям, прошедшим аутентификацию. Виртуальные машины в среде zVirt могут использовать одни и те же службы каталогов для аутентификации и авторизации, однако для этого они должны быть соответствующим образом настроены. В настоящее время с Менеджером управления могут использоваться следующие поставщики служб каталогов:
-
389ds
-
389ds RFC-2307 Schema
-
Active Directory
-
IBM Security Directory Server
-
IBM Security Directory Server RFC-2307 Schema
-
IPA
-
Novell eDirectory RFC-2307 Schema
-
OpenLDAP RFC-2307 Schema
-
OpenLDAP Standard Schema
-
Oracle Unified Directory RFC-2307 Schema
-
RFC-2307 Schema (Generic)
-
RHDS
-
RHDS RFC-2307 Schema
-
iPlanet
Менеджер управления взаимодействует с сервером каталогов для:
-
обеспечения входа на Портал (User, SuperUser, Admin, REST API)
-
обработки запросов на отображение информации о пользователях
-
добавления Менеджера управления в домен
Аутентификация – это проверка и идентификация стороны, которая сгенерировала те или иные данные, и целостности этих данных.
Принципал – сторона, чья личность проверяется.
Верификатор – сторона, требующая подтверждения личности принципала. В случае zVirt Менеджер управления – это верификатор, а пользователь – принципал.
Целостность данных – это гарантия того, что полученные данные совпадают с данными, сгенерированными принципалом.
Конфиденциальность и авторизация тесно связаны с аутентификацией. Конфиденциальность защищает данные от раскрытия тем, кто не должен их получить. Обеспечить повышенную конфиденциальность можно с помощью надежных методов аутентификации. Авторизация определяет, разрешено ли принципалу выполнять операцию. zVirt использует службы каталогов для соотнесения пользователей с ролями и обеспечения авторизации соответственно. Авторизация обычно выполняется после аутентификации принципала и может основываться на информации, которая является локальной или удаленной по отношению к верификатору.
В процессе установки локальный внутренний домен автоматически настраивается на администрирование среды zVirt. После завершения установки можно добавить еще домены.
6.2. Локальная аутентификация: Внутренний домен (internal)
В процессе установки Менеджер управления создает ограниченный внутренний домен администрирования. Этот домен отличается от домена AD или IdM, поскольку он существует на основе ключа в БД PostgreSQL, входящей в zVirt, а не как пользователь службы каталогов на сервере каталогов. Внутренний домен отличается и от внешнего тем, что в нем будет только один пользователь: admin@internal. Такой подход к первоначальной аутентификации позволяет попробовать zVirt без использования полнофункционального сервера каталогов и обеспечивает наличие административной учетной записи, необходимой для устранения любых проблем с внешними службами каталогов.
Пользователь admin@internal предназначен для начального конфигурирования среды, в которое входит установка хостов и включение их в домен, добавление внешних доменов аутентификации AD или IdM и делегирование разрешений пользователям из внешних доменов.
6.3. Удаленная аутентификация по GSSAPI
В zVirt под удаленной аутентификацией понимается аутентификация, обрабатываемая удаленной службой, а не Менеджером управления. Удаленная аутентификация используется для подключения пользователей или API к Менеджеру управления, инициируемых из домена AD, IdM или RHDS.
Администратор должен настроить Менеджер управления с помощью инструмента ovirt-engine-extension-aaa-ldap-setup, чтобы сделать его частью домена RHDS, AD или IdM. Для этого нужно, чтобы Менеджеру управления были выданы учетные данные для учетной записи из сервера каталогов RHDS, AD или IdM для домена с достаточными привилегиями для включения системы в домен. После добавления доменов Менеджер управления может аутентифицировать пользователей домена на сервере каталогов по паролю. Менеджер управления использует фреймворк "Уровень простой аутентификации и безопасности (Simple Authentication and Security Layer, SASL)", который, в свою очередь, использует Общий API сервисов безопасности (Generic Security Services Application Program Interface, GSSAPI) для безопасной проверки личности пользователя и определения доступного ему уровня авторизации.
7. Шаблоны и пулы
7.1. Шаблоны и пулы
Среда zVirt предлагает администраторам инструменты, упрощающие предоставление виртуальных машин пользователям, а именно шаблоны и пулы. Шаблон – это ярлык, который позволяет администратору быстро создать новую виртуальную машину на основе существующей и уже настроенной виртуальной машины, минуя установку и настройку операционной системы. Это особенно полезно для виртуальных машин, которые будут использоваться как прикладное решение (например, для виртуальных веб-серверов). Если в организации используется много экземпляров конкретного веб-сервера, администратор может создать виртуальную машину для использования в качестве шаблона, установив операционную систему, веб-сервер, любые вспомогательные пакеты и применив уникальные изменения конфигурации. Затем администратор может создать на основе работающей виртуальной машины шаблон, который будет использоваться для создания новых идентичных виртуальных машин по мере необходимости.
Пулы виртуальных машин – это группы виртуальных машин, которые основаны на заданном шаблоне и которые можно быстро предоставить пользователям. Разрешение на использование виртуальных машин в пуле дается на уровне пула: пользователю, которому дано разрешение на использование пула, будет назначена любая виртуальная машина из пула. В силу особенностей работы пула данные после сессии конкретного пользователя не сохраняются в ВМ. Поскольку виртуальные машины назначаются пользователям без учета того, какую виртуальную машину в пуле они использовали в прошлом, пулы не подходят для задач, требующих сохраняемости данных. Пулы виртуальных машин лучше всего подходят для задач, когда пользовательские данные хранятся централизованно, а для доступа к ним и их использования нужна виртуальная машина, или когда сохраняемость данных не важна. Пул создается вместе с виртуальными машинами, которые в него входят и после создания остаются в остановленном состоянии. Затем по запросу пользователя они запускаются.
7.2. Шаблоны
Чтобы создать шаблон, администратор создает виртуальную машину и выполняет ее индивидуальную настройку. Устанавливаются нужные пакеты, применяются индивидуальные настройки, и виртуальная машина подготавливается к целевому использованию, чтобы минимизировать изменения, которые придется вносить в нее после развертывания. Необязательным (но рекомендуемым) шагом перед созданием шаблона из виртуальной машины является генерализация. Генерализация призвана удалить такие сведения, как имена пользователей системы, пароли и информацию о часовом поясе, которые изменятся при развертывании. Генерализация не влияет на индивидуальные настройки. Генерализация гостевых машин Windows и Linux в среде zVirt обсуждается в разделе Шаблоны в Руководстве по управлению виртуальными машинами. Для генерализации гостевых машин Linux используется virt-sysprep. Для генерализации гостевых машин Windows используется sys-prep.
Когда виртуальная машина, являющаяся основой для шаблона, удовлетворительно настроена, генерализирована (если нужно) и остановлена, администратор может создать из нее шаблон. При создании шаблона из виртуальной машины создается доступная только для чтения копия специально настроенного виртуального диска. Образ, доступный только для чтения, выступает в качестве базового для всех создаваемых впоследствии виртуальных машин, основанных на этом шаблоне. Иными словами, шаблон – это по сути индивидуально настроенный виртуальный диск, доступный только для чтения, с соответствующей конфигурацией виртуального оборудования. Оборудование виртуальных машин, созданных из шаблона, можно менять (например, выделить 2 ГБ ОЗУ виртуальной машине, созданной из шаблона с 1 ГБ ОЗУ). Однако виртуальный диск шаблона нельзя изменить, так как это приведет к изменению всех виртуальных машин на основе этого шаблона.
После создания шаблона его можно использовать как основу для множества виртуальных машин. При создании виртуальной машины из заданного шаблона можно выбрать тип выделяемого диска - тонкий (thin) или клонированный (clone). Виртуальные машины, клонируемые из шаблонов, используют полную копию базового образа шаблона, допускающую запись. Хотя они и не экономят место (в отличие от динамического выделения), зато не зависят от наличия шаблона. Виртуальные машины, создаваемые из шаблона способом динамического выделения, используют образ из шаблона, доступный только для чтения, в качестве базового образа. При этом требуется, чтобы шаблон и все созданные на его основе виртуальные машины хранились в одном домене хранения. Изменения данных и вновь сгенерированные данные сохраняются в образе с возможностью копирования при записи. Каждая виртуальная машина на основе шаблона использует один и тот же базовый образ, доступный только для чтения, а также уникальный для виртуальной машины образ с возможностью копирования при записи. Это экономит пространство за счет ограничения числа копий идентичных данных, хранящихся в хранилище. Кроме того, при частом использовании базового образа, доступного только для чтения, данные, к которым производится обращение, могут начать кэшироваться, что выльется в чистый рост производительности.
7.3. Пулы
Пулы виртуальных машин позволяют быстро предоставлять пользователям множество одинаковых виртуальных машин в качестве рабочих станций. Пользователи, у которых есть разрешение на доступ к виртуальным машинам из пула и их использование, получают доступную виртуальную машину, исходя из их положения в очереди запросов. Виртуальные машины в пуле не допускают сохранения данных. При каждом назначении виртуальной машины из пула она выделяется в своем базовом состоянии. Это идеально подходит для ситуаций, когда пользовательские данные хранятся централизованно.
Пулы виртуальных машин создаются из шаблона. Каждая виртуальная машина в пуле использует один и тот же базовый образ, доступный только для чтения, и временный образ, допускающий копирование при записи, для хранения измененных и вновь сгенерированных данных. Виртуальные машины в пуле отличаются от других виртуальных машин тем, что слой копирования при записи, который содержит сгенерированные пользователем и измененные данные, теряется при выключении виртуальной машины. Из этого следует, что для хранения пула виртуальных машин нужно столько же места, что и для его базового шаблона, плюс некоторое пространство для данных, сгенерированных или измененных за время использования. Пулы виртуальных машин – это эффективный способ предоставления вычислительной мощности пользователям для решения ряда задач без затрат на хранение, связанных с предоставлением каждому пользователю выделенной виртуальной рабочей станции.
Компания, оказывающая услуги технической поддержки, держит в штате 10 специалистов. Однако в любой заданный момент времени работают только 5 из них. Вместо того, чтобы создавать 10 виртуальных машин (по одной на каждого сотрудника службы поддержки), можно создать пул из 5 виртуальных машин. Сотрудники службы поддержки выделяют себе виртуальную машину в начале смены и возвращают ее в пул в конце смены.
8. Снимки виртуальных машин
8.1. Снимки
Снимки – это функция хранилища, которая позволяет администратору создать точку восстановления ОС, приложений и данных виртуальной машины на определенный момент времени. Снимки сохраняют данные, присутствующие в настоящий момент в образе жесткого диска виртуальной машины, в виде тома COW, что позволяет восстановить данные, существовавшие на момент создания снимка. При создании снимка поверх текущего слоя создается новый слой COW. Все операции записи, выполняемые после создания снимка, записываются в новый слой COW.
Важно понимать, что образ жесткого диска виртуальной машины представляет собой цепочку из одного или нескольких томов. С точки зрения виртуальной машины эти тома выглядят как один образ диска. Виртуальная машина не обращает внимания на то, что ее диск состоит из нескольких томов.
Термины "том COW" и "слой COW" используются взаимозаменяемо, однако "слой" точнее отражает временный характер снимков. Каждый снимок создается для того, чтобы администратор смог отменить неудовлетворительные изменения, внесенные в данные после его создания. Снимки обеспечивают функциональность, аналогичную функции Отменить (Undo), присутствующей во многих текстовых процессорах.
| Снимки жестких дисков виртуальных машин, помеченных как общие (shareable), а также тех, которые основаны на подключении Прямых LUN (Direct LUN), нельзя сделать ни "на лету", ни как-либо иначе. |
Три основные операции с снимками:
-
Создание, которое включает в себя первый снимок, созданный для виртуальной машины.
-
Предварительный просмотр, который включает в себя собственно предварительный просмотр снимка с целью определить, следует ли восстанавливать системные данные на момент времени, когда был сделан этот снимок.
-
Удаление, которое включает в себя удаление точки восстановления, которая больше не требуется.
Сведения об операциях с снимками применительно к конкретным задачам см. в разделе Снимки Руководства по управлению виртуальными машинами.
8.2. Снимки "на лету" в zVirt
Снимки жестких дисков виртуальных машин, помеченных как общие (shareable), а также тех, которые основаны на подключении Прямых LUN (Direct LUN), нельзя сделать ни "на лету", ни как-либо иначе.
Снимок любой другой виртуальной машины, которая не находится в процессе клонирования или миграции, можно сделать во время ее работы, приостановки или остановки.
Когда инициируется создание снимка виртуальной машины "на лету", Менеджер управления отправляет хосту SPM запрос на создание нового тома, который будет использоваться виртуальной машиной. Когда новый том готов, Менеджер управления использует VDSM для связи с libvirt и qemu на хосте, где запущена виртуальная машина, чтобы он начал использовать новый том для операций записи виртуальной машины. Если виртуальная машина может писать в новый том, то операция создания снимка считается успешной и виртуальная машина прекращает писать в предыдущий том. Если виртуальная машина не может писать в новый том, то операция создания снимка считается неуспешной и новый том удаляется.
С момента начала создания снимка "на лету" до момента готовности нового тома виртуальной машине требуется доступ как к своему текущему, так и к новому тому, поэтому оба тома открыты как на чтение, так и на запись.
Виртуальные машины с установленным гостевым агентом, поддерживающим "заморозку", могут обеспечить согласованность файловой системы по всем снимкам. Зарегистрированные гостевые машины Linux могут устанавливать qemu-guest-agent, чтобы включить "заморозку" перед созданием снимков.
Если во время создания снимка на виртуальной машине присутствует гостевой агент, совместимый с "заморозкой", то VDSM использует libvirt для связи с агентом, чтобы подготовиться к созданию снимка. Незавершенные операции записи завершаются, после чего файловые системы "замораживаются" перед созданием снимка. Когда создание снимка завершено и libvirt переключает виртуальную машину на новый том для выполнения операций записи на диск, файловая система "размораживается" и запись на диск возобновляется.
Все попытки создания снимков "на лету" делаются с включенной "заморозкой". Если команда создания снимка завершается неудачно из-за отсутствия совместимого гостевого агента, то создание снимка "на лету" инициируется повторно без использования флага "заморозки использования". Когда виртуальная машина возвращается в состояние до создания снимка с "замороженными" файловыми системами, выполняется ее чистая загрузка и проверка файловой системы не требуется. Если же виртуальная машина восстанавливается с предыдущего снимка без "заморозки" файловой системы, то требуется проверка файловой системы при загрузке.
8.3. Создание снимка
В zVirt первоначальный снимок виртуальной машины отличается от последующих снимков тем, что первоначальный снимок сохраняет свой формат: либо QCOW2, либо RAW. Первый снимок виртуальной машины использует существующие тома в качестве базового образа. Дополнительные снимки – это дополнительные слои COW, отслеживающие изменения, которые после создания предыдущего снимка были внесены в данные, хранящиеся в образе.
Как показано на рисунке Создание первоначального снимка, при создании снимка - тома, составляющие виртуальный диск, служат базовым образом для всех последующих снимков.
При создании последующих (после первоначального) снимков создаются новые тома COW, в которых будут храниться данные, созданные или измененные после создания снимка. Каждый вновь создаваемый слой COW содержит только метаданные COW. Данные, созданные в процессе использования и работы виртуальной машины после создания снимка, пишутся в этот новый слой COW. Когда виртуальная машина используется для изменения данных, существующих в предыдущем слое COW, данные читаются с предыдущего слоя и пишутся на самый новый слой. Виртуальные машины находят данные, проверяя каждый слой COW от самого нового до самого старого, причем это происходит прозрачно для виртуальной машины.
8.4. Предварительный просмотр снимков
Чтобы выбрать снимок для восстановления виртуального диска с него, администратор может предварительно просмотреть все ранее созданные снимки.
Из доступных каждой гостевой машине снимков администратор может выбрать том снимка для предварительного просмотра его содержимого. Как показано на рисунке Предварительный просмотр снимков, каждый снимок сохраняется как том COW, и при предварительном просмотре новый слой предварительного просмотра копируется из просматриваемого снимка. Гостевая машина взаимодействует с предварительным просмотром, а не с фактическим томом снимка.
После предварительного просмотра выбранного снимка администратор может "закрепить" слой предварительного просмотра и восстановить с него данные гостевой машины до состояния, зафиксированного на снимке. В таком случае гостевая машина подключается к слою предварительного просмотра.
Завершив предварительный просмотр снимка, администратор может выбрать Отменить (Undo), чтобы удалить слой предварительного просмотра снимка. Слой, содержащий сам снимок, сохраняется, несмотря на удаление слоя предварительного просмотра.
8.5. Удаление снимка
Отдельные снимки, которые больше не нужны, можно удалить. После удаления снимка нельзя уже будет восстановить виртуальный диск до соответствующей точки восстановления. При этом не обязательно освобождается место на диске, которое занимал снимок, и не удаляются данные. Дисковое пространство будет освобождено только в том случае, если последующий снимок перезапишет данные удаленного. Если, например, удаляется третий снимок из пяти, то неизмененные данные третьего снимка должны быть сохранены на диске, чтобы можно было использовать четвертый и пятый снимки. Однако если четвертый или пятый снимок перезаписал данные третьего, то третий снимок становится избыточным и дисковое пространство можно освободить. Помимо возможного освобождения дискового пространства, удаление снимка также может повысить производительность виртуальной машины.
Удаление снимка обрабатывается как асинхронное блочное задание, в котором VDSM протоколирует операцию в файле восстановления для виртуальной машины, чтобы задание можно было отследить, даже если VDSM перезапустится или виртуальная машина выключится во время операции. После начала операции удаляемый снимок нельзя просмотреть или использовать в качестве точки восстановления, даже если операция завершится сбоем или будет прервана. В операциях, в которых активный слой должен быть объединен со своим родительским слоем, операция разбивается на два этапа, во время которых данные копируются с активного слоя на родительский, а запись на диск зеркалируется как на активном, так и на родительском слое. Наконец, задание считается выполненным после того, как данные в удаляемом снимке будут объединены с его родительским снимком, а VDSM синхронизирует изменения по всей цепочке образов.
| Если попытка удаления неудачна, устраните основную проблему (например, отказ хоста, недоступность устройства хранения или даже временную проблему с сетью) и повторите попытку. |
9. Драйверы оборудования и устройства
9.1. Виртуализированное оборудование
zVirt представляет три разных типа системных устройств виртуализированным гостевым машинам. Все эти аппаратные устройства отображаются для виртуализированной гостевой машины как физически подключенные аппаратные устройства, но драйверы устройств работают по-разному.
- Эмулируемые устройства
-
Эмулируемые устройства, иногда называемые виртуальными, существуют целиком и полностью в программном виде. Драйверы эмулируемых устройств представляют собой слой трансляции между операционной системой, работающей на хосте (которая управляет исходным устройством), и операционными системами, работающими на гостевых машинах. Инструкции уровня устройства, поступающие на эмулируемое устройство и с него, перехватываются и транслируются гипервизором. Любое устройство того же типа, что и эмулируемое и распознаваемое ядром Linux, можно использовать в качестве базового исходного устройства для эмулируемых драйверов.
- Паравиртуализированные устройства
-
Для паравиртуализированных устройств требуется установка драйверов устройств в гостевой операционной системе, предоставляющих ей интерфейс для связи с гипервизором на хосте. Этот интерфейс используется, например, для задач с традиционно интенсивным вводом-выводом, выполняемых вне среды виртуализации. Такой способ снижения присущих виртуализации накладных расходов призван приблизить производительность гостевой операционной системы к производительности, ожидаемой при работе непосредственно на физическом оборудовании.
- Совместно используемые физические устройства
-
Некоторые аппаратные платформы позволяют виртуализированным гостевым машинам напрямую обращаться к различным аппаратным устройствам и компонентам. Этот процесс в виртуализации называется сквозным доступом или назначением устройств. Сквозной доступ позволяет устройствам отображаться и вести себя так, как если бы они были физически подключены к гостевой операционной системе.
9.2. Устойчивые адреса устройств в zVirt
Назначенные виртуальному оборудованию PCI-адреса сохраняются в базе данных ovirt-engine.
QEMU назначает PCI-адреса при создании виртуальной машины, а libvirt передает их в VDSM. VDSM передает их обратно Менеджеру управления, где они и хранятся в базе данных ovirt-engine.
Когда виртуальная машина запускается, Менеджер управления извлекает из базы данных адрес устройства и отправляет его в VDSM. VDSM передает их в libvirt, который запускает виртуальную машину, используя PCI-адреса устройств, назначенные при первом запуске виртуальной машины.
Когда устройство удаляется из виртуальной машины, все ссылки на него, включая устойчивый PCI-адрес, также удаляются. Если для замены удаленного устройства добавляется другое устройство, QEMU назначает ему PCI-адрес, который вряд ли будет совпадать с адресом удаленного устройства.
9.3. Центральный процессор (ЦП)
Каждый хост в кластере имеет несколько виртуальных ЦП (vCPU), которые, в свою очередь, предоставляются гостевым машинам, работающим на хостах. Все виртуальные ЦП, предоставляемые хостами в кластере, относятся к типу, выбранному при первоначальном создании кластера с помощью Менеджера управления. Смешивание типов виртуальных ЦП в кластере невозможно.
Характеристики каждого доступного типа виртуального ЦП основаны на одноименных физических ЦП. Для гостевой операционной системы виртуальный ЦП неотличим от физического.
9.4. Системные устройства
Системные устройства имеют ключевое значение для работы гостевой машины и не могут быть удалены. Каждое системное устройство, подключенное к гостевое машине, также занимает доступный PCI-слот. Системные устройства по умолчанию:
-
Мост хоста
-
Мост ISA и мост USB (мосты USB и ISA – это одно и то же устройство)
-
Графическая карта, использующая драйвер VGA или qxl
-
Устройство балунинга памяти
9.5. Сетевые устройства
zVirt может предоставлять гостевым машинам сетевые карты трех типов. Тип сетевой карты, предоставляемой гостевой машине, выбирается при создании гостевой машины, но его можно изменить в Менеджере управления.
-
Сетевая карта e1000 предоставляет гостевым машинам виртуализированное устройство Intel PRO/1000 (e1000).
-
Сетевая карта virtio предоставляет гостевым машинам паравиртуализированное устройство.
-
Сетевая карта rtl8139 предоставляет гостевым машинам виртуализированное устройство Realtek Semiconductor Corp RTL8139.
Одна гостевая машина может иметь несколько сетевых карт. Каждая добавляемая сетевая карта занимает свободный PCI-слот гостевой машины.
9.6. Графические устройства
Для подключения к эмулируемым графическим устройствам можно использовать графические протоколы SPICE или VNC.
На Портале администрирования можно выбрать Тип видео (Video Type):
-
QXL: Эмулирует паравиртуализированную видеокарту, которая лучше всего работает с гостевыми драйверами QXL.
-
VGA: Эмулирует фиктивную карту VGA с VESA-расширениями Bochs
-
BOCHS: Эмулирует фиктивную карту VGA без устаревшей эмуляции для гостевых машин с UEFI. Этот эмулятор видеокарты дисплея используется по умолчанию для серверов UEFI.
Выбор типа видео влияет на доступность соответствующих графических протоколов. В zVirt 4.X сопоставление видео - протокол следующее:
-
QXL - SPICE и VNC
-
VGA - VNC
-
BOCHS - VNC
9.7. Устройства хранения
Устройства хранения и пулы хранения могут использовать драйверы блочных устройств для подключения устройств хранения к виртуализированным гостевым машинам. Обратите внимание, что драйверы устройств хранения – это не устройства хранения. Драйверы используются для подключения базового устройства хранения, файла или тома пула хранения к виртуализированной гостевой машине. Базовым устройством хранения может быть любой поддерживаемый тип устройства хранения, файла или тома пула хранения.
-
Драйвер IDE предоставляет эмулируемое блочное устройство гостевым машинам. Эмулируемый драйвер IDE позволяет подключить до 4 виртуализированных жестких дисков IDE или виртуализированных CD-ROM приводов IDE (в любой комбинации) к каждой виртуализированной гостевой машине. Эмулируемый драйвер IDE также используется для предоставления виртуализированных дисков DVD-ROM.
-
Драйвер VirtIO предоставляет паравиртуализированное блочное устройство гостевым машинам. Паравиртуализированный блочный драйвер – это драйвер для всех устройств хранения, поддерживаемых гипервизором и подключенных к виртуализированной гостевой машине (за исключением дисководов гибких дисков, которые необходимо эмулировать).
9.8. Звуковые устройства
Доступны два эмулируемых звуковых устройства:
-
Так, ac97 эмулирует звуковую карту, совместимую с Intel 82801AA AC97 Audio.
-
А es1370 эмулирует звуковую карту ENSONIQ AudioPCI ES1370.
9.9. Последовательный драйвер
Паравиртуализированный последовательный драйвер (virtio-serial) – это драйвер байтового и символьного потоков. Паравиртуализированный последовательный драйвер обеспечивает простой интерфейс между пользовательским пространством хоста и пользовательским пространством гостевой машины в случаях, когда сетевое подключение недоступно или непригодно для использования.
9.10. Драйвер балунинга
Драйвер балунинга позволяет гостевым машинам сообщать гипервизору, сколько памяти им требуется. Драйвер балунинга позволяет хосту эффективно выделять и освобождать память на гостевой машине, а также делает возможным выделение свободной памяти другим гостевым машинам и процессам.
Гостевые машины, использующие драйвер балунинга, могут помечать разделы ОЗУ гостевой машины как неиспользуемые (уменьшение выделяемой области). Гипервизор может освобождать память и использовать ее для других процессов хоста или других гостевых машин на этом хосте. Когда гостевой машине снова потребуется освобожденная память, гипервизор может снова выделить ОЗУ гостевой машине (увеличение выделяемой области).