Динамические аппаратные разделы работают не на всех серверах cell-based, а лишь на моделях Superdome, rp7420, rp7440, rp8420, rp8440, rx7620, rx7640, rx8620, rx8640.
Память, принадлежащая плавающим ячейкам аппаратных разделов, может быть только типа CLM (Cell Local Memory). Многие современные ОС используют на серверах cell-based технологию NUMA (non-uniform memory access) – оптимизированный доступ к памяти, когда выделяемая память физически находится внутри ячейки, на ЦП которой работает процесс, запросивший память. Обращение процессора к локальной памяти своей ячейки происходит быстрее, чем к памяти других ячеек, среднее время доступа к памяти сокращается, и благодаря этому увеличивается производительность. Таким образом, в системах, реализующих технологию NUMA, память может подразделяться на CLM и ILM (Interleaved Memory). Доступ к ILM-памяти однороден и не зависит от местоположения процессора, осуществляющего его.
Компания Hewlett-Packard в настоящее время поддерживает две аппаратные серверные платформы для UNIX-систем:
• HP 9000 – серверы на процессорах PA-RISC: модели PA-8700, PA-8700+, PA-8800 и PA-8900 (два последних – двухъядерные). Единственная ОС на платформе PA-RISC – это HP-UX. Хотя HP продолжает использовать эту платформу, серверы на процессорах PA-RISC уже не разрабатываются и не выпускаются;
• HP Integrity – серверы на процессорах Intel Itanium: модели Itanium 2, Itanium 9000 (Montecito), Itanium 9100 (Montvale). Процессоры Itanium 9000 и 9100 – двухъядерные. Платформа Integrity помимо HP-UX совместима с Windows, Linux и OpenVMS.
Все упомянутые технологии за исключением виртуальных машин работают на обеих платформах. Виртуальные машины Integrity VM существуют только на платформе Integrity.
Технология NUMA должна поддерживаться не только ОС, но и приложением. Многие приложения и СУБД последних версий декларируют такую совместимость, однако на практике все выглядит не так гладко, поскольку технология еще не достигла зрелости. Например, включение режима поддержки NUMA в Oracle может приводить к сбоям в работе системы и даже к «зависаниям» самой СУБД (см., в частности, Metalink Note 759565.1). Использование NUMA в MS SQL Server также не всегда приводит к желаемому результату.
Хотя теоретически работа с CLM более эффективна, на практике это бывает не так: здесь многое зависит и от того, как конкретное приложение использует память, и от того, насколько точно отлажена конфигурация CLM в каждом отдельном случае. Если все данные процесса так или иначе оказались в соседней ячейке, то среднее время доступа окажется даже больше, чем если бы эти данные лежали в ILM-памяти и были равномерно распределены по ячейкам. В таком случае мы, повторяя одну и ту же нагрузку (например, в процессе тестирования ПО), можем получать разное время исполнения.
Можно спорить о том, насколько эффективно использование CLM и NUMA на сегодняшнем этапе развития этих технологий, но бесспорно другое – необходимо иметь возможность выбора варианта конфигурации памяти. К тому же большинство прикладных задач могут получить выигрыш от комбинирования этих видов памяти (за исключением ОС Windows, где HP рекомендует для достижения максимальной производительности использовать только CLM). Динамические ячейки аппаратных разделов, в отличие от перемещаемой памяти виртуальных разделов (vPar), таких возможностей не предоставляют, вся память динамических ячеек – локальная (CLM).
Преимущества
• Основное преимущество аппаратных разделов – изоляция отказов оборудования: гарантируется, что никакой отказ аппаратуры в одном разделе не может повлиять на другой раздел. Это следствие электрической изоляции разделов внутри одной системы. Поскольку степень изоляции виртуальных разделов слабее, чем у аппаратных, то зачастую аппаратным разделам отдается предпочтение в случаях, когда на сервере работают несколько бизнес-критичных продуктивных систем.
• Аппаратные разделы Integrity-серверов, помимо HP-UX, обеспечивают также работу операционных систем Windows, Linux и OpenVMS. Для сравнения: виртуальные разделы (vPar) рассчитаны только на HP-UX.
Ограничения
• Возможность динамического перемещения ячеек между аппаратными разделами существует лишь в HP-UX, начиная с версии 11.31.
• Перемещать между разделами можно только ячейки целиком, в раздел нельзя добавить произвольное число процессоров или произвольный объем памяти.
• Память перемещаемых ячеек может быть только типа CLM.
Термин «виртуализация» в настоящее время трактуется очень широко. Связано это прежде всего с тем, что технологии в данной области развиваются весьма динамично, на рынке постоянно возникают новые решения, которые зачастую не вписываются в имеющуюся классификацию и образуют новые ветви, виды и подвиды. Несмотря на это, можно выделить основные технологические подходы к виртуализации – классы виртуализационных решений (см. материал А. Колесова в PC Magazine/RE, 5/2009).
Виртуализация серверов. Здесь приложение работает с выделенной ему частью общих ресурсов физического компьютера. Такой подход чаще всего реализуется путем запуска на физическом компьютере нескольких операционных сред. К этому классу обычно относят и так называемые виртуальные контейнеры или контейнеры ресурсов. Хотя в этом случае разделение ресурсов происходит внутри одного экземпляра операционной системы. Ведущий поставщик решений серверной виртуализации – компания VMware.
Виртуализация приложений. Здесь в отличие от виртуальных контейнеров виртуализируются не аппаратные ресурсы (процессоры, память, ввод-вывод), а ресурсы более высокого уровня – файлы, объекты, службы (Microsoft Application Virtualization, VMware Thinstall).
Виртуализация представлений. К этому классу относят технологии терминального доступа, когда приложение исполняется на сервере, а клиент отвечает лишь за визуализацию пользовательского интерфейса (Citrix XenApp, Microsoft Terminal Services).
Описанные в статье решения компании HP относятся к первому типу – серверной виртуализации. Различаются они прежде всего степенью изоляции ресурсов. Аппаратные разделы выделяются тем, что изоляция реализована вообще не на программном, а на аппаратном уровне, с помощью специального набора микросхем, которые «диспетчеризуют» электрические сигналы между разделами. Виртуальные разделы и виртуальные машины – это программные способы виртуализации, при этом каждый раздел (виртуальная машина) управляется собственной операционной средой. Наконец, разделы ресурсов – программный способ виртуализации в рамках одного экземпляра ОС. Таким образом, серверную виртуализацию вполне правомерно разделить на три подкласса: аппаратная виртуализация, программная виртуализация с использованием нескольких ОС и программная виртуализация внутри одной ОС.
Подобные многоуровневые решения в рамках серверной виртуализации предлагают и другие ведущие поставщики аппаратного обеспечения (Sun, IBM). Но каждый вендор при этом ориентируется на собственные аппаратные решения и свои флагманские операционные системы (Solaris, AIX, IBM i). Виртуальные машины в качестве гостевых ОС (помимо «профильной») везде поддерживают также Windows и Linux.
Виртуальные разделы (vPar) – это те, изоляция между которыми реализована программно средствами операционной системы HP-UX, в отличие от аппаратных разделов, изолированных на аппаратном уровне.