Сеть распределенных вычислений: решения Oracle



Традиционные информационные инфраструктуры предлагают организациям «островки» вычислительных ресурсов и программного обеспечения, которые сложно объединить и которыми сложно управлять. Эти системы были разработаны для того, чтобы справляться с максимальной нагрузкой, которая может возникнуть один раз в квартал или один раз в год. Как результат, эти информационные инфраструктуры зачастую становятся весьма неэффективными. Решения Oracle помогают справиться с этой проблемой и дают возможность пользователям экономить время, людские ресурсы и снижать расходы на поддержание деятельности информационных систем за счет объединения серверов, соответствующих отраслевым стандартам, и систем хранения данных в единую инфраструктуру, которая может быть настроена в соответствии с меняющимися потребностями бизнеса. Сегодня Oracle – один из лидеров в азработке программного обеспечения для сетей распределенных вычислений.

Сеть распределенных вычислений: общие понятия

В современных условиях главным требованием времени к информационным технологиям является доступная стоимость внедрения и владения. Предприятия ищут способы сокращения расходов и повышения эффективности своих процессов и систем, а это, собственно, и обещают технологии сетей распределенных вычислений. Такой подход повышает эффективность ресурсов предприятия и предлагает способ консолидации уже имеющегося оборудования – чтобы исключить «белые пятна» компьютеров, ресурсы которых задействованы пока не полностью. Можно создавать централизованные пулы вычислительных ресурсов и распределять их в соответствии с приоритетами организации. Главная идея сети распределенных вычислений состоит в предоставлении вычислений как коммунальных услуг. Пользователям не придется заботиться о том, где находятся актуальные данные или к каким вычислительным процессам они обращаются. Пользователей интересует возможность запрашивать информацию или вычисления и получать их в нужном объеме и в нужное время. Именно так действует электрическая сеть – в том смысле, что людям не обязательно знать, где расположены генераторы и как проложены линии электропередачи. Поэтому цель можно сформулировать так: превратить вычисления в коммунальную услугу, доступную всегда и везде. Отсюда и термин – «сеть распределенных вычислений».

Конечно, подход к вычислениям как к коммунальной услуге соответствует взгляду со стороны клиента. Со стороны же сервера, то есть изнутри, сеть распределенных вычислений – это выделение ресурсов, распределение информации и обеспечение высокой степени готовности. Выделение ресурсов означает, что все, кто нуждается в ресурсах или запрашивает их, получат то, что им нужно. При наличии свободных ресурсов запросы не могут оставаться неудовлетворенными. Распределение информации означает, что информация, необходимая пользователям и приложениям, доставляется туда и тогда, где и когда она требуется. Высокая степень готовности означает, что все данные и вычисления доступны постоянно – точно так же, как энергетическая компания обеспечивает бесперебойную подачу электроэнергии.

Сеть распределенных вычислений в корне меняет способ использования предприятиями своих ресурсов – она их виртуализирует. Ресурсы становятся виртуальными, т.е. их можно распределять между серверами вычислительного центра, между вычислительными центрами предприятия и между самими предприятиями.


Технологии Oracle для поддержки концепции сети распределенных вычислений

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

Недорогое оборудование, такое как blade-серверы, и недорогие операционные системы, такие как Linux, гарантируют максимальную экономическую эффективность сети распределенных вычислений. Чтобы использовать имеющиеся ресурсы с полной отдачей, рекомендуется применять именно эти компоненты.

Концепция сети распределенных вычислений созвучна с подходами корпорации Oracle к построению информационных систем. Она согласуется с функциональностью продуктов и технологиями, которые Oracle разрабатывает уже много лет. И сегодня корпорация предлагает реальную технологию сети распределенных вычислений, которая поможет извлекать из нее максимум преимуществ. Oracle 10g содержит оригинальные базовые технологии для создания GRID – Oracle Real Application Clusters, Oracle Streams и Oracle Transportable Tablespaces. Семейство программных продуктов Oracle 10g отвечает эксплуатационным требованиям сети распределенных вычислений, таким как универсальность, RAS (надежность, готовность, удобство обслуживания), защищенность, масштабируемость и управляемость.

