Что такое DB2 pureScale

На пути к наивысшей масштабируемости и готовности в DB2

Основы DB2 pureScale с технологической точки зрения.

Пол Зикопулос (Paul C. Zikopoulos), лаборатория IBM в Торонто

Пол Зикопулос (Paul C. Zikopoulos), бакалавр гуманитарных наук, магистр управления бизнесом, является отмеченным наградами писателем и докладчиком Database Global Sales Support team (группы содействия продажам баз данных во всем мире). Иимеет более чем девятилетний опыт работы с DB2 и написал много статей для журналов и книг об этой СУБД. Пол был соавтором следующих книг: DB2 Version 8 (DB2 версия 8): The Official Guide (Официальное руководство), DB2 - The Complete Reference (DB2 – полное руководство), DB2 Fundamentals Certification for Dummies (DB2 - Основы сертификации DB2 для "чайников"), DB2 For Dummies (DB2 для "чайников") и A DBA's Guide to Databases on Linux (Базы данных в Linux - руководство для администраторов баз данных). Пол является сертифицированным техническим экспертом DB2 (в области DRDA (архитектура распределенной реляционной базы данных) и Cluster/EEE) и сертифицированным экспертам по решениям DB2 (средства бизнес-аналитики и администрирование баз данных). Вы можете связаться с ним по электронной почтеpaulz_ibm@msn.com.



Крис Итон, менеджер по продукции, DB2 Competitive Technology, IBM

Крис Итон (Chris Eaton) – технический популяризатор и старший менеджер по DB2; занимается главным образом планированием и стратегией. Отмечен наградами как докладчик на международных конференциях по DB2, автор многочисленных книг по DB2. Также ведет один из самых популярных блогов по DB2 по адресу http://it.toolbox.com/blogs/db2luw.



18.09.2012

Читайте эту статью в интерактивном цифровом формате!

В октябре 2009 года IBM анонсировала новую технологию IBM DB2 pureScale, нацеленную в первую очередь на кластеры интерактивной обработки транзакций (online transaction processing – OLTP) с горизонтальным масштабированием (scale-out clusters). DB2 pureScale – это новая функциональность, предоставляющая горизонтально масштабируемые сервисы типа активный-активный для IBM DB2, работающей в системе AIX на Power-серверах. Она позволяет реализовать самые высокие уровни распределенной готовности и масштабируемости хорошо продуманным и легко настраиваемым способом, намного проще, чем другие кластерные системы баз данных. В данной статье рассматриваются основы DB2 pureScale с технологической точки зрения и демонстрируется, как DB2 pureScale реализует прозрачную масштабируемость приложений и высочайшую готовность.

Я вижу, что ты делаешь

Если вы знакомы с технологией совместного доступа к данным в DB2 for z/OS, архитектура DB2 pureScale может показаться вам очень знакомой, и это действительно так. IBM взяла фундаментальные принципы этой технологии и объединила их с самыми передовыми технологиями распределенной обработки с целью достижения беспрецедентного уровня готовности и масштабируемости сервисов на распределенных платформах. Следует отметить, что система DB2, развернутая на серверах System z, уже обеспечивает первоклассную готовность. Например, банк Dominion Bank (TD Bank) обеспечивает стопроцентную доступность информации о клиентах уже 10 лет, в том числе и во время двух обновлений версий DB2 for z/OS. Даже президент крупнейшей конкурирующей с нами компании сказал о DB2 for z/OS: "Это первоклассная часть технологии".

На рисунке 1 показан пример среды DB2 pureScale. Сервер DB2, входящий в кластер pureScale, называется его участником. Каждый участник кластера может одновременно обращаться к одной и той же базе данных как по чтению, так и по записи. В настоящее время максимальное число участников кластера pureScale равно 128.

Рисунок 1. В кластере DB2 pureScale каждый участник имеет прямой, основанный на использовании памяти доступ к сервисам централизованной блокировки и кэширования сервера PowerHA pureScale
Figure 1

Сервер IBM PowerHA pureScale предоставляет сервисы централизованного управления блокировками, централизованный глобальный кэш для страниц данных (т.н. буферный пул группы (group buffer pool)) и т.д. Каждый участник группы совместного доступа DB2 pureScale может напрямую взаимодействовать с сервером PowerHA pureScale через сеть InfiniBand, используя User Direct Access Programming Library (uDAPL) - базовый протокол, не основанный на сообщениях (non-messaging base protocol), предоставляющий каждому участнику возможность подключения типа точка-точка к сервисам централизованной блокировки и кэширования.


Локальные агенты с доступом по всему кластеру

Прозрачное масштабирование приложений означает, что приложения не обязательно должны быть кластерными, для того чтобы использовать преимущества архитектуры горизонтального масштабирования. Чтобы реализовать такое масштабирование, DB2 pureScale использует технологию удаленного прямого доступа к памяти (remote direct memory access – RDMA) совместно с технологией PowerHA pureScale для устранения необходимости взаимодействия участников друг с другом при использовании сервисов управления блокировками и глобального кэширования.

