Журнал PC Magazine/RE №08/2009 - PC Magazine/RE
Шрифт:
Интервал:
Закладка:
Проблема недостаточного использования вычислительных ресурсов актуальна для большинства крупных центров обработки данных (ЦОД). Необходимость аппаратной и программной изоляции информационных систем, сложность которых растет год от года, приводит к тому, что каждая система (продуктивная или тестовая), как правило, располагается на отдельном физическом сервере. В то же время вычислительная нагрузка, создаваемая информационной системой, обычно бывает неоднородной, для нее характерны пиковые периоды, чередующиеся с моментами относительного затишья. Поскольку серверы, на которых эти системы работают, приобретались и конфигурировались с расчетом именно на пиковую нагрузку, среднее использование ресурсов оказывается невысоким (по экспертным оценкам оно не превышает 40 %).
Периоды пиковой активности прикладных систем часто не совпадают по времени. В этом случае полезно временно перемещать аппаратные ресурсы (процессоры, память, интерфейсы ввода-вывода) из одной системы в другую, забирая ресурсы у системы, которая в данный момент их не использует, и отдавая той, которая на пике активности испытывает в них дефицит.
Очевидно, что эти проблемы нужно решать путем консолидации: прикладные системы, располагающиеся на разных физических серверах, объединить на одном более мощном сервере. Чтобы такое решение работало, необходимо обеспечить аппаратную или программную изоляцию систем друг от друга, что позволит избежать конфликтов между ними, а также снизит вероятность того, что какой-либо программный или аппаратный сбой выведет из строя сразу несколько систем. Для этого в операционной системе HP-UX существует набор технологий виртуализации с разбиением физического сервера на разделы:
• аппаратные (nPartitions, nPar);
• виртуальные (Virtual Partitions, vPar);
• виртуальные машины (Integrity Virtual Machines);
• безопасные разделы ресурсов (Secure Resource Partitions, SRP).
Эти решения различаются прежде всего степенью изоляции разделов и позволяют прикладной системе видеть свой раздел как отдельный сервер с ОС (кроме SRP), обладающий собственными аппаратными ресурсами (на самом деле это часть общих ресурсов сервера).
Однако консолидация вычислительных ресурсов и изоляция разделов сами по себе не решают проблему неравномерных нагрузок и недостаточного использования ресурсов. Требуется еще при необходимости перемещать ресурсы из одного раздела в другой, причем делать это желательно без перезагрузки ОС, перезапуска СУБД и остановки прикладных систем. Перечисленные технологии в разной степени предоставляют такую возможность.
Аппаратные разделы (nPar)Аппаратные разделы (nPar) электрически изолированы друг от друга и выглядят и действуют подобно отдельной системе. Каждый раздел имеет свое оборудование и свою операционную систему. Благодаря этому обеспечивается изоляция сбоев – как аппаратных, так и в ПО. Это означает, что отказ аппаратуры или сбой ПО в одном аппаратном разделе не может повлиять на работу другого раздела.
Еще одним полезным свойством аппаратных разделов является то, что обеспечивается одновременная работа процессоров PA-RISC в одном аппаратном разделе и процессоров Itanium в другом на любой системе с наборами микросхем sx1000 и sx2000.
Аппаратные разделы могут быть созданы только на серверах, основанных на ячейках (cell-based). К таким серверам относятся следующие модели: Superdome, rp7400, rp7410, rp7420, rp7440, rp8400, rp8420, rp8440, rx7620, rx7640, rx8620, rx8640.
В версиях HP-UX 11.11 и 11.23 перемещение ячеек из одного аппаратного раздела в другой невозможно без остановки соответствующих разделов. Начиная с версии HP-UX 11.31 Update 1 поддерживается активация и деактивация ячеек аппаратного раздела в онлайновом режиме, т. е. без перезагрузки раздела и остановки работающих в нем приложений.
Благодаря этому появилась возможность динамически перемещать ячейки из одного раздела в другой. Ячейки, которые можно динамически отключить и перенести в другой раздел, называются плавающими (floating cells) в отличие от базовых (base cells), которые не могут быть отключены динамически. Каждый раздел должен иметь по крайней мере одну базовую ячейку, которая необходима для бесперебойного функционирования ОС.
Сервер может иметь ячейки, первоначально не принадлежащие ни одному разделу (unassigned cells). По мере необходимости их можно добавлять в нужный раздел при возникновении проблемы с производительностью.
Планируя перемещение памяти между разделами, необходимо учитывать факторы, касающиеся не только аппаратных разделов, но и остальных описанных технологий.
Во-первых, освободить можно лишь часть памяти, которая в данный момент не занята работающими приложениями, например, не является частью Oracle SGA.
Во-вторых, большинство приложений могут воспользоваться динамически добавленной памятью только с определенными оговорками. Скажем, сегмент разделяемой памяти, выделенный ОС под Oracle SGA, не может быть увеличен динамически (в большинстве случаев это и не требуется), но пользовательские сессии Oracle, созданные после динамического добавления памяти, смогут ее использовать. Таким образом, число одновременно работающих сессий в системе может быть увеличено.
Динамические аппаратные разделы работают не на всех серверах 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-памяти однороден и не зависит от местоположения процессора, осуществляющего его.
Серверные платформы HPКомпания 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.
HP 9000 SuperdomeHP Integrity rx8640Технология NUMA должна поддерживаться не только ОС, но и приложением. Многие приложения и СУБД последних версий декларируют такую совместимость, однако на практике все выглядит не так гладко, поскольку технология еще не достигла зрелости. Например, включение режима поддержки NUMA в Oracle может приводить к сбоям в работе системы и даже к «зависаниям» самой СУБД (см., в частности, Metalink Note 759565.1). Использование NUMA в MS SQL Server также не всегда приводит к желаемому результату.
Хотя теоретически работа с CLM более эффективна, на практике это бывает не так: здесь многое зависит и от того, как конкретное приложение использует память, и от того, насколько точно отлажена конфигурация CLM в каждом отдельном случае. Если все данные процесса так или иначе оказались в соседней ячейке, то среднее время доступа окажется даже больше, чем если бы эти данные лежали в ILM-памяти и были равномерно распределены по ячейкам. В таком случае мы, повторяя одну и ту же нагрузку (например, в процессе тестирования ПО), можем получать разное время исполнения.
Можно спорить о том, насколько эффективно использование CLM и NUMA на сегодняшнем этапе развития этих технологий, но бесспорно другое – необходимо иметь возможность выбора варианта конфигурации памяти. К тому же большинство прикладных задач могут получить выигрыш от комбинирования этих видов памяти (за исключением ОС Windows, где HP рекомендует для достижения максимальной производительности использовать только CLM). Динамические ячейки аппаратных разделов, в отличие от перемещаемой памяти виртуальных разделов (vPar), таких возможностей не предоставляют, вся память динамических ячеек – локальная (CLM).
Преимущества
• Основное преимущество аппаратных разделов – изоляция отказов оборудования: гарантируется, что никакой отказ аппаратуры в одном разделе не может повлиять на другой раздел. Это следствие электрической изоляции разделов внутри одной системы. Поскольку степень изоляции виртуальных разделов слабее, чем у аппаратных, то зачастую аппаратным разделам отдается предпочтение в случаях, когда на сервере работают несколько бизнес-критичных продуктивных систем.