Oracle 10g обладает необходимой архитектурой для создания будущих компьютерных технологий на основе сети распределенных вычислений. Все технологии Oracle продуманы и разработаны таким образом, чтобы оптимально работать в сети. Комплект инструментов Oracle Globus Development Kit (OGDK) позволяет применять технологию Oracle со стандартными инструментами Globus. Корпорация Oracle намерена полностью поддерживать новые стандарты сети распределенных вычислений и сотрудничает с этой целью с организацией Global Grid Forum (GGF).


Oracle Real Application Clusters

В основе решения Oracle Grid Computing лежит технология кластеризации БД Oracle Real Application Clusters. Создание технологии Oracle Real Application Clusters является результатом десятилетней деятельности по разработке программного обеспечения, в которой участвовали более 550 клиентов из 44 стран. С новым решением развертывание и управление кластерами БД как сетью распределенных вычислений предприятия стало проще за счет использования интегрированного кластерного программного обеспечения (integrated clusterware). Это программное обеспечение представляет собой набор общих сервисов по обслуживанию кластеров, встроенных в Oracle Database 10g с целью облегчить создание кластеров базы данных и управление ими. Решение Oracle Real Application Clusters 10g также включает новое программное обеспечение для управления рабочей нагрузкой кластеров, предназначенное для перераспределения вычислительных возможностей компонентов кластерной базы данных, как только это потребуется для решения бизнес-задач. Это новое программное обеспечение поможет пользователям создавать большие по объему кластеры из недорогих серверов с целью организации распределенной корпоративной вычислительной системы.

В Oracle Database 10g включены усовершенствованные возможности автоматизированного управления и новая консоль Database Control с web-интерфейсом. Database Control представляет собой диагностический монитор, отображающий в графическом виде текущее состояние функционирующей базы данных. Администраторы могут проводить профилактический мониторинг баз данных и быстро получать предупреждения и рекомендации с целью обеспечения оптимальной производительности и надежности работы систем. Консоль Database Control может даже выявить неудачно написанный фрагмент кода приложения, предложить лучший вариант и автоматически настроить базу данных для обеспечения оптимальной производительности.

Кроме того, возможность Oracle Database 10g осуществлять автоматическое управление избавляет от необходимости выполнять сложные повторяющиеся задачи, такие как диагностика производительности, настройка приложений и управление распределением памяти. Новое программное обеспечение включает механизм самодиагностики, который автоматически выявляет любые проблемы, связанные с производительностью или функциональностью системы, и предоставляет рекомендации по устранению неполадок. Эти возможности обеспечивают немедленное снижение нагрузки на сотрудников, обслуживающих информационные системы, а также долговременные преимущества при построении сети распределенных вычислений предприятия.

Oracle Database 10g включает также модуль автоматического управления хранилищем данных (Automatic Storage Management, ASM) – новое ПО, предназначенное для упрощения конфигурирования системы хранения данных и управления базами данных. Модуль ASM избавляет от необходимости знать о том, как база данных взаимодействует с файлами данных и подсистемами хранения данных. Он также автоматически распределяет нагрузку на систему хранения данных с целью достижения наивысшей производительности системы. Модуль ASM исключает необходимость постоянного мониторинга систем хранения данных на предмет поиска «точек повышенной загрузки» и «узких мест», которые снижают скорость обработки данных.

Модуль ASM также позволяет сэкономить на приобретении программного обеспечения сторонних производителей, обеспечивающего управление томами системы хранения данных и файловой системой, за счет полной автоматизации хранения файлов и данных. Используя модуль ASM, клиенты могут значительно упростить структуру информационного центра и снизить расходы на управление системой. Oracle наладил сотрудничество с компаниями-разработчиками промышленных систем хранения данных, такими, как EMC, Hitachi, HP, Network Appliance и Xiotech, для того чтобы обеспечить возможность совместной работы модуля ASM с сетевыми устройствами хранения данных и сетями хранилищ данных, предлагаемыми этими компаниями.

