Oracle Exadata – интегрированный стек для поддержки СУБД
Поставщики серверных решений в последнее время предлагают все больше законченных программно-аппаратных кластеров, преднастроенных и сертифицированных для решения той или иной задачи. Привычный подход, когда системные интеграторы «из кубиков» собирают готовое решение под заказчика, если судить по анонсам мировых гигантов, начинает отходить на задний план. Понятно, что вышеприведенное утверждение на практике оказывается утрированным – поставки законченных стоек, включающих все необходимые составляющие под маркой одного из brandname, пока, конечно, единичны, если сравнивать с открытым рынком системной интеграции. Но то усердие, с которым вендоры сегодня предлагают свои интегрированные решения, явно говорит об их переориентации именно в направлении поставки законченных комплексов, а не просто строительных блоков. В полном соответствии с этим подходом ведущие компании активно скупают фирмы, владеющие компетенциями в отдельных составляющих программно-аппаратного стека.
Для Oracle воплощением такого комплексного подхода стало в свое время создание Exadata Database Machine (рис. 1) – законченного программно-аппаратного комплекса для поддержки работы собственной СУБД. В данный момент поставляется уже вторая инкарнация решения. В первом варианте в качестве технологического партнера выступала HP; теперь, понятное дело, свежеприобретенная Sun. И сейчас все это подается под новым маркетинговым девизом объединенной Oracle, звучащим как Hardware & Software, Engineered to work together. Кстати, редкий случай, когда слоган трансконтинентальной корпорации прост и прозрачен настолько, что, пожалуй, не требует ни перевода, ни дополнительной интерпретации.
Цель разработки комплекса – создать сверхскоростное и масштабируемое решение быстрого развертывания для приложений баз данных, как транзакционного типа (OLTP), так и хранилищ данных и поддержки принятия решений (OLAP), и наконец, для смешанных нагрузок. Естественно, в основе системы – СУБД Oracle Database актуальной на сегодня версии 11g.
В целях повышения производительности машин в Oracle отошли от традиционных топологий построения серверных комплексов, в результате получив самый быстрый из возможных на сегодняшний день кластер под – как ни крути – основную промышленную СУБД.
В январе этого года один из старейших российских партнеров Sun Mycrosystems и Oracle, компания Jet Infosystems, объявила о развертывании на базе собственного дата-центра в Москве демоверсии Exadata Database. Теперь система доступна для тестирования российским заказчикам. Посмотрим, как же устроено фирменное решение, на примере младшей базовой комплектации – X2-2 Quarter Rack (четверть стойки). Именно такая и была инсталлирована в Jet.
Главная «фишка» архитектуры Oracle Exadata – в критическом повышении пропускной способности передачи данных между серверами и подсистемой хранения плюс перераспределении вычислительной нагрузки при обработке запросов между этими составляющими стека (рис. 2.)
Связь внутренних компонентов кластера осуществляется по протоколу InfiniBand QDR с пропускной способностью 40 Гбит/с на порт. Архитектура распределяет нагрузку между двумя неравнозначными блоками – Database Node и Storage Node. Серверы функционируют под Oracle Enterprise Linux 5.5.
На серверах Database Node функционирует собственно РСУБД Oracle 11gR2. Физически они представляют собой двухсокетовые Xeon-серверы, конкретнее, модель Sun Fire X4170 M2 (2 x Xeon 5670, 6 ядер, 2,93 ГГц, 96 Гбайт ОЗУ, 2 порта QDR, 2 порта 10 GbE, 4 порта 1 GbE, высота 1U.)
Storage Node (или Oracle Exadata Storage Server), ячейки хранения, не являются в системе пассивным элементом. Собственно, именно на них выполняются обработка SQL-инструкций, операции компрессии/декомпрессии данных и даже включаемые опционально алгоритмы шифрования данных. Физически Storage Node также представляют собой двухсокетовые серверы с развитой дисковой подсистемой – Sun Fire X4270 M2 c массивом из 12 дисков (в комплектации 2 x Xeon L5640 2,27 ГГц, 24 Гбайт ОЗУ, высота 2U). Существенным дополнением является встроенный модуль кэширования на основе флэш-памяти, используемый для увеличения скорости операций ввода-вывода на уровне Storage Node. В результате для несжатых данных обеспечиваются скорости до 50 Гбайт/с и до 1 млн операций ввода-вывода в секунду. Именно применение дополнительного уровня подсистемы памяти в виде аппаратного кэша во многом и позволяет поднять производительность системы до уровня, необходимого для работы под серьезной нагрузкой OLTP.
За счет переноса функций обработки данных на уровень серверов хранения обеспечивается полное распараллеливание работы дисков. В целом же для кластера снижается загрузка процессоров Database Node и значительно уменьшается объем передаваемых данных между нодами.
На Storage Node работает специальное ПО с такими функциями, как сжатие данных таблиц Hybrid Columnar Compression (сжимает до 10–15 раз, в зависимости от структуры и состава данных), внутреннее индексирование данных, фильтрация данных по условиям SQL, кэширование данных в Smart Flash Cache, контроль нагрузки ввода-вывода от различных экземпляров СУБД (IORM), шифрование.
На верхних уровнях сетевой модели связь между Database и Storage Node осуществляется по протоколу iDB (Intelligent DataBase Protocol). На нижних это, как уже было сказано, высокоскоростной InfiniBand.
Система гибко масштабируется. Рассмотренный схематично комплекс X2-2 Quarter Rack включает два Database Node, три Storage Node и два коммутатора InfiniBand. Следующий по мощности кластер в линейке, X2-2 Half Rack, включает уже четыре сервера СУБД, семь серверов хранения и три коммутатора. Полная стойка (Full Rack) – это два объединенных Half. Систему можно масштабировать до восьми стоек Full Rack без использования дополнительных коммутаторов InfiniBand (и в принципе неограниченно при использовании дополнительных). Существует и предложение высшего уровня на базе многопроцессорных серверов Oracle Exadata Database Machine X2-8.
Комплекс достаточно прост в развертывании и оптимизирован для быстрой миграции данных и приложений на него. Так, специалисты Jet рассказывают, что за месяц, прошедший с момента развертывания тестового стенда, они уже провели полноценное тестирование под реальной нагрузкой для трех заказчиков.
Стоимость проекта внедрения комплекса сильно зависит от того, каков состав уже имеющихся у заказчика лицензий на продукты Oracle, в частности на Oracle Database. Ориентировочные цены на «железо» и внутренний софт Exadata Machine можно почерпнуть из стандартного прайс-листа на сайте вендора.