Internet как среда для вычислений

28 май, 2002 - 23:00Александр Москалюк

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


Данная тема поднималась в нашем еженедельнике неоднократно. Мы писали о проекте GIMPS и попытках коммерциализации дистрибутивных вычислений. Между тем с ростом популярности сетевых вычислений многие убеждаются в необходимости создания своеобразных "строительных блоков" для распределенной обработки на основе Internet. Если для централизованных вычислений существуют интерфейсы API, которые предоставляют программисту доступ к некоторой библиотеке функций, то в сетевом пространстве каждая система дистрибутивных вычислений сегодня пишется практически с нуля. Часть исследований в области распределенной обработки посвящена не построению еще одной системы, а интеграции уже существующих проектов для того, чтобы упростить процесс разработки будущих приложений.

Internet как среда для вычислений
С ростом количества узлов сети растет и объем информации, которую каждый из них "обязан" хранить для поддержания функциональности

Создание фундамента для дистрибутивных вычислений также будет способствовать коммерциализации данной технологии. Не секрет, что сегодня большинство подобных проектов существуют только благодаря энтузиазму исследователей (к таким можно отнести разработку лекарства против рака и поиск внеземных цивилизаций. Если какие-то вознаграждения участникам и предусмотрены, то чаще всего речь идет о получении некоторой суммы в случае достижения цели: проект Distributed.net обещает 1 тыс. долл. тому, кто отыщет заветный ключ к коду RC5, а GIMPS принесет 20 тыс. долл. тому, кто найдет следующее простое число.

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

Все дистрибутивные системы можно условно разделить на две категории: сети, эксплуатирующие процессорные ресурсы систем участников, и проекты, рассчитывающие на использование дискового пространства. Образцов как первой, так и второй категории в Сети предостаточно. Примеры "процессорных" проектов приведены выше, а возможностью доступа к дисковому пространству от нескольких сотен тысяч до миллионов участников могут похвастаться сети peer-to-peer Gnutella, FastTrack, FreeNet и др. В то же время ряд исследовательских учреждений и компаний сегодня работают над схемами использования как одного, так и второго ресурса.


Chord
www.pdos.lcs.mit.edu/chord/

В магистерской диссертации студента Массачусетского технологического института Фрэнка Дабека (Frank Dabek) предложены проект Chord, a также система хранения данных, основанная на технологиях равноправных вычислений (peer-to-peer computing). В своей работе Дабек затрагивает проблему распределенного хранения данных, и основным ее тезисом является попытка предотвратить ситуацию, когда вся система становится неработоспособной вследствие выхода из строя одного из узлов. Файловая система CFS (Collaborative File System) предполагает создание высоконадежных структур хранения данных в среде, где каждый элемент ненадежен. CFS, по утверждению Дабека, существует не только как теоретический проект, но и имеет практическое воплощение. Программа на С++ длиной в 7 тыс. строк обеспечивает связь между системами, использующими Linux, FreeBSD и OpenBSD. В ближайшее время к семейству поддерживаемых ОС планируется добавить и Mac OS X. По мнению Дабека, наиболее очевидным приложением CFS является применение файловой системы в целях кэширования.


FarSite
research.microsoft.com/sn/farsite/overview.htm

Основным мотивом системы дистрибутивного хранения данных FarSite может стать фраза "Не доверяй никому" (Trust No One) из популярного телесериала "Секретные материалы". В исследовательских лабораториях корпорации Microsoft к выходу в свет готовится файловая система, способная работать на нескольких тысячах ПК одновременно, "никому не доверяющая" и считающая любого пользователя потенциальным вредителем. Каждый файл, попадающий в FarSite, шифруется, дублируется несколько раз и затем распространяется среди участников. Система напоминает распределенную сеть FreeNet, однако исследователи Microsoft изначально нацеливали FarSite на корпоративный и образовательный рынки, где число машин в рамках одной организации не превышает 100 тыс., а пользователь не желает возиться с дистрибутивными системами и клиентами шифрования, а рассчитывает найти всю информацию на сетевом диске.

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


Pastry
www.research.microsoft.com/~antr/pastry/

Internet как среда для вычислений
Рост свободного дискового пространства в зависимости от размера популяции

Британское отделение исследовательских лабораторий Microsoft также долгое время занимается разработкой дистрибутивных систем, основной задачей которых является распространение контента. Желающие протестировать работу файловой системы могут загрузить симулятор SimPastry, а также Internet-клиент с открытым кодом FreePastry, доступный на сайте университета Райс от одного из участников исследовательского проекта.

Основная цель создателей Pastry -- ускорение маршрутизации пакетов данных в рамках одной сети, вследствие адресных ограничений поддерживающей максимум 2128 клиентов. Работа Pastry напоминает жизнь в утопической коммуне, где каждый новый участник, желающий вступить в сеть, приветствуется, а затем получает "груз" в виде файлов своих "соседей", которые, для того чтобы оптимизировать маршрутизацию, теперь приходится хранить новичку. Если FarSite изначально была ориентирована на среду, где доверять не приходится никому, создатели Pastry признают, что в случае появления в сети недобросовестного пользователя, который не станет хранить нужные файлы или же заведомо ложно маршрутизировать запросы, надежность системы ставится под сомнение.


OceanStore
oceanstore.cs.berkeley.edu/info/overview.html

Internet как среда для вычислений
Рост количества транзитов в зависимости от числа узлов

O проекте OceanStore мы уже писали в прошлом году. Система распределенного хранения данных, появившаяся в университете Беркли (штат Калифорния), изначально задумывалась как коммерческая сеть, предлагающая услуги надежного хранения данных. Клиент получает доступ к OceanStore через провайдера услуг. За предоставление своего дискового пространства для хранения чужих файлов участнику сети полагается денежное вознаграждение, однако за хранение своих файлов в виртуальном мире OceanStore также придется заплатить. Более того, такая система напоминает не закрытый сейф, куда складываются ценные документы, а муравейник, где данные постоянно путешествуют из одной точки в другую.

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


Globe
www.cs.vu.nl/~steen/globe/

Нидерландский проект Globe вырос из докторской диссертации Филиппа Хомбурга (Philipp Homburg), талантливого ученого и серебряного призера всемирной олимпиады по программированию. Основной целью Globe является создание дистрибутивной операционной системы для сетей WAN, которая бы предоставила программистам интерфейс для разработки распределенных приложений, не обязывая их заниматься вопросами сетевой маршрутизации и оптимизации ресурсов памяти. В процессе развития Globe Хомбург решил, что если от разработчика "утаивается" информация о сетевых технологиях, то почему бы данный прием не расширить введением в дистрибутивную систему понятия классов.

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