Oracle Database 10g проявила себя как лучшая СУБД на недорогих компьютерных платформах. СУБД Oracle 10g для Linux-кластеров обладает высокой масштабируемостью, что было доказано на вычислительных комплексах с 32 и более узлами. Как выяснилось, не существует принципиальных технологических барьеров для увеличения числа узлов в кластерах. RAC обеспечивает высокую степень утилизации ресурсов, причем на недорогих blade-фермах.

Технология Oracle RAC основана на архитектуре с разделяемым диском (shared disk architecture), что отличает ее от СУБД других производителей, которые строятся на принципиальной иной архитектуре (shared nothing architecture). Данные в такой архитектуре искусственно разнесены по сегментам базы данных. При добавлении новых blade-серверов все данные нужно заново сегментировать, чтобы перенести часть из них на новые серверы. Аналогично, когда нужно изъять из системы blade-серверы, данные тоже приходится предварительно сегментировать.


Архитектура shared disk
Архитектура shared nothing
Проверена на рабочих приложенияхПроверена на тестах
Естественная сегментация данныхИскусственная сегментация данных
Свободное добавление blade-серверов в конфигурациюДобавление серверов с перераспре-делением данных по сегментам
Свободное исключение blade-серверов из конфигурацииИсключение серверов с перераспре-делением данных по сегментам
Все данныеПодмножества данных
Таблица 1. Преимущества архитектуры shared disk


Распределение информации

Главное преимущество – предоставление информации в нужный момент независимо от ее местонахождения. Чтобы обрабатывать информацию на любом доступном ресурсе, сеть распределенных вычислений должна эффективно распределять информацию между множеством систем, а также обеспечивать доступ к данным, хранящимся в неоднородных системах — базах данных и файловых системах от разных производителей.

Модуль Oracle Transportable Tablespaces

Модуль Oracle Transportable Tablespaces обеспечивает пользователей сети распределенных вычислений чрезвычайно быстрым механизмом перемещения подмножества данных из одной базы данных Oracle в другую. Transportable Tablespaces позволяет выделять фрагменты баз данных Oracle, переносить или копировать их в другое место, а затем присоединять к другой базе данных. Перемещение фрагментов данных заключается лишь в считывании или записи небольшого количества метаданных. Кроме того, Transportable Tablespaces может одновременно составлять таблицы «только для чтения» из двух или более баз данных.

Модуль Oracle Streams

Некоторые данные должны распространяться только в момент их создания или изменения. Модуль Oracle Streams позволяет распространять данные среди баз данных, узлов или ферм blade-серверов сети распределенных вычислений. Он создает унифицированную структуру для распространения данных, формирования очередей сообщений, репликации, управления событиями, загрузки данных в хранилище, оповещений и публикации/подписки в рамках единой технологии. Oracle Streams может синхронизировать одновременно две или более копии баз данных по мере их обновления. Модуль автоматически регистрирует изменения в базе данных, распространяет эти изменения в узлы, которые подписаны на получение этих изменений, реализует их; а также обнаруживает и разрешает возможные конфликты по данным. Модуль может использоваться приложениями и непосредственно для организации очередей сообщений, обеспечивающих связь между приложениями в пределах сети распределенных вычислений.

Модули Distributed SQL и Distributed Transactions

С помощью модуля Oracle Distributed SQL пользователи сети распределенных вычислений могут эффективно получать и объединять данные, хранящиеся в различных базах данных Oracle и базах данных других производителей. Прозрачный удаленный доступ к данным посредством Distributed SQL позволяет приложениям работать с любой другой базой данных без внесения каких-либо изменений в код программ. В процессе интеграции данных из нескольких источников СУБД Oracle оптимизирует планы исполнения запросов. Кроме того, СУБД Oracle автоматически выполняет транзакции с данными из нескольких источников. Функция Oracle XA позволяет пользователям сети распределенных вычислений координировать выполнение транзакций, затрагивающих несколько баз данных.

Гетерогенный доступ посредством механизмов Transparent Gateways

