При этом резко сокращается число обслуживаемых физических систем, тем самым уменьшается стоимость поддержки/владения. Кроме того, за счет консолидации уменьшается число физических процессоров для лицензирования ПО.
Integrity VM предоставляет также виртуализацию ввода-вывода, когда несколько виртуальных машин могут разделять одну физическую плату ввода-вывода, повышая тем самым степень использования аппаратных ресурсов. Возможен и другой вариант, когда одна виртуальная машина монопольно использует одну плату ввода-вывода, при этом отсутствие конкуренции за пропускную способность физического интерфейса может обеспечить значительный выигрыш с точки зрения производительности.
Помимо виртуализации процессоров и интерфейсов ввода-вывода Integrity VM обеспечивает виртуализацию физической памяти – каждой виртуальной машине выделяется часть физической памяти сервера. Начиная с версии 4.0 возможно динамическое перемещение памяти между виртуальными машинами, т. е. увеличение или уменьшение объема памяти виртуальной машины без ее перезагрузки. Однако если память раздела в процессе работы станет фрагментированной, то освободить ее удастся не всегда, или это может происходить очень медленно. Кроме того, сказанное выше относительно динамического перемещения памяти между аппаратными разделами справедливо и для виртуальных машин.
В Integrity VM 4.1 появилась возможность миграции всей виртуальной машины вместе с гостевой ОС на другой сервер без остановки работающих приложений – Online VM Migration (рис. 3). На финальном этапе миграции система «замораживается» на несколько секунд, в течение которых на новый сервер копируются метаданные, страницы памяти, успевшие измениться за время переноса, и завершаются текущие операции с дисками. Затем система продолжает свою работу уже на новом сервере. Все, что при этом чувствует пользователь, – это кратковременное (не более 10 с) «зависание» своего приложения. Такая чрезвычайно ценная возможность полезна не только для балансировки нагрузки, но и при выполнении любых административных процедур, требующих остановки или перезагрузки системы.
Преимущества
• Обеспечивается более высокий уровень гранулирования при распределении ресурсов, чем в случае аппаратных и виртуальных разделов: между виртуальными машинами можно разделять отдельные физические процессоры и платы ввода-вывода. Доля ресурсов, выделяемых виртуальной машине, задается в процентах. Минимальная доля выделяемых ресурсов – 5 % физического процессора (для многоядерных процессоров – ядра).
• В качестве гостевой операционной системы может выступать не только HP-UX, но и Windows 2003, Linux Red Hat, Linux SUSE, причем виртуальные машины с различными ОС можно совмещать на одном физическом сервере.
• Возможность миграции виртуальной машины на другой сервер без остановки работающих приложений (Online VM Migration).
• Работают на любых системах Integrity, а не только на cell-based.
Ограничения
• Ограниченная масштабируемость. Integrity VM предназначены для небольших систем, использующих небольшое число процессоров – не больше четырех, а лучше один-два. Увеличение числа виртуальных процессоров оказывает негативное влияние на производительность виртуальной машины из-за относительно высоких накладных расходов. Поэтому однопроцессорная конфигурация более эффективна, чем многопроцессорная. Сказанное означает ограниченную масштабируемость решений на базе Integrity VM. Крупные SMP-конфигурации эту технологию использовать не могут.
• Версии VM, работающие на HP-UX 11.23 (3.0, 3.5), используют не более четырех виртуальных процессоров на каждой виртуальной машине, а последние версии, функционирующие на HP-UX 11.31 (4.0, 4.1) – не более восьми.
• До версии 3.5 Integrity VM не рекомендовалось использовать для систем с интенсивным потоком ввода-вывода. В версии Integrity VM 3.5 появился усовершенствованный механизм виртуального дискового и сетевого ввода-вывода – Accelerated Virtual I/O (AVIO), который позволяет примерно в полтора раза увеличить производительность ввода-вывода и вдвое уменьшить процессорную нагрузку, создаваемую виртуальным вводом-выводом. В версиях 4.0 и 4.1 этот механизм был усовершенствован. Тем не менее необходимо с большой осторожностью подходить к внедрению VM там, где важна высокая пропускная способность ввода-вывода, и учитывать некоторые ограничения AVIO.
• Online VM Migration работает только при условии, что гостевая ОС – HP-UX. Число виртуальных процессоров в одной виртуальной машине не может превышать количество физических процессоров.
• Не работают на системах с архитектурой PA-RISC.
Усовершенствованный механизм Accelerated Virtual I/O существенно увеличил производительность виртуального ввода-вывода.
Безопасные разделы ресурсов (SRP) поддерживаются программно внутри одной копии операционной системы HP-UX. При создании раздела ему выделяется определенная часть процессорных ресурсов, оперативной памяти сервера и пропускной способности ввода-вывода для группы дисковых томов.
Процессорные ресурсы можно выделять либо используя наборы процессоров (PSET), либо средствами Fair Share Scheduler (FSS), который представляет собой планировщик 2-го уровня над стандартным планировщиком ОС. При использовании PSET процессоры (ядра) выделяются разделу целиком. При применении FSS распределение процессорных ресурсов между разделами задается в процентах, и в соответствии с этим распределением процессорное время выделяется каждому разделу квантами по 10 мс.
Разделы ресурсов тесно интегрированы с контейнерами безопасности операционной системы HP- UX.
Каждому разделу может быть выделена часть физической памяти сервера, хотя делать это не обязательно. Память между разделами распределяется средствами технологии Memory Resource Groups (MRG). При этом каждый раздел «видит» и может использовать только свою часть общей памяти сервера. Это обеспечивает более высокий уровень изоляции между разделами. Однако по умолчанию неиспользуемая память разделяется между разделами, и один раздел может временно использовать свободную память другого.
Пропускная способность дискового ввода-вывода также распределяется в процентах. Порядок запросов в очередях ввода-вывода перераспределяется так, чтобы процессам конкретного раздела выделялась назначенная разделу доля общей пропускной способности. Этот контроль ввода-вывода активен только при появлении очередей, т. е. в случае конкуренции за ввод-вывод.
Разделы ресурсов тесно интегрированы с контейнерами безопасности. Контейнер безопасности определяется для группы пользователей или группы процессов. Внутри своего контейнера процессы имеют полный доступ к механизмам межпроцессного взаимодействия (IPC), к сетевым интерфейсам и файлам. Но процесс одного контейнера не может взаимодействовать с процессами другого контейнера, пока не будут заданы правила, определяющие такое взаимодействие, а сетевые псевдоинтерфейсы разных контейнеров не могут видеть сетевые пакеты друг друга.
Преимущества
• Благодаря консолидации уменьшается количество экземпляров ОС.
• Единая операционная среда дает больше возможностей для разделения ресурсов: можно совместно использовать процессоры, платы ввода-вывода, память, файловые системы.
• Работают на любых системах, где запускается HP-UX, а не только на cell-based (как nPar и vPar) или Integrity-серверах (как Integrity VM).
Ограничения
• Меньший уровень изоляции, чем у всех остальных типов разделов, так как разделы ресурсов существуют внутри одной копии операционной системы.
• Из предыдущего ограничения вытекает и то, что разделы ресурсов не могут поддерживать разные настройки параметров ядра, разные уровни патчей (или их несовместимые наборы), разные версии