Назад в библиотеку

Проблемы распределенных систем

Авторы: Цветкова В.Я. и Алпатова А.Н.

Источник: Журнал «Перспективы науки и образования» Выпуск №6(12)/2014 http://cyberleninka.ru/article/n/problemy-raspredelennyh-sistem

Аннотация

Статья описывает особенности распределенных систем. Раскрывается понятие распределенной системы и распределенной информационной системы.

Дается классификация распределенных систем. В частности, по типу предоставляемых ресурсов: распределенные вычислительные системы, распределенные информационные системы, семантический Трид. По количеству элементов в системе: кластер, распределенная система корпоративного уровня, глобальная система.

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

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

Ключевые слова: вычисления,распределенные системы,распределенные вычислительные системы ,распределенные информационные системы

Введение

В современном обществе существует необходимость в повышении качества и скорости обработки в первую очередь «больших данных» [1] и во вторую очередь данных в распределенных системах [2]. В связи с этим возрастает значение распределенных систем хранения [3] и обработки данных [4], как средства решения этой проблемы. Одной из основных задач любой распределенной системы является анализ свойств полученных данных, которые, в силу ряда причин, не могут быть оценены на одном узле. Для достижения поставленной цели и ускорения времени обработки необходимо на первом этапе разослать данные на распределенные узлы системы, а на втором собрать данные из распределенных узлов и агрегировать эти данные в общее глобальное представление. Это является сложной задачей из-за часто встречающего в таких типах задач динамики, что накладывает очень частые изменения в локальные значения, которые влияют на общие глобальные свойства всей задачи. Создание эффективных и адаптивных распределенных систем позволяет значительно ускорить скорость обработки данных. С целью рассмотрения данного вопроса проведем анализ проблем возникающих в ходе проектирования и эксплуатации распределенных систем.

Понятие распределенной системы

На сегодняшний момент в литературе существует большое количество определений понятия «распределенная система». Наиболее полное определение предложил AS Tanenbaum [5]: «Распределенная система (РС) – это набор независимых компьютеров, который воспринимается его пользователям как единственная последовательная система.» Другое определение предложено в работе [6]: Распределенными системами называются программно-аппаратные системы, в которых исполнение операций (действий, вычислений), необходимых для обеспечения целевой функциональности системы, распределено(физически или логически) между разными исполнителями. В вычислительной сфере под РС в нашем исследовании будем понимать программно–аппаратную систему, созданную для конкретного практического применения, функционал которой распределен на различных узлах.

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

Основная характеристика вычислительных систем (Computational Grid) заключается в том, что в качестве основного ресурса предоставляется вычислительная мощность всей системы. Основное направление развития систем подобного типа заключается в наращивании вычислительных мощностей системы, посредством увеличения числа вычислительных узлов. Примером распределенных вычислительных систем являются кластеры.

Распределенные информационные системы (Data Grid) предоставляют вычислительные ресурсы для обработки больших объемов данных, для задач не требующих больших вычислительных ресурсов. Семантический Грид предоставляет не только отдельные вычислительные мощности (базы данных, сервисы), но и совокупность вычислительных систем и информационных систем, для каждой конкретной предметной области [7].

По количеству элементов в системе [8] различают распределенные системы: кластер, распределенная система корпоративного уровня, глобальная система. Распределенная система является кластером, если общее количество элементов не превышает несколько десятков. Распределенная система корпоративного уровня содержит в своем составе уже сотни, а в некоторых случаях, и тысячи элементов. Глобальной системой называется распределенная система с количеством элементов, входящим в ее состав, более 1000. При этом, зачастую, элементы таких систем глобально распределены. Примером глобальной распределенной сети является Интернет, где в качестве предоставляемого ресурса является информационное поле.

Основные требования, предъявляемые к распределенным системам

Основными требованиями, предъявляемыми к распределенным системам, являются: прозрачность, открытость системы, безопасность, масштабируемость РС, надежность. Рассмотрим каждую характеристику подробнее.