RDMA позволяет каждому участнику кластера напрямую обращаться к памяти на сервере PowerHA pureScale (и наоборот) за считанные микросекунды. Например, предположим, что Участник 1 на рисунке 1 хочет прочитать страницу данных, отсутствующую в его локальном буферном пуле. DB2 назначает агента (или поток) для выполнения этой транзакции. Затем агент через RDMA выполняет прямую запись в память сервера PowerHA pureScale, демонстрируя свой интерес к данной странице памяти (эта процедура называется запросом чтения и регистрации – read-and-register request). Если страница, которую хочет прочитать Участник 1, уже находится в глобальном централизованном буферном пуле, сервер PowerHA pureScale помещает эту страницу непосредственно в память Участника 1 вместо выполнения агентом для этого участника операции ввода/вывода – чтения с диска. Фактически RDMA позволяет агенту участника просто выполнить операцию, которая выглядит как операция копирования локальной памяти, но на самом деле имеет целевым объектом адрес памяти удаленной машины.

Такие облегченные обращения к удаленной памяти наряду с функциональными возможностями централизованного буферного пула и управления блокировками означают, что приложению не нужно подключаться к участнику, на котором данные уже размещены, для реализации масштабируемости. Точно таким же эффективным для любого участника кластера является получение страницы данных из глобального буферного пула, независимо от размера кластера. Большинство RDMA-вызовов выполняются настолько быстро, что DB2-агенту, выполняющему вызов, даже не нужно освобождать ЦП на время ожидания ответа. Например, для уведомления сервера PowerHA pureScale о том, что строка может быть обновлена (и, следовательно, необходима X-блокировка), агент участника выполняет запрос Set Lock State (SLS), записывая информацию о блокировке непосредственно в память сервера PowerHA pureScale. Весь цикл этой SLS-операции может занимать менее 15 микросекунд, поэтому агенту можно не освобождать ЦП для выполнения других операций.


Знает ли кластер о том, где находятся ваши страницы

DB2 pureScale выводит понятие готовности совершенно на новый уровень. Если на одном из участников кластера DB2 pureScale происходит сбой, DB2 сохраняет полный доступ ко всем страницам данных, для которых не требуется аварийное восстановление. Более того, DB2 всегда знает о конкретных страницах, нуждающихся в восстановлении, даже не выполняя ни одной операции ввода/вывода. Как это происходит? Каждый раз, когда участник считывает страницу в свой буферный пул, сервер PowerHA pureScale отслеживает не только эту "заинтересованность", но и запросы участников на обновление строк в этой странице. При любой фиксации транзакции приложением страницы с измененными данными (dirty pages) записываются непосредственно на сервер PowerHA pureScale. При сбое на каком-либо участнике кластера сервер PowerHA pureScale имеет список страниц, которые находились в процессе обновления этим участником, а также страниц, которые были обновлены и зафиксированы им, но еще не были записаны на диск.

Когда сбой происходит на кластере с общими дисками, очень важно, чтобы никакой другой узел в кластере не читал и не обновлял с диска страницы, которые еще не были восстановлены. Поскольку сервер PowerHA pureScale знает, какие страницы находились в процессе обновления аварийным узлом, и сервер PowerHA pureScale уже имеет зафиксированные страницы с измененными данными от этого участника в своем централизованном буферном пуле, в DB2 pureScale не требуется блокировать продолжение обработки транзакций другими участниками при блокировке страниц, требующих восстановления.

Более того, процесс восстановления в DB2 pureScale происходит очень быстро. Каждый участник имеет процессы, находящиеся в состоянии простоя, но готовые активизироваться в случае сбоя. При сбое какого-либо из участников кластера один из этих резервных процессов активизируется. Поскольку процессы уже существуют, операционной системе не приходится тратить драгоценное время на создание процесса, выделение ему памяти и т.д. Такой процесс восстановления немедленно начинает предварительную выборку страниц с измененными данными из централизованного буферного пула в свой собственный локальный буферный пул. В большинстве случаев процесс восстановления не требует дополнительных операций ввода/вывода, поскольку страницы, нуждающиеся в восстановлении, с большой вероятностью уже находятся в централизованном буферном пуле и могут быть переданы за считанные микросекунды при помощи RDMA. Тем временем все другие приложения остальных участников продолжают обрабатывать транзакции на любой странице, не требующей восстановления и чтения с диска, поскольку сервер PowerHA pureScale знает, какие страницы на диске являются чистыми, а какие нужно восстановить.

Для типичных транзакционных рабочих нагрузок время от сбоя участника кластера до завершения восстановления страниц и готовности к следующей транзакции занимает не более 20 секунд. Отметим, что в это время восстановления входит время обнаружения сбоя, которое многие производители исключают при рассмотрении процесса восстановления.

Наконец, стоит отметить, что компоненты в кластере, включая сам сервер PowerHA pureScale, поддерживают резервирование. DB2 pureScale позволяет дублировать функциональность сервера PowerHA pureScale, чтобы хранить информацию о блокировках и общем кэше в двух местах на случай серьезных сбоев.


Резюме

Мы лишь вкратце рассмотрели возможности pureScale. Большая часть работы выполняется за кулисами, поэтому изучите ссылки, приведенные в разделе "Ресурсы". Основной вывод таков: если для ваших приложений требуется высочайший уровень готовности в конфигурации активный-активный с горизонтальным масштабированием, DB2 pureScale предоставляет самые передовые возможности для поддержания непрерывности ваших бизнес-процессов. Благодаря прозрачной масштабируемости приложений вам больше не нужно создавать приложения специально для кластерной среды, чтобы включить в работу дополнительные серверы.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=835479
ArticleTitle=Что такое DB2 pureScale
publish-date=09182012