Корпорация Oracle разработала и уже в течение длительного времени предлагает пользователям семейство продуктов, называемое Integration Products (куда включены также и шлюзы). Данная группа продуктов направлена на решение интеграционных задач и позволяет в совокупности с другими продуктами Oracle (в частности, с продуктами семейства Oracle Database) построить эффективную программную инфраструктуру современной информационной системы. Главная идея, положенная в основу технологии шлюзов Oracle, состоит в возможности простой интеграции СУБД и других продуктов ведущих поставщиков ПО в программную среду на основе продуктов Oracle. То есть технология шлюзов Oracle позволяет унифицировать доступ к данным (Oracle SQL) и процедурам, равно как и сетевое взаимодействие на прикладном уровне (Oracle SQL*Net) в вычислительной системе со сложной неоднородной архитектурой.

В данную группу включены следующие продукты:

Планирование ресурсов и управление ими

Контролируемый доступ и выделение ресурсов: доступ к ресурсам сети распределенных вычислений осуществляется посредством динамического опроса пользователей внутри или внутри и вне предприятия. В такой среде требуется планировать задачи и выделять им соответствующие ресурсы.

Возможности планирования в СУБД Oracle

Пользователи сети распределенных вычислений могут применять функции планирования работ в СУБД Oracle. Функции управления очередями заданий (jobs) обеспечивает гибкий механизм планирования задач СУБД. Задания можно выполнять в определенное время и с определенными временными интервалами. Имеется возможность указать максимальное число процессов, которое будет использоваться для выполнения заданий. При использовании OracleReal Application Cluster 10g можно направить задание на любой из доступных узлов для исполнения соответствующим экземпляром Oracle Database.

Oracle Resource Manager

Oracle Resource Manager позволяет администраторам ресурсов ограничивать ресурсы СУБД Oracle, выделяемые пользователям сети. Функция управления ресурсами гарантирует, что каждый пользователь сети получит долю имеющихся вычислительных ресурсов в соответствии с их (пользователей) приоритетами.

Стандартная среда сети распределенных вычислений

Комплект инструментов разработки Oracle Globus


Комплект инструментов разработки Globus содержит набор компонентов, которые можно использовать для создания приложений сети распределенных вычислений, а также инструменты программирования. Комплект Globus стал стандартом де-факто среды разработки сети распределенных вычислений. Oracle Globus Development Kit (OGDK) содержит сценарии для эффективного использования технологии Oracle с комплектом инструментов Globus.

Доступ через сеть распределенных вычислений к Oracle10g Utilities

Модуль Globus Resource Allocation Manager (GRAM) обеспечивает выделение ресурсов, создание и мониторинг процессов, а также управление ими. GRAM преобразуют запросы на языке Resource Specification Language (RSL) в команды, понятные локальным планировщикам. Применяя эту функцию, пользователи сети распределенных вычислений могут удаленно задействовать такие утилиты Oracle, как export, import и sqlplus, для выполнения необходимых действий в Oracle Database 10g. Этот механизм можно использовать для настройки удаленных баз данных в сети распределенных вычислений.

Доступ через сеть распределенных вычислений к Oracle10g Database

Эта функция OGDK предусматривает использование модуля Globus GRAM для исполнения программ PL/SQL или команд SQL, описанных в Globus RSL. Она может применяться и для передачи заданий планировщику Oracle через API PL/SQL планировщика. Благодаря этому пользователи сети могут выполнять задачи на удаленных базах данных, планировать и контролировать их исполнение.

Служба информации о ресурсах сети (GRIS) для Oracle Database

Служба информации о ресурсах сети распределенных вычислений (GRIS), входящая в комплекс инструментов Globus, предоставляет информацию для контроля за ресурсами сети распределенных вычислений и их обнаружения. Эта функция позволяет пользователям сети распределенных вычислений обнаруживать базы данных Oracle и проверять их. GRIS для Oracle Database отображает атрибуты и свойства базы данных, которые могут потребоваться пользователям сети распределенных вычислений.

Универсальность

Главный принцип: использование всех доступных ресурсов — в том числе аппаратных и ресурсов операционной системы — для решения задачи: Приложения в среде сети распределенных вычислений должны быть универсальными. Чтобы использовать доступные ресурсы, приложения должны работать на любой аппаратуре и любой операционной системе без каких-либо модификаций.

Универсальность Oracle

