QEMU-KVM и NUMA-архитектура

Кратко о NUMA-архитектуре.

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

Так вот, у каждого процессора(не ядра а именно процессора), есть встроенный контроллер памяти(либо он совсем близко) и подключенный через него банк памяти к которому у этого процессора есть максимально быстрый доступ. Это собственно и есть NUMA-нода №0.

У других процессоров(при наличии таковых) так же есть встроенный контроллер и «локальная» память и это такие же NUMA-ноды №N в рамках одного сервера.
Проблема NUMA в том, что доступ процессора из ноды 0 к памяти ноды 1 в два раза медленнее чем к своей, локальной памяти.

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

В общем, в идеале, каждый из процессов должен выполняться в рамках одной какой то ноды и не «прыгать» между ними.

Читать дальше

oVirt

ovirt-logo

Наконец выдалась возможность поработать с oVirt.
Платформа повзрослела и стала пригодна для использования.
В статьях будет рассмотрена архитектура, выполнена установка и настройка а так же выявлены некоторые особенности, к сожалению а может и к счастью, не самой популярной сегодня платформы виртуализации.

Читать дальше

oVirt часть 7. Интеграция с LDAP

oVirt. все статьи цикла

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

Подключение LDAP-каталога

Прежде чем выполнить подключение, необходимо создать пользователя (например ovirtadmin) в LDAP-каталоге от имени которого Engine будет взаимодействовать с ним.

Примечание: Если это Active Directory, то в идеале необходимы права на ввод компьютеров в домен. Пользователь не должен находиться в контейнере Builtin.

Далее необходимо войти в консоль сервера Engine и выполнить следующую команду (соответственно подставив свои данные):

# engine-manage-domains add --domain='mydomain.com' --provider=ad --user='ovirtadmin@mydomain.com'

Читать дальше

oVirt часть 6. Создание ВМ

oVirt. все статьи цикла

Теперь на вкладке Virtual Machines можно создавать ВМ. Все параметры разбиты по разделам и позволяют быстро понять что где особенно если ранее уже приходилось сталкиваться с платформами виртуализации.
Не обычным пожалуй является только то, что настройка диска осуществляется после создания ВМ в отдельном мастере, который будет предложено запустить сразу после создания ВМ. Так же диски различной конфигурации можно предварительно создать на вкладке Disks.

Еще один интересной особенностью является параметр Watchdog (См. рис.1). Он позволяет добавить виртуальную Watchdog-карту периодически “опрашивающую” ВМ и выполняющую одно из доступных действий в случае если ВМ не отвечает. Это позволяет например автоматически перезагрузить ВМ при ее зависании.

Читать дальше

oVirt часть 5. Общее хранилище

oVirt. все статьи цикла

Здесь довольно большой выбор что сильно отличает oVirt от конкурентов. Поддерживаются iSCSI, FC, NFS, а так же POSIX compliant file systems (POSIX-совместимые ФС — BtrFS, ReiserFS, Ext2, Ext3, XFS) и GlusterFS которой посвящен отдельный раздел.

Я предполагаю, что общего сетевого хранилища у вас вообще нет, поэтому объясню, как его создать на примере NFS. Это наиболее простой и быстрый путь. Создавать NFS-хранилище будем на сервере с Engine. Тем более, что там уже есть одно для ISO-образов, которое было создано при первичной настройке. Итак, заходим на сервер Engine с помощью SSH или через локальную консоль и создаем новый каталог на выделенном разделе. Затем изменяем владельца для установки необходимых разрешений:

# chown vdsm:kvm <каталог>

Затем добавляем его в /etc/exports с такими же параметрами как у присутствующего там каталога /var/lib/exports/iso:

Читать дальше

oVirt часть 4. Настройка инфраструктуры

oVirt. все статьи цикла

Главная страница Engine предлагает на выбор три различных портала (См. рис. 1): для пользователей (User Portal), для администраторов (Administration Portal) и для просмотра отчетов (Reports Portal). Ниже, в разделе Downloads присутствует внешняя ссылка на страницу где можно загрузить клиент SPICE, плагины и драйвера.

ovirt_install_and_configure
Рис. 1 Страница входа oVirt Engine

Читать дальше

oVirt часть 3. Установка

oVirt. все статьи цикла

Для того что бы попробовать все возможности oVirt, необходимы минимум три сервера, один для управления (Engine), и он же в качестве общего хранилища для оставшихся двух гипервизоров (Nodes). При чем для гипервизоров необходима поддержка аппаратной виртуализации для работы KVM.
Те, кому приходилось работать с VMware vSphere, возможно подумают, что первым делом можно установить гипервизор, а затем на нем же развернуть Engine в качестве ВМ. До не давнего времени oVirt не поддерживала такой сценарий и Engine требовал отдельного сервера или ВМ вне oVirt.
Начиная с версии 3.4 развертывание Engine в ВМ на одном из гипервизоров стало возможным. Этот трюк именуется как Hosted Engine и довольно не тривиален. В рамках этой статьи будет рассматриваться классическая модель с отдельно стоящим сервером управления.

Читать дальше

oVirt часть 2. Компоненты платформы

oVirt. все статьи цикла

На мой взгляд архитектура (См. рис. 1) oVirt довольно проста, но при этом гибка и масштабируема. По сути, базовые компоненты это хорошо известные, самодостаточные Open Source решения, объединенные в одной платформе.

Основные составляющие:

  • oVirt Engine — сервер мониторинга и управления вычислительными узлами, хранилищами, сетями и виртуальными машинами. Обеспечивает полный жизненный цикл ВМ. Реализован в виде веб-сервиса на Java (JBoss) с расчетом на максимальную масштабируемость и безопасность. Заявлено, что один экземпляр Engine способен управлять пятью сотнями гипервизоров и десятью тысячами ВМ! Правда, найти инфраструктуру такого масштаба для подтверждения данного заявления навряд ли возможно. Это основной инструмент и точка входа для администратора и пользователя:

    Читать дальше

oVirt часть 1. Введение

oVirt. все статьи цикла

Краткая история

На сегодняшний день, существует четыре основных кита на рынке виртуализации серверов на базе архитектуры x86. Лидером здесь является VMware с продуктом vSphere, следом идет Microsoft и их Hyper-V, с большим отставанием XenServer от Citrix и к сожалению но совсем позади RHEV — RedHat Enterprise Virtualization.
Следует отметить, что с продуктами для виртуализации приложений и рабочих станций картина выглядит несколько иначе и фаворитом здесь является Citrix. Но, это лишь к слову так как гвоздь сегодняшней программы — RHEV практически отсутствует в этой нише. Если кто-то еще не понял при чем тут RHEV то немного об его истории будет как раз кстати.

Читать дальше

VirtualBox и KVM на одном хосте

К сожалению, одновременная работа двух платформ виртуализации на одном хосте не возможна. Если у вас удачно работал KVM и вы установили рядышком VirtualBox то запустить KVM виртуалки не получится. Аналогичная ситуация и в обратном случае. При этом ошибки могут быть различными, попытки исправления которых не к чему не приведут.
В случае если есть необходимость периодически использовать ту или иную платформу для различных задач, единственным рабочим вариантом, является переключение между платформами виртуализации.

Читать дальше