Linux-кластеры IBM на платформе Intel
Андрей Борзенко
Кластером обычно называют параллельную или распределенную систему, состоящую из набора взаимосвязанных целостных компьютеров, которые используются как единый, унифицированный вычислительный ресурс. Кластеры, имеющие преимущества в сравнении с более традиционными системами, применяют для решения задач повышенной сложности. Основу кластерных решений могут составлять системы самых разных типов. На одном конце спектра находятся системы, базирующиеся на IBM System/390 (в настоящее время носят название IBM eServer zSeries) и сконфигурированные в виде системы Sysplex. На другом конце спектра располагается множество разнообразных Intel-серверов, соединенных изготовителями в различные кластерные конфигурации. Фирменные решения типа Microsoft Wolfpack и Alpha TruCluster конкурируют с базовыми кластерами Beowulf на основе систем Linux/Intel.
Иногда к разряду кластеров относят серверы IBM eServer серии zSeries с VM и десятками или сотнями образов Linux. Система IBM RS/6000 SP может рассматриваться как кластер, состоящий из серверов RS/6000, установленных в фирменный корпус или стойку.
Во всех этих примерах речь идет о высокоэффективных аппаратно-программных средствах реализации взаимосвязей, позволяющих рассматривать кластер как целостную систему с единым управлением. Считается, что именно это свойство — непременная черта любого полноценного кластера.
Кроме того, кластеры можно классифицировать по выполняемой ими функции, ориентированной
на достижение основной цели, а именно:
- высокой готовности (High Availability), включая избыточность и средства
восстановления после сбоя (failover) для обеспечения высокой отказоустойчивости; - высокой производительности (High Performance), обеспечиваемой, например,
за счет объединения множества систем, совместно решающих одну задачу (так
называемая FLOP-ферма); - консолидации серверов, предполагающей централизованное управление ресурсами,
выделяемыми для выполнения различных задач.
Первоначально усилия разработчиков Linux-кластеров были сосредоточены в сфере высокопроизводительных вычислений (High Performance Computing, HPC), и системы на основе микропроцессоров семейства Itanium, обладающих увеличенной производительностью вычислений с плавающей точкой, должны внести свой вклад в эту область.
Классические области, в которых используются подобные системы, — это обработка изображений (рендеринг, распознавание образов), научные исследования (физика, биоинформатика, биохимия, биофизика), промышленность (геоинформационные задачи, математическое моделирование) и т. п.
Консолидация серверов призвана решить не столько техническую проблему, сколько проблему управления. К настоящему времени несколько независимых поставщиков ПО создали свои решения высокой готовности для кластеров Linux, отличающиеся по возможностям и сложности. Аналитики полагают, что в ближайшем будущем распространенность кластеров высокой готовности (HA clusters) вырастет.
Блок-схема большого Linux-кластера.
|
Интерес к ОС Linux
Надо отметить, что корпорация IBM (http://www.ibm.com)
восприняла ОС Linux с энтузиазмом, превзошедшим ожидания многих аналитиков отрасли
(впрочем, давние приверженцы Linux могут считать это вполне закономерным и логичным).
Анализ статистических данных о динамике рынка ОС явно показывает увеличение
рыночной доли Linux. При таком развитии событий компании, чьи основные продукты
на рынке массовых компьютерных систем непосредственно конкурируют с открытыми
программными средствами, имеют все основания для беспокойства. Уникальное положение
IBM, имеющей в своем ассортименте огромное число решений в сфере аппаратных
средств, ОС и промежуточного ПО, позволяет ей довольно гибко реагировать на
запросы рынка.
Надо сказать, что в недавнем прошлом рыночная парадигма неоднократно претерпевала значительные изменения. Один из примеров — тенденция перехода от CISC к RISC, от архитектур со сложным набором команд (большое число инструкций, требующих для выполнения нескольких тактов процессора) к архитектурам с сокращенным набором команд (меньшее число более примитивных инструкций, каждая из которых выполняется за один машинный цикл). Другой пример в сфере суперкомпьютеров — переход от векторных архитектур к параллельным. Можно привести и множество других примеров.
Организация вычислений на суперкомпьютерах или высокопроизводительные вычисления часто оказываются той точкой, из которой начинается смена парадигмы. Это объясняется некоторыми особенностями сегмента рынка HPC. Во-первых, производительность здесь считается более важной, чем надежность. При достаточной скорости обработки случайные отказы допустимы, и с ними можно справляться путем простого повторного запуска задачи.
Соотношение цены и производительности -второй по важности показатель. Вычисления на суперкомпьютерах чаще всего выполняются крупными правительственными или исследовательскими организациями. Хотя их бюджеты велики, но и надзор за ними весьма строг. И третья особенность — нестандартные архитектуры и решения здесь считаются приемлемыми и желательными. Потребители этой группы часто становятся первыми пользователями новых технологий, которые затем могут получить широкое распространение.
IBM уделяет пристальное внимание развитию Linux, продвигая приложения к этой ОС на платформе Intel-серверов IBM eServer xSeries. Совместно с сообществом Open Source Community она создает драйверы устройств, документацию, издает множество руководств по установке, настройке и администрированию Linux-систем на базе xSeries. Корпорация поддерживает четыре дистрибутива Linux — Red Hat, TurboLinux, Suse, Caldera (ныне SCO Group), новые версии которых для xSeries регулярно проходят сертификацию в независимых компаниях. Действует также программа IBM ServerProven Linux Solution по сертификации программных продуктов третьих фирм.
Кластеры Linux на процессорах Intel широко используются в учебных заведениях — это недорогая платформа для разработок в сфере параллельного программирования и средств управления распределенными системами. В то же время кластеры Intel/Linux стали все чаще появляться в правительственных и исследовательских организациях.
Типичный HPC-комплекс сегодня представляет собой большую RISC-систему с параллельной обработкой на основе ОС UNIX. Считается, что комплексы RS/6000 SP фактически лидируют среди систем, используемых компаниями, входящими в список TOP500 (http://www.top500.org). Параллельное программирование реализуется в основном на основе стандартизованной модели, называемой интерфейсом передачи сообщений MPI (Message Passing Interface). Альтернатива этому методу — параллельная виртуальная машина PVM (Parallel Virtual Machine), еще используемая некоторыми заказчиками, но уже в значительной мере вытесненная моделью MPI. Хотя UNIX считается стандартной ОС, это семейство объединяет варианты, предлагаемые различными разработчиками (например, IBM AIX, HP-UX, Sun Solaris).
Кластеры Linux характеризуются хорошим соотношением цены и производительности,
при этом они обладают преимуществом знакомой архитектурной и программной модели.
Напомним, что Linux — это вариант UNIX, который благодаря открытости кодов вероятнее
всего не распадется на специализированные версии разных фирм-производителей.
Организация Free Standards Group наблюдает за процессом сертификации на совместимость
с Linux Standard Base. Более того, организация UnitedLinux (http://www.unitedlinux.com),
в которую входят компании Turbolinux, SCO Group, SuSE и Conectiva, нацелила
свои усилия на создание унифицированной версии Linux для предприятий.
Стоит отметить, что открытая версия MPI, называемая MPICH, доступна для загрузки в Интернете. В ней корректно реализован стандарт, поэтому параллельное программирование с использованием модели MPI может выполняться на кластерах Linux. Соответствующие инструментальные средства и математические библиотеки также широко доступны, а промежуточное ПО либо уже имеется, либо будет реализовано в последующих версиях для Linux.
Таким образом, интерес IBM к кластерам Linux на платформе Intel объясняется
довольно просто. Заказчики корпорации интересуются такими кластерами по уже
упомянутым ранее причинам. Кластеры Linux выходят на массовый рынок, покидая
категорию экспериментальных, как это раньше произошло с параллельными RISC-системами
на рынке HPC.
Альянс IBM и Red HatКомпании IBM и Red Hat (http://www.redhat.com) |
Интегрированные решения
Еще в начале 2000 г. IBM создала кластерные системы Linux в стоечном исполнении на базе систем IBM eServer xSeries (или более ранних систем IBM Netfinity). Они успешно интегрировались с соответствующими сетями, уровнем системного управления (аппаратное и программное обеспечение) и необходимыми сервисами. Так, по словам специалистов IBM, кластер eServer Cluster 1300 представляет собой формализацию и развитие предшествовавшей заказной кластерной технологии. Эти новые на тот момент решения включали заказную конфигурацию аппаратного и программного обеспечения, а также услуги по установке и поддержке.
Аппаратные средства
Основа Linux-кластера — системы Intel-архитектуры, установленные в стандартную 19-дюймовую стойку высокой плотности размещения. В пределах стойки располагаются узлы, быстрые межсоединения, оборудование сетевого управления, терминальные серверы и т. п.
Узлы функционально можно сгруппировать в две категории:
- вычислительные узлы, выполняющие основную вычислительную задачу;
- узлы инфраструктуры — головные узлы, узлы управления и узлы хранения данных,
обеспечивающие управление системой и специализированные функции по соединению
вычислительных узлов в единую систему.
Типовой вычислительный узел.
|
Считается, что вычислительные узлы должны быть максимально компактными и иметь минимум соединений. Применение сервисного процессора для реализации функций управления системами имеет существенное значение. Например, для системы Cluster 1300 сервер IBM eServer xSeries 330 — это стандартный вычислительный узел в корпусе высотой 1U (U = 1,75 дюйма). Он поддерживает до двух процессоров Pentium III с тактовой частотой до 1,4 ГГц и оперативную память до 4 Гбайт. Минимальная емкость встроенной дисковой памяти составляет 18 Гбайт и расширяется до 144 Гбайт. Отметим, что сервер семейства x330 имеет встроенный сервисный процессор и два гнезда для стыковки с другими компонентами системы.
Узел хранения данных.
|
Головные узлы, узлы управления и хранения данных обеспечивают специальные функции управления кластером (поддержка начальной загрузки, управление аппаратным обеспечением, внешними устройствами ввода-вывода, и т. п.). В Cluster 1300 для этих целей используется сервер IBM eServer xSeries 342, выполненный в корпусе высотой 3U. Максимальная емкость встроенной дисковой памяти в этом случае достигает 442 Гбайт. Для расширения системы можно использовать пять слотов PCI, в том числе четыре 64-разрядных.
Особенности машин семейства xSeries делают отказ индивидуальных узлов менее вероятным и позволяют проводить опережающее техническое обслуживание узлов или частей, в которых может произойти отказ. Заложенная во многих функциях опора на аппаратную избыточность позволяет системе сохранять устойчивость к различным отказам. Тем самым реализуется концепция RAS (Reliability, Availability, Serviceability — надежность, готовность и удобство обслуживания).
Коммутаторы и другие элементы структуры используются для обеспечения коммуникаций
между процессорами, для поддержки параллельного программирования и различных
функций управления. Для параллельного программирования (организации межпроцессного
взаимодействия (Inter Process Communication, IPC) широко используется коммутатор
Myrinet-2000 компании Myricom (http://www.myri.com)
— очень быстрое, хорошо масштабируемое широкополосное устройство. Считается,
что при увеличении числа подключенных узлов общая ширина полосы пропускания
— как у всех коммутаторов с настоящей масштабируемостью — растет пропорционально,
а латентность остается постоянной. Иными словами, полоса на каждом из путей
одинакова, а число путей (направлений) зависит от количества узлов, при этом
каждый узел имеет связь со всеми остальными узлами независимо от размера кластера.
Например, полоса в расчете на направление может составлять 200 Мбайт/с в каждом
направлении с латентностью в 6-8 мкс. Коммуникации между пользовательскими пространствами
могут реализовываться на основе протоколов IP или GM при помощи ПО пользовательского
уровня Myricom.
Если среда параллельных вычислений не требует повышенной интенсивности коммуникаций между процессорами, то могут использоваться менее дорогостоящие средства, скажем, Ethernet. В индивидуальном заказном проекте могут также применяться технологии GigaNet, SCI или ServerNet, а в будущем и InfiniBand.
Коммутаторы используются для стыковки с внешними сетями и для построения внутренней сети для управления системой. В качестве альтернативного решения для заказных систем IBM предлагает различные коммутаторы Cisco совместно с продукцией Extreme Networks.
Терминальные серверы обеспечивают удаленный доступ к системной консоли узла. Дополнительные функциональные возможности можно обеспечить с помощью коммутатора KVM (клавиатура, видео, мышь), а технология C2T позволяет назначать один комплект KVM любому узлу в сети управления системой. Это позволяет обойтись одним комплектом кабелей для всех узлов, что, в свою очередь, высвобождает до 120 кабелей на каждый комплект поставки, радикально уменьшая количество требуемых терминальных серверов. Например, для системы из 128 узлов стоимость кабелей и терминальных серверов уменьшается в 10 раз в сравнении с непосредственно подключаемыми кабелями. С кластерами IBM обычно используются терминальные серверы компании Equinox.
Внешние системы ввода-вывода, в частности, устройства SCSI RAID, обычно также находятся в стойках вместе с узлами, коммутаторами и т. п.
Программное обеспечение
Естественно, базовое ПО для кластера Linux — это ОС Linux. Кластеры на платформе Intel поддерживают дистрибутив Red Hat версий 7.1 и 7.2, однако возможно применение и других стандартных дистрибутивов по заказной спецификации. Linux устанавливается на каждый узел кластера, при этом для больших кластеров имеется ПО системного управления, позволяющее каскадировать установку по сетям управления.
Первой реальной попыткой соединить системы архитектуры Intel в единое целое
было ПО кластеризации Beowulf — коллекция программ, которые должны быть загружены
и интегрированы инсталлятором. Иногда кластеры Linux называют кластерами Beowulf,
хотя это, наверное, чрезмерное упрощение. Более развитая система управления,
использовавшаяся в реализации заказных решений по созданию Linux-кластеров IBM,
называлась xCAT. В число ее функций и компонентов входили:
- дистанционная перезагрузка ПО и сброс аппаратного обеспечения (Ctrl+Alt+Del);
- удаленная консоль OS/POST/BIOS;
- удаленный контроль жизненно важных параметров;
- дистанционное управление питанием;
- ведение удаленного журнала регистрации аппаратных событий;
- удаленная инвентаризация аппаратного обеспечения;
- интерфейс командной строки;
- установка сети (PXE);
- поддержка различных задаваемых пользователем типов узлов;
- аппаратные предупреждения через протокол SNMP.
Надо отметить, что в xCAT использовался сервисный процессор xSeries и что xCAT не является открытым ПО. Оно свободно поставлялось с каждым заказным решением на основе кластеров Linux от IBM на условиях "как есть". Исходный код прилагался — это ПО написано на языке сценариев.
Выпущенная IBM программа Cluster System Management for Linux (CSM) обеспечивает функции системного управления и включает технологию, созданную на основе программ поддержки параллельных систем для AIX (IBM Parallel System Support Programs). Средство CSM, аналогичное системе PSSP для платформы RS/6000 и кластерам AIX, предназначается для заказчиков, которым требуется надежная система управления кластером на основе Intel-сервера. Впрочем, заказчик может выбрать и иное ПО, как с открытым кодом, так и патентованное. В качестве примеров такого ПО упомянем системы Portable Batch Scheduler (PBS) и Maui Scheduler (обе с открытым кодом), обеспечивающие сложные и эффективные алгоритмы планирования заданий и ресурсов, а также сбор данных. Другие примеры — система MPICH для параллельных вычислений, множество математических библиотек, отладчиков и инструментальных средств повышения производительности, а также множество приложений независимых поставщиков ПО.
IBM и мир LinuxДля сотрудничества с сообществом Linux корпорация IBM поддерживает Web-портал Linux служит в IBM серверной платформой для контроля важнейших технологических IBM использует Linux в качестве основы для недорогой системы рассылки IBM развертывает Linux в целях антивирусной защиты для своей глобальной |
Конструкция и спецификации
Построить Linux-кластер — далеко не тривиальная задача. Здесь приходится рассматривать несколько уровней абстракции, а сложность нарастает с увеличением размеров кластера. По понятным причинам создание решений в сфере кластеров Linux под силу только высококвалифицированным специалистам. Практика показывает, что простое соединение различных необходимых частей системы почти никогда не бывает успешным.
Конечно, имеется ряд фундаментальных принципов построения таких систем и наилучших методов реализации. Не так сложно определить число узлов, необходимых для непосредственного решения поставленной задачи или выполнения необходимых объемов работ, однако с учетом инфраструктуры, скорее всего, узлов потребуется больше. Во-первых, с ростом числа вычислительных узлов на определенном этапе потребуется головной узел (head node). Если головной узел работает в качестве вычислительного узла, он должен иметь схожую с ним конфигурацию. Во-вторых, каждой системе потребуется узел управления, который может быть одним из головных узлов. В-третьих, внешние устройства ввода-вывода потребуют создания одного или более узлов хранения (также могут дополнительно понадобиться сетевые коммутаторы).
В поставку должны быть включены три функциональных типа сетей:
- сеть межпроцессного взаимодействия (IPC) — скорость работы сети зависит
от назначения комплекса и решаемых им задач; - сеть файлового ввода-вывода — если имеется сеть IPC, это также может быть
сеть ввода-вывода; - сеть для системного управления — обычно это 10/100 Ethernet, решение зависит
от схемы каскадирования, которая задействует головные узлы, узлы управления
и т. п., соединенные коммутаторами Ethernet.
Кроме того, потребуется терминальный сервер.
Следует также рассмотреть вопросы топографии сетей, выбора сетевых адресов и схем прокладки кабелей (включая расчет длин). Хотя теоретически в стандартной стойке можно разместить 36 или 42 устройства высотой 1U, зачастую желательно оставить резерв для расширения или для управления мощностью и процессом отвода тепла.
И, наконец, необходимо учесть физические характеристики (потребляемая мощность, количество выделяемого тепла, нагрузка на перекрытие здания, резервирование пространства для сервисного доступа и т. п.). Могут потребоваться традиционные аппаратные помещения с фальшполом, а также должным образом кондиционированное сетевое питание и система воздухообмена, обеспечивающая теплоотвод и эффективное распределение холодного воздуха (измеряемое в кубометрах в минуту).
Если заказные решения могут быть интегрированы любым специализированным центром или даже самим заказчиком (что не рекомендуется), то конечный продукт (например, Cluster 1300) должен изготавливаться и тестироваться на заводе IBM.
Кластер IBM eServer Cluster 1350
В августе 2002 г. IBM анонсировала новый продукт — Cluster 1350, также входящий в семейство платформ архитектуры Intel. Он поддерживает до 256 вычислительных узлов, а также до 32 узлов хранения данных. Каждый кластер требует одного двухпроцессорного узла управления. Процессорную мощность кластера eServer Cluster 1350 образуют серверы IBM eServer x335 и x345 на процессорах Intel Xeon с тактовыми частотами 2,4 ГГц.
Серверы IBM eServer x335, используемые в качестве узлов для кластера, представляют собой тонкие серверы высотой 1U в двухпроцессорной конфигурации. Они поддерживают до 4 Гбайт оперативной памяти и дисковую память до 146,8 Гбайт (Ultra320 SCSI) или 240 Гбайт (IDE).
Серверы eServer x345, используемые в качестве центральных узлов управления и хранения данных, — это серверы высотой 2U. Они включают до 4 Гбайт оперативной памяти и до 440,4 Гбайт дискового пространства. Накопители размещаются в шести монтажных отсеках с возможностью горячей замены.
Увеличение объема дискового пространства достигается подключением серверов хранения IBM FASt 200 (до 734 Гбайт) или IBM FASt 700 (более 16 Тбайт), а также соответствующих устройств расширения. Различные конфигурации кластеров используют стандартные 19-дюймовые стойки IBM. Для организации межпроцессорного взаимодействия предлагаются коммутаторы Ethernet, Gigabit Ethernet и Myrinet-2000.
В базовый пакет входит ОС Linux и управляющее ПО — для Cluster 1350 это дистрибутив Red Hat Linux версий 7.1/7.2, а также CSM for Linux 1.2. В рамках контракта на установку может поставляться также специализированное ПО, как с открытыми исходными текстами, так и патентованное. Одна из опций — GPFS for Linux 1.2 и HPC Tools (компиляторы, отладчики, библиотеки).
Роль управления
Управление системой считается наиболее важной проблемой для крупного кластера. Если небольшими кластерами можно управлять при помощи минимальных средств, с ростом размеров кластера потребности в средствах управления иногда нарастают довольно быстро. Заказчики, имеющие опыт эксплуатации крупных систем, особенно RS/6000 SP, хорошо представляют себе эту ситуацию.
Вот лишь ряд задач, решаемых при управлении кластером. В каждом узле должна выполняться первоначальная загрузка, а изменения и исправления вносятся в каждый узел. В кластере должно быть место (желательно единственное), с которого пользователи входят в систему, запускают компиляторы, получают доступ к системным ресурсам и т. п. Системный администратор должен иметь возможность контролировать доступ к системным ресурсам (безопасность), осуществлять мониторинг и управление состоянием системы.
Есть два основных компонента системного управления — процессор обслуживания и уровень управления ПО. Системы xSeries, используемые в настоящее время в Linux-кластерах, имеют встроенный сервисный процессор, включенный в стоимость системы и не занимающий гнезда расширения. Этот процессор позволяет дистанционно включать и выключать питание, следить за состоянием аппаратных средств, выдавая сигналы тревоги в различных режимах обнаружения сбоев.
Кластеры IBM Linux, будь то xCAT или CSM, имеют очень развитую функциональность системного управления. В обоих случаях предусмотрено управление аппаратным обеспечением, включая сброс и выключение питания, горячую перезагрузку, консоль OS/POST/BIOS, контроль температуры и скорости вращения вентиляторов, журнал работы и реестр оборудования, — все эти функции доступны системному администратору через удаленный интерфейс.
Предусмотрен и мониторинг упомянутых выше функций с передачей предупреждений по протоколу SNMP. Кроме того, оба пакета программ располагают средствами сетевой установки и поддерживают параллельное выполнение операции на нескольких узлах одновременно.
Несколько фирм-производителей сегодня обеспечивают некоторые функции системного управления, но часто при этом предлагается функциональность, меньшая, чем у систем xCAT или CSM. Оба решения IBM архитектурно предназначены для очень больших кластеров — масштабируемость была одним из критериев их разработки. Для ПО, не рассчитанного на масштабирование, характерно экспоненциальное ухудшение эффективности работы по мере роста размеров системы.
Перспективы
Вполне возможно, что вскоре появятся кластеры Linux, использующие системы на процессорах семейства Itanium (IA-64) или семейства POWER4, модульные серверы высокой плотности (архитектура Blade), гибридные решения.
Системы IA-64 могут предлагаться в дополнение к описанным системам на основе IA-32. По архитектуре кластеры на основе IA-64 должны быть сходны с описанными системами на базе IA-32. У них будет иное соотношение цены и производительности в сравнении с традиционными системами, так что немедленного вытеснения систем IA-32 не ожидается.
Системы на базе процессоров семейства Itanium дороже, но обладают существенно более высоким быстродействием на операциях с плавающей точкой в сравнении с системами IA-32, поэтому они будут привлекательным решением для приложений HPC, а для небольшого числа приложений 64-разрядное адресное пространство будет востребовано немедленно.
Высокая производительность процессора Power4 как на целочисленных операциях, так и на операциях с плавающей точкой, а также параллелизм, присущий современным суперскалярным процессорам, позволят создавать платформы, превосходящие конкурирующие решения почти по всем параметрам. Производительность ОС Linux и кластера Linux на процессорах Power4, вероятно, сможет удовлетворить самые широкие потребности рынка.
Заключение
ОС Linux становится все более популярной, а ее возможности — все богаче. Кластеры Linux обеспечивают горизонтальное масштабирование, недоступное решениям Linux SMP. Соотношение цена/производительность и усовершенствованные функции Intel-платформы делают соответствующие системы привлекательными блоками для построения Linux-кластеров.
Компоненты, требуемые для успешного создания кластеров или суперкластеров Linux
и управления ими, предусматривают высокую плотность размещения оборудования,
встроенные системы управления с использованием сервисных процессоров, а также
масштабируемое ПО.
Кластер в 19-дюймовых стойках.
|