Прозрачность распределенной системы. Прозрачность, в общем случае, заключается в том, что распределенные системы должны быть восприняты пользователями системы как однородный объект, а не как набор автономных объектов, которые взаимодействуют между собой между собой. Проектирование распределенной системы является сложной задачей, и соблюдение необходимой прозрачности, является необходимым условием функционирования системы. Существуют различные виды прозрачности [9].

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

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

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

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

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

Открытость системы может быть достигнута с помощью: языков программирования, аппаратных платформ, программного обеспечения.

Безопасность. Особое место в современных распределенных системах занимает их безопасность. Безопасность РС является, в общем случае, совокупностью 3 факторов [10]:

Необходимость создания распределенных систем, которые обеспечивают необходимую безопасность данных и всей структуры РС, возникает повсеместно. Многие вопросы безопасности могут быть решены на уровне отдельных узлов РС, например, путем установки фаерволов и антивирусного ПО на отдельные узлы системы, введением политики аутентификации пользователей и другими методами. Но в силу особенности архитектуры большинства РС, данный подход не всегда является эффективным. Программное обеспечение не всегда может обеспечить необходимую конфиденциальность данных в распределенной системе. Например, программное обеспечение не всегда может полноценную защиту от MIMT и DDOS атак на распределенную сеть. Зачастую методы защиты от подобных атак не всегда являются приемлемыми для узлов вычислительной сети. Важным показателем, при организации защиты РС, является уровень доступности системы. Уровень доступности распределенной системы определяется не только доступностью ресурса в момент времени t, но и принципами организации защиты РС, так как большинство программных средств, обеспечивающие защиту от атак, направлены на отказ в обслуживании. Большое внимание данному вопросу уделяется многими производителями антивирусного ПО.

Надежность РС. В связи с появлением новых методов и алгоритмов, требовательных к вычислительным ресурсам и, самое главное, к ресурсам времени, необходимость в доступности распределенных систем в момент времени t становится крайне актуальным. Основным показателем, определяющим надежность всей РС, является отказоустойчивость. Отказоустойчивость это важнейшее свойство вычислительной системы, которое заключается в возможности продолжения действий, заданных программой, после возникновения неисправностей.

Проблемы эксплуатации распределенных систем

Несмотря на все достоинства распределенных систем по сравнению с традиционными централизованными системами (РС обеспечивают значительно меньшую стоимость развертывания и простоту реализации), РС имеют и ряд существенных недостатков. Основными проблемами распределенных систем по сравнению с традиционными системами являются:

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

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

Проблемы балансирования нагрузки. Важной проблемой при проектировании РС является обеспечение эффективной балансировки нагрузки на узлы системы. Правильно выбранная стратегия балансировки нагрузки оказывает решающее влияние на общую эффективность и скорость работы распределенной системы. На сегодняшний момент существует множество подходов [11, 12] к решению данной проблемы.

В общем случае можно выделить обобщенную классификацию методов балансировки загрузки вычислительных узлов. По характеру распределения нагрузки на вычислительные узлы различают: динамическую балансировку (перераспределение); статическую балансировку.

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

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

Проблемы восстановления данных в случае возникновения ошибок. В ходе эксплуатации распределенных систем наиболее часто возникает проблема отслеживания сбоев и последующее восстановление данных. Данная ситуация может возникнуть, например, в ходе сбоя питания одного из узлов РС. Автоматическое восстановление данных является сложной задачей, которая включает в себя множество проблем. В ходе восстановления необходимо выяснить характер возникшей ошибки, классифицировать ее и в автоматическом режиме произвести восстановление всех данных. При этом должна быть сохранена не только вся целостность связанных данных, но и доступность остальных данных, так как восстановление должно происходить без блокирования основных ресурсов на чтение-запись, т.е. распределенная система должна функционировать без остановки. На сегодняшний момент существует множество подходов к решению данной проблемы. Например, одним из методов восстановления в информационных распределенных системах (распределенных СУБД) является использование так называемого журнала транзакций, в котором хранится вся информация обо всех изменениях, произошедших в базе данных. Сложность в данном случае заключается в правильной классификации ошибок и правильности применения методов восстановления данных в автоматическом режиме.