Универсальность Oracle по отношению к операционным системам и оборудованию означает, что все продукты семейства Oracle 10g способны поддерживать неоднородные сети распределенных вычислений, которые, как известно, позволяют использовать любое имеющееся оборудование, а не только оборудование одного производителя. Oracle 10g может работать как в конфигурациях сети распределенных вычислений, так и вне их, так что можно, например, взять приложение, разработанное для SMP-систем, и перенести его в инфраструктуру сети распределенных вычислений. Oracle 10g работает на всех популярных операционных системах, причем обеспечивает одни и те же функции и возможности, так как базовый код остается тем же. Универсальность Oracle означает, что, в каком бы направлении ни развивалась сеть распределенных вычислений, какая бы операционная система в ней ни доминировала, Oracle 10g все равно будет работать в этой сети.

Использование сети распределенных вычислений

Утилизация ресурсов


Утилизация простаивающих ресурсов – один из примеров применения сети распределенных вычислений. Идея утилизации неиспользуемых ресурсов тысяч персональных компьютеров, простаивающих каждую ночь, чрезвычайно привлекательна, и часто именно с нее организации начинают углубляться в изучение преимуществ сети распределенных вычислений. У такого решения, не требующего, на первый взгляд, почти никаких затрат, огромный потенциал. Особенно популярно оно среди ученых: при значительной нехватке средств им приходится решать параллельные задачи (такие задачи можно разбить на части и решать независимо, не обмениваясь информацией между параллельными процессами). Типичным примером сети распределенных вычислений является центральный сервер, распределяющий работу между большим числом небольших компьютеров. Этот же сервер собирает и систематизирует результаты расчетов. И все же, несмотря на все выгоды доступа к большому числу обрабатывающих узлов при малых затратах, у такой модели сети распределенных вычислений много ограничений. Главная проблема в том, что ресурсы – простаивающие персональные компьютеры – часто выходят из-под административного контроля тех, кто ими пользуется. Степень готовности и надежности распределенных ресурсов ограничена, что чрезвычайно затрудняет планирование вычислений. Кроме того, слабость или отсутствие модели доверия (trust model) в таких сетях распределенных вычислений препятствуют их использованию для обработки какой бы то ни было конфиденциальной или частной информации. Наконец, класс приложений, допускающих распараллеливание, весьма ограничен, что минимизирует преимущества таких сетей распределенных вычислений для многих организаций.

Тем не менее утилизация ресурсов посредством сети распределенных вычислений успешно применяется для решения сложных проблем. Примером такой реализации сети распределенных вычислений можно считать проект SETI@home, в котором свободные компьютеры, подключенные к интернету, обрабатывают данные радиотелескопа с целью поиска признаков существования внеземных цивилизаций.


Разделение ресурсов

Разделение ресурсов – еще один способ реализации сети распределенных вычислений. Внедрив сеть распределенных вычислений с разделением ресурсов, организации смогут задействовать недоиспользуемые ресурсы в пределах одного или нескольких предприятий. Участники такой сети распределенных вычислений получают возможность легко обмениваться вычислительными ресурсами и данными, перемещая приложения и информацию по сети распределенных вычислений с тем, чтобы задействовать свободные ресурсы. В результате создается умеренное число средних и крупных узлов, которые могут относиться к одному административному домену или охватывать несколько административных доменов. Планировщики сети распределенных вычислений следят за наличием свободных ресурсов и должным образом распределяют их. Участники получают преимущество благодаря доступу к дополнительным общим ресурсам при минимальном вложении средств. Такие сети распределенных вычислений строятся с применением существующих ресурсов и могут задействовать не полностью используемое устаревшее оборудование.

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

Для внедрения сети распределенных вычислений такого типа многие заказчики применяют технологию Oracle. CERN выбрал технологических партнеров для реализации проекта сети распределенных вычислений LHC (Большой Адронный Коллайдер), которая позволит тысячам физиков во всем мире анализировать петабайты распределенных данных об элементарных частицах. Одним из участников проекта является компания Oracle с программными продуктами Oracle Database 10g и Oracle Application Server 10g, отвечающие требованиям сети распределенных вычислений LHC. Oracle Database 10g гарантирует масштабируемость, разделение информации и функции поддержки сверхбольших баз данных (VLDB), необходимые тысячам пользователей для обмена данными в рамках сети распределенных вычислений LHC. Oracle Transportable Tablespaces обеспечит CERN быстродействующим механизмом распределения больших объемов данных между множеством узлов.


Выделение ресурсов

Значительное количество администрируемых доменов, организационные барьеры, проблемы доверия и интенсивное перемещение данных между узлами сети ставят под вопрос для многих организаций эффективность подхода разделения ресурсов. Сеть распределенных вычислений с выделением ресурсов решает эти проблемы за счет создания централизованных пулов вычислительных ресурсов, которые могут предоставляться всем приложениям-участникам. Благодаря небольшому числу очень крупных вычислительных пулов исключается потребность в перемещении крупных объемов потенциально конфиденциальных данных за пределы защищенного и контролируемого административного домена. Наиболее приемлемым способом реализации сети распределенных вычислений с выделением ресурсов, на первый взгляд, является простое объединение существующих ресурсов. Однако на практике многие организации при объединении существующих ресурсов сталкиваются с трудностями. Кроме проблем, связанных с поиском помещения для вычислительного центра с объединенными ресурсами, вновь могут возникнуть проблемы политические. Наиболее вероятным сценарием создания пула выделяемых ресурсов оказывается приобретение новых ресурсов.

В этих новых пулах выделяемых ресурсов будут доминировать, скорее всего, фермы недорогих blade-серверов. Они обеспечивают лучшее соотношение цена/производительность и занимают мало места, что снижает потребность в строительстве новых, дорогостоящих вычислительных центров. Фермы blade-серверов обеспечивают разнообразные ресурсы, которые можно легко выделять приложениям по мере необходимости. Степень дробления (степень гранулярности) этих ресурсов велика, и это позволяет добавлять или убавлять выделяемые приложениям ресурсы с увеличением или уменьшением нагрузки.

Многие организации уже успешно внедрили сети распределенных вычислений с выделением ресурсов. Управление полиции земли Северный Рейн-Вестфалия консолидировало все свои приложения для управления бюджетом, складским хозяйством, снабжением, инвентарными запасами и основными фондами, а также бухгалтерские приложения на состоящем из трех узлов кластере Linux-серверов N800 с программным обеспечением Oracle Database 10g и Oracle Real Application Clusters 10g (RAC).


Неизбежность внедрения сети распределенных вычислений

Сеть распределенных вычислений обещает стать следующим этапным событием в истории информационных технологий. Что такое web? По существу, это предоставление информации через интернет или корпоративную интрасеть. Следующий логический шаг после предоставления информации – ее обработка. Обработка информации через интернет или корпоративную интрасеть – именно то, что делает сеть распределенных вычислений. Так что вот еще одно определение сети распределенных вычислений – это «следующий после web этап развития интернета». В 1997 году трудно было себе представить, во что выльется web, но было ясно, что это что-то очень важное. Сегодня то же самое можно сказать о сети распределенных вычислений.

Существует целый ряд тенденций, которые в совокупности делают внедрение сети распределенных вычислений неизбежным:

· тенденции в области компьютерных платформ:


· тенденции в области операционных систем:
· виртуализация:
· рост популярности концепции Grid:
В ИТ-подразделениях предприятий концепция сети распределенных вычислений также получает все большее признание. Технологии таких сетей обещают повышение коэффициента использования имеющегося оборудования. Сети позволят выделять предприятию столько ресурсов, сколько ему требуется, и исключить тем самым простои или перегрузку компьютеров. А при необходимости замены существующего оборудования blade-серверы обеспечат снижение затрат. Экономические выгоды blade-серверов настолько существенны, что предприятия уже начали использовать их для освоения технологии распределенных вычислений.

*Oracle — зарегистрированная торговая марка Oracle Corporation. Другие наименования упомянутых здесь продуктов и услуг могут быть торговыми марками Oracle Corporation. Все прочие наименования и торговые марки могут принадлежать соответствующим владельцам. – www.oracle.com.

Copyright © Oracle Corporation. Все права защищены.


Бражес Гойал, Бенни Саудер - Oracle Corporation, США.


© Информационное общество, 2004, вып. 3-4, сс. 145-151.