Назад в раздел
Реализация СУБД Teradata на серверах серии World Mark 5100/5150/4700 и 4300.
Реализация СУБД Teradata на серверах серии World Mark 5100/5150/4700 и 4300.
описана аппаратная реализация СУБД Терадата на многопроцессорных серверах NCR серии World Mark и показано, как был усовершенствован многомерный параллелизм СУБД Teradata "shared nothing" для того, чтобы добиться исключительной масштабируемости системы NCR WorldMark 5150. Уникальное сочетание всех этих возможностей дает возможность создать системы, обладающие превосходными характеристиками производительности машин класса SMP, высокой надежностью кластерных систем и несравненной мощности MPP.
Перенос СУБД Teradata на UNIX систему, состоящую всего из одного узла SMP, привел к такому улучшению показателя Цена/Производительность, что СУБД Терадата стала конкурентоспособной по сравнению с другими коммерческими СУБД, размер БД данных в которых составляет всего 10 Гбайт. При сравнении характеристик в диапазоне больших по объему баз данных, программное обеспечение СУБД Teradata, работающее на компьютере 5150, позволяет обрабатывать данные объемом до 100 Тбайт. Следует сказать, что 100 Тбайт является лишь "теоретическим" пределом объема БД. На сегодняшний день самым крупным в мире хранилищем данных в 24 Тбайта является ХД построенное компаний Wal Mart, для сети магазинов розничной торговли в США.
Системы с объемом данных порядка 100 Tбайт предъявляют повышенные требования к дисковым системам хранения данных, производительности и надежности работы критически важных для бизнеса приложений. Критерии производительности, которым необходимо отвечать для поддержки эффективной обработки больших по объему данных, включают как возможности отвечать на непредсказуемые запросы многих пользователей, так и возможность эффективного обновления данных, а также возможность эффективного выполнения загрузки/выгрузки данных. Когда пользователь хочет обрабатывать терабайты корпоративных данных, то СУБД должна обеспечить готовность этих данных 24 часа в сутки, 7 дней в неделю, 52 недели в году. Именно с этих позиций компания NCR оценивает надежность работы СУБД Teradata для ОС UNIX на серверах серии WorldMark.
СУБД Teradata может функционировать на трех типах архитектур:
Архитектура SMP: Параллелизм СУБД Teradata функционирует на аппаратной многопроцессорной SMP модели.
Кластерная архитектура: СУБД Teradata функционирует на аппаратной кластерной модели, в которой отсутствуют разделяемые ресурсы, за исключением системы дисковой памяти.
Архитектура MPP: СУБД Teradata функционирует на нескольких кластерах, в которых отсутствуют разделяемые ресурсы.
Когда система имеет разделяемый ресурс, то этот ресурс становятся "узким местом" в системе при росте объемов баз данных до уровня терабайт. Именно по этой причине архитектура SMP, где все аппаратные ресурсы разделяемы, а также кластерная архитектура, имеющая разделяемые диски, не являются достаточными для БД большого объема. А вот архитектура МРР вполне пригодна для реализации всех возможностей СУБД Teradata, поскольку в этой архитектуре отсутствуют "узкие места", связанные с использованием разделяемых ресурсов. МРР архитектура объединяет в себе мощь аппаратного обеспечения серверов World Mark 5150 и мощь ядра СУБД Teradata, что делает возможным работу с несколькими БД, с объемом данных в терабайты.
В зависимости от объемов пользовательских данных можно определить требуемую аппаратную архитектуру, необходимую пользователю.
Узел SMP
На рисунке справа показан график зависимости Производительность/цена от числа ЦП, добавляемых в архитектуру SMP. Добавление ЦП ведет к увеличению производительности, но это также приводит к росту стоимости. При хорошей реализации архитектуры SMP добавление первых ЦП приводит к линейной зависимости (т.е. линейной масштабируемости). Дальнейшее увеличение числа ЦП не приводит к такому же росту Цена/Производительность из-за "узкого места" этой архитектуры - разделяемых ресурсов. Это свойственно всем SMP архитектурам. Единственное что меняется - масштаб этого графика.
Основной задачей при внедрении СУБД Teradata на SMP узле является создание по возможности наиболее экономичной системы, с оптимальной производительностью.
Цена/производительность SMP узла
На рынке компьютерных систем идут споры и дискуссии о сравнительных достоинствах архитектур SMP и MPP. Диапазон этих дискуссий простирается от утверждения "SMP может все!" до утверждения "только MPP может масштабироваться". СУБД Teradata обходит эти проблемы, используя самый эффективный узел SMP (исходя из соотношения Цена/Производительность) и использует этот узел как основу для перехода в архитектуру MPP. Даже там, где это действительно так, и системы SMP имеют перспективы, их использование становится неэкономичным, так как выгоды от добавления дополнительных ЦП компенсируются неэффективностью использования системной шины, из-за большого числа обращений к ней. Увеличение числа эффективно используемых ЦП в архитектуре SMP требует больших затрат на улучшение работы системной шины. Во многих случаях эти деньги лучше потратить на переход к архитектуре MPP.
Таким образом имеется дилемма, что дороже : стоимость нескольких ЦП или стоимость соединительной платы. Пусть, к примеру, вычислительная мощность системы SMP, состоящей из 32 ЦП, распределена следующим образом: 90% своей мощности дает каждый из первых 16 ЦП, а 10% своей мощности - каждый из оставшихся 16 ЦП. Теперь предположим, что в двухузловой системе, имеющей на каждом SMP узле 10 ЦП, мощность распределена следующим образом: 80% своей мощности дает каждый ее ЦП. Очевидно, что эти две системы имеют одинаковые вычислительные мощности, хотя у второй системы на 12 ЦП меньше. Система, состоящая из 20 ЦП, будет иметь меньшую стоимость, если стоимость поддержки взаимодействия двух узлов системы не превышает стоимость 12 дополнительных ЦП для одного узла системы.
Еще сравнительно недавно выпускались системы SMP, которые поддерживали еще большее число ЦП. Возможно в будущем эта тенденция будет продолжена, а возможно и нет. В связи с поступлением на рынок процессора P7 фирмы Intel и сравнительно медленным ростом возможностей ввода/вывода, скорее всего число мощных и дорогих ЦП в системах SMP будет уменьшаться.
На сегодняшний день в одном узле сервера World Mark 5150 установлено 4 процессора Intel Pentium Pro с частотой 200 МГц. При этом система в минимальной конфигурации реализуется на двух SMP узлах. 8 ЦП является оптимальным значением для СУБД Teradata. СУБД Teradata может работать в системах SMP, кластерных архитектурах и системах MPP.
Реализация СУБД Терадата в архитектуре SMP (5100S, 4300 или 4700)
Реализация в SMP узле
На рисунке наглядно показана реализация СУБД Teradata на узле SMP. Несколько процессоров AMP и несколько виртуальных процессоров PE функционируют на одном узле, состоящем из нескольких ЦП, с помощью разделяемого расширения PDE. Коммуникационный слой передачи сообщений (Message Passing Layer) реализован программно как Vnet (Virtual Network - виртуальная сеть). Vnet используется передачи сообщений между виртуальными процессорами. При этом разделяются только компоненты ОС, PDE и Vnet. Виртуальные процессоры СУБД ничего не разделяют. В действительности она даже не знают, разделяют ли они аппаратные ресурсы вместе с другими виртуальными процессорами или нет.
В этой модели разделяются все аппаратные ресурсы (в том числе системная шина и каналы SCSI IO). Как и в других системах с разделяемыми ресурсами, указанные разделяемые ресурсы время от времени становятся "узким местом" в системе.
На следующем рисунке показано, как виртуальные процессоры AMP поддерживают параллелизм операций ввода/вывода в СУБД Teradata. Этот рисунок наглядно иллюстрирует сканирование данных одним процессором АМР (реализованным аппаратно) на узле SMP, при этом показано выполнение аналогичной операции, осуществляемой на нескольких виртуальных процессорах на узле SMP, с расширением PDE.
Распараллеливание ввода/вывода
Реализация СУБД Терадата в кластерной архитектуре (5100C, 4700 и 5150)
Реализация СУБД Teradata в кластерной архитектуре из нескольких узлов SMP, соединенных с помощью высокоскоростной шины BYNET представлена на рисунке ниже. На каждом узле функционирует несколько виртуальных процессоров AMP и несколько виртуальных процессоров PE. Эти процессоры могут быть равномерно распределены по узлам; либо конкретные узлы могут быть выделены для виртуальных процессоров AMP или PE. Рекомендуется использовать конфигурацию с равномерным распределением виртуальных процессоров. Коммуникационный слой передачи сообщений (Message Passing Layer) реализован как комбинация программного обеспечения PDE и BYNET.
Никакое программное обеспечение не разделяется между этими узлами, поэтому архитектура "shared nothing" для СУБД Teradata естественным образом поддерживается в такой архитектуре. Каждый виртуальный процессор AMP монопольно владеет своей долей дискового пространства, на подключенном в систему дисковом массиве RAID. Единственным разделяемым аппаратным ресурсом являются BYNET (шина для коммуникации виртуальных процессоров между собой) и шина SCSI интерфейса.
Кластер СУБД Teradata
Помимо виртуальных процессоров AMP и PE, каждый узел может иметь соединение с локальной сетью, до восьми канальных соединений с мэйнфреймами и UNIX приложения (напр. ASF2). Два узла - это минимальная конфигурация одного кластера, максимальная конфигурация - 16 узлов на один кластер. Системный администратор может определять количество и расположение всех виртуальных процессоров.
Шина BYNET
Одна из уникальных отличительных особенностей больших систем NCR - это высокоскоростная шина BYNET. Она позволяет осуществлять масштабирование систем до огромных размеров. Bynet была спроектирована специально для работы с СУБД Teradata, а СУБД Teradata была спроектирована под шину BYNET. Этот программно-аппаратный тандем является ключевым фактором для объединения серверов серии World Mark с СУБД Teradata. BYNET - это отказоустойчивая, интеллектуальная, высокоскоростная, полностью масштабируемая сеть с коммутируемыми соединениями, обеспечивающая скорость передачи 20 МБ в секунду на один узел. Таким образом, кластер из 8 узлов 5100 будет иметь общую пропускную способность 160 МБ/сек.
Другие средства коммутации предлагают еще большую пропускную способность, однако не является главным. В действительности, если СУБД нужна более высокая пропускная способность, чем у BYNET, то это значит, что структура базы данных достаточно плохо спроектирована. Например, некоторые бизнес-приложения WalMart работают с базой данных в 3 ТБ на машине 3600, в системе функционируют 365 виртуальных процессора AMP, при этом загрузка на канал связи составляет всего лишь 22 МБ/сек.
Энергонезависимая память
Когда SQL-запрос обновляет блок данных, копия обновлений направляется по BYNET соседнему узлу, находящемуся в том же самом кластере. Если происходит сбой узла-источника, то соседний узел помещает блок данных на диск узла-источника. Такой алгоритм работы позволяет рассматривать память как энергонезависимую (NVRAM). Наличие нескольких гигабайтов NVRAM позволяют предотвратить сбои для описанной выше операции, характерный для систем из одного SMP узла.
Высокая надежность системы
Обеспечение Высокой надежности в кластере
В СУБД Teradata имеется достаточно много механизмов по обеспечению высокой надежности системы. Эти механизмы показаны на рисунке выше. При возникновении внутренних сбоев BYNET будет автоматически перенаправлять сообщения. В случае полного сбоя сети BYNET, программное обеспечение будет перенаправлять пакеты по другим сетям. Поддержка дисковых массивов RAID гарантирует жизнеобеспечение системы в случае сбоя или замены дисков, а поддержка RDAC гарантирует жизнеобеспечение системы в случае сбоя или замены дискового контроллера. Защита от сбоев электропитания выполняется за счет сохранения копии содержимого оперативной памяти на диске, и ее последующего восстановления после включения питания.
Все эти механизмы восстановления системы от сбоев не требуют перезапуска системы и не влияют на выполнение текущих транзакций.
Программное обеспечение PDE, входящее в состав СУБД Teradata, также имеет механизмы восстановления после полного сбоя узла системы. Все виртуальные процессы отказавшего узла перенаправляются на остальные узлы кластера. На это требуется всего 90 - 120 секунд, в течение которых перезапускается база данных и происходит выравнивание нагрузки в системе. После перезапуска базы данных все AMP восстанавливаются, а это значит, что база данных снова становится доступной для пользователей.
Если произойдет сбой других узлов этого же кластера, то используется та же самая схема. 100%-ая готовность пользовательских данных гарантируется даже тогда, когда работоспособными остаются : один диск в каждом rank'e дискового массива, один контроллер дискового массива, один маршрут в сети BYNET и один узел. Такой уровень обеспечения высокой надежности СУБД Teradata не требует больше использования механизма резервного копирования данных между АМР-ми (т.н. механизм FALLBACK). Следует обратить внимание на то, что по мере выхода из строя компонентов системы производительность падает, а если число работоспособных узлов уменьшается до одного, то также невозможно будет воспользоваться механизмом NVRAM.
Масштабируемость системы
На рисунке ниже показана масштабируемость кластера, узлы которого соединены между собой сетью BYNET. Измерения показали, что на одном узле системы 3600 могут работать 20 процессоров AMP, а на четырех узлах может работать 80 виртуальных процессоров AMP. Эти результаты подтверждают линейный рост масштабируемости. Сервер серии World Mark 5100 унаследовал все достоинства масштабируемости от своего предшественника.
Масштабируемость кластера
|