Проблемы ограниченности масштабируемости. Масштабируемость распределенных систем одна из первоочередных задач при проектировании РС. Распределенные системы позволили избежать главного недостатка централизированных систем – ограниченности наращивания вычислительных мощностей системы. Существуют три основных показателя масштабируемости [13] системы:

При решении задачи масштабируемости системы необходимо решить множество проблем. Выделим основные проблемы масштабируемости распределенных систем.

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

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

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

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

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

Особенно остро вопрос переносимости ПО встает в глобально распределенных системах, где в качестве узлов, зачастую, используют различное гетерогенное оборудование с различными операционными системами. Например, для объединения вычислительных машин в одну глобальную вычислительную GRID – сеть требуется написать клиентское приложение для каждого вычислительного узла, с учетом специфики его архитектуры и установленной ОС, что является сложной задачей. Постоянно растущие требования к увеличению мобильности программных продуктов, приводит к необходимости проведения исследований в данном направлении. Проблемам обеспечения кроссплатформенности программного обеспечения посвящено множество опубликованных научных работ, в которых показаны основные подходы и методы, позволяющие создавать переносимые приложения [14, 15].

Заключение

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

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

ЛИТЕРАТУРА

  1. Tsvetkov V. Yа., Lobanov A. A. Big Data as Information Barrier // European Researcher. 2014. Vol.(78). № 7-1. p. 1237-1242.
  2. Мартин Д. Вычислительные сети и распределенная обработка данных: Программное обеспечение, методы и архитектура: [В 2-х вып.]: Пер. с англ. Вып. 1. Финансы и статистика, 1985.
  3. Цветков В.Я. Базы данных. Эксплуатация информационных систем с распределенными базами данных. М.: МИИГАиК, 2009. 88 с.
  4. Шокин Ю.И. и др. Распределенная информационно-аналитическая система для поиска, обработки и анализа пространственных данных // Вычислительные технологии. 2007. Т. 12. №. 3. С. 108-115.
  5. Tanenbaum A., Van Steen M. Distributed systems. Pearson Prentice Hall, 2007.
  6. И.Б. Бурдонов, А.С. Косачев, В.Н. Пономаренко, В.З. Шнитман. Обзор подходов к верификации распределенных систем. М.: Российская Академия Наук. Институт системного программирования (ИСП РАН) 2003. 51 с.
  7. Вовченко А.Е., Калиниченко Л.А., Ступников С.А. Семантический грид, основанный на концепции предметных посредников. Институт проблем информатики РАН. URL: http://83.149.245.107/synthesis/publications/10semgrid/10semgr id.pdf (дата обращения 20.09.2014).
  8. Родин А.В., Бурцев В.Л. Параллельные или распределенные вычислительные системы? // Труды Научной сессии МИФИ- 2006. Т. 12 Информатика и процессы управления. Компьютерные системы и технологии. с. 149-151.
  9. George Coulouris, Jean Dollimore, Tim Kindberg, “Distributed Systems Concepts and Design” 3 rd edition, Addison-Wesley.
  10. Blaze M. et al. The role of trust management in distributed systems security // Secure Internet Programming. Springer Berlin Heidelberg, 1999. С. 185-210.
  11. Бабич А.В., Берсенев Г.Б. Алгоритмы динамической балансировки нагрузки в распределенной системе активного мониторинга // Известия ТулГУ. Технические науки. 2011. №. 3. С. 251-261.
  12. Daryapurkar A., Deshmukh M. V. M. Efficient Load Balancing Algorithm in Cloud Environment // International Journal Of Computer Science And Applications. 2013. Т. 6. №. 2. p. 308-312.
  13. Распределенные системы. Принципы и парадигмы Э. Таненбаум, М. Bан Стеен. СПб.: Питер, 2003.
  14. Tanenbaum A. S., Klint P., Bohm W. Guidelines for software portability // Software: Practice and Experience. 1978. Т. 8. №. 6. С. 681-698.
  15. James D. Mooney. "Bringing Portability to the Software Process". Technical Report TR 97-1, Dept. of Statistics and Computer Science, West Virginia University, Morgantown WV, 1997.