Операционная система Интернет-масштаба

Авторы оригинального текста — David P. Anderson и John Kubiatowicz.

Когда Мэри приходит домой с работы и идет к своему компьютеру чтобы проверить почту, тот вовсё не бездействует. Её компьютер работает для биотехнической компании, сравнивая генетические последовательности с библиотекой молекул протеинов. DSL-линия принимает блок данных с радиотелескопа для последующей обработки. На диске, помимо файлов Мэри находятся зашифрованные фрагменты тысяч чужих файлов. Вдруг, один из этих фрагментов считывается и отсылается — это часть фильма, который смотрит кто-то из Хельсинки. Мэри чуть двигает мышь — и вся эта активность мгновенно прекращается. Компьютер теперь полностью в её распоряжении.

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

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

Компьютеры Мэри работают на других людей. Но они не делают ничего бесплатно. Пока её ПК работает, центы текут на её виртуальный банковский счет. Платежи идут от биотехнической компании, системы показа фильмов, службы резервного копирования. Вместо того чтобы покупать дорогие "серверные фермы" эти компании арендуют время и место не только на двух компьютерах Мэри, но также и на миллионах других. Все в выйгрыше — компании экономят деньги на оборудовании, Мэри зарабатывает намного денег, её файлы надежно сохранены, и она даже посмотрела интересный фильм. Всё это стало возможным с помощью Общесетевой Операционной Системы(Internet-scale operating system — ISOS), которая связала вычислительные и дисковые ресурсы миллионов независимых компьютеров по всему миру.

Приложения Интернет-масштаба

Хотя мир Мэри выдуман, и Общесетевая ОС ещё не существует, независимые группы разработчиков уже создали несколько общесетевых приложений, которые пытаются задействовать огромную массу практически неиспользуемых компьютеров, доступных через Интернет[см. таблицу]. Эти приложения достигают целей, которых было бы сложно, дорого, или невозможно достичь используя отдельные, специально выделенные компьютеры. Более того, сегодняшние системы — всего лишь начало. Мы можем легко представить архивную службу, работающую в течение сотен лет, а также интеллектуальные поисковые машины для завтрашней Семантической Паутины [см. "The Semantic Web," авторы — Tim Berners-Lee, James Hendler и Ora Lassila; Scientific American, May 2001]. К сожалению, создание приложений Интернет-масштаба остается сложной задачей. Разработчики должны выстраивать каждое новое приложение практически с нуля, тратить много сил на технические детали, не относящиеся собственно к цели приложения — например на ведение базы данных пользователей. Для того чтобы Интернет-приложения смогли обрести широкое распространение, эти проблемы должны быть решены раз и навсегда.

Можно заимствовать идеи по устранению дублирования усилий из опыта разработки операционных систем, таких как Windows и Unix. ОС предоставляет виртуальную среду вычислений, в которой каждая программа думает что только она одна выполняется на компьютере. Они избавляют программистов от сложных деталей работы с памятью и дисками, протоколами связи, планирования работы мириадов процессов, разработки интерфейсов для устройств ввода-вывода. Операционная система сильно упрощает процесс разработки новых программ. Так и Общесетевая ОС, сможет упростить разработку новых распределённых приложений.

ISOS состоит из тонкого слоя программного обеспечения — агента, который работает на каждом из компьютеров(таких как компьютер Мэри), и центральной координирующей системы, которая работает на одном, или нескольких серверных комплексах ISOS. Этот слой ПО предоставляет только самые основные функции, например распределение ресурсов, планирование времени работы для каждой из задач и управление связью между компьютерами. Такой тип операционной системы(называемый микроядерным) перекладывает высокоуровневые функции на программы, которые используют операционную систему -- но не являются её частью. Например Мэри не использует для резервного копирования своих файлов саму ISOS. Она пользуется отдельным приложением, которое в свою очередь обращается к функциям ISOS.

Два типа приложений могут выйграть от существования ISOS:

  • Распределенная обработка данных: имитации физических процессов, анализ радиосигналов, генетический анализ, расчет компьютерной графики, финансовое моделирование, и т.д.
  • Распределённые онлайн-сервисы: системы хранения файлов, базы данных, хостинг сайтов, потоковое медиа(например онлайн-видео), продвинутые поисковые системы, и т.д.

Всё вокруг народное, всё вокруг моё

Компьютеры сегодня используются как частные ресурсы; люди и организации имеют свои собственные системы. ISOS может породить новую парадигму, в которой использование ресурсов распределённых по всему Интернету будет обычным делом. Сами ресурсы — компьютеры — будут по прежнему в частной собственности, но они смогут работать для всех. И не важно, будут это десктопы, ноутбуки, серверы, устройства сетевого хранения данных или даже карманные компьютеры.

Ресурсы доступные через Интернет отличны от частных ресурсов в нескольких важных аспектах. Более 150 миллионов компьютеров уже подключены к Интернету, и это число растет в экспотенциальной прогрессии. Очевидно, что ISOS может создать виртуальный компьютер, потенциально превосходящий любой типичный ПК в 150 миллионов раз. Даже принимая во внимание, что этот виртуальный компьютер будет разделен среди множества пользователей и считая издержки работы через сеть, в результате получается гораздо более быстрый и дешевый компьютер чем кто-либо мог бы иметь в своем личном пользовании. Постоянный(и самостоятельный) апгрейд парка ресурсов позволяет производительности этого компьютера увеличиваться даже быстрее числа подключенных компьютеров. Этот парк также не требует ремонта — когда какой-нибудь из компьютеров ломается, его владелец сам чинит или заменяет его.

Благодаря использованию Интернета, становится возможной огромная параллелизация передачи данных. Пусть фильм который смотрит Мэри загружается в фрагментах с, например, 200 компьютеров. Каждый из них может иметь антикварный модем на 56 кбит/сек -- слишком медленный для передачи высококачественного видео, но все вместе, эти модемы могут передавать 10 мегабит в секунду — быстрее чем кабельный модем. Данные, находящиеся в распределенной системе доступны из любой точки мира, и могут пережить разрушение некоторых из секций "цепи". Распределенное хранение может использоваться и для повышения безопасности — вообразите себе систему, для разрушения которой потребуется взломать, допустим, 10000 компьютеров.

Таким образом, парадигма Интернет-ресурсов может расширить границы возможного (например предоставить высокие скорости или обрабатывать бОльшие обьемы данных) для некоторых приложений, в то время как для других она поможет сэкономить средства. Однако для некоторых приложений, она может не дать никакого выйгрыша — всё-таки это парадигма, а не панацея. К тому же создание ISOS, таит в себе несколько подводных камней, о которых нужно помнить.

Некоторые характеристики парка ресурсов создают определенные трудности, с которыми ISOS приходится считаться. Парк ресурсов гетерогенен. Компьютеры имеют различные типы процессоров и операционных систем. Они имеют различные обьемы оперативной памяти, дискового пространства, разную скорость подключения к Интернету. Некоторые находятся за файрволами, или другими подобными средствами, которые запрещают или фильтруют входящие соединения. Многие из компьютеров в парке ресурсов доступны только изредка — настольные ПК выключаются на ночь, а ноутбуки, и системы использующие модемы большинство времени отключены от Интернета. Компьютеры могут вдруг изчезнуть из сети — иногда насовсем — но на их место приходят новые.

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

Кому сколько?

Операционная система Интернет-масштаба должна решать две фундаментальные проблемы -- как распределять ресурсы, и как вознаграждать их владельцев. Модель основанная на экономических принципах, где владельцы сдают в аренду ресурсы потребителям может справиться с этими двумя проблемами за раз. В 1980-х, исследователи из Xerox PARC предложили экономические подходы к разделению компьютерных ресурсов. Недавно, Mojo Nation разработали систему обмена файлами, в которой участники получают вознаграждение в виде виртуальной валюты("mojo") за использование их ресурсов, и потом платят этими mojo за использование системы. Такие экономические модели стимулируют владельцев позволить использование ресурсов другими организациями, и теория показывает что они приводят к достижению оптимального распределения ресурсов.

Даже имея в распоряжении 150 миллионов компьютеров, ISOS может находиться в ситуации нехватки ресурсов — некоторые задачи требуют, и могут использовать абсолютно неограниченный их обьем. Так как она постоянно решает, где запускать задачи по обработке данных и как распределить свободное место, ISOS должна пытаться выполнять эти задачи настолько быстро, насколько это возможно. Распределение должно быть честным — ни одна задача не должна выполняться за счет остановки другой. Уточнение этих критериев и разработка алгоритмов планирования их достижения, хотя бы примерного -- вот область текущих исследований. Экономическая система для распределенной сети должна задавать базовые единицы ресурсов, например такие как использование одного мегабайта дискового пространства в день, и принимать в расчет такие свойства как частота, или скорость, с которой это пространство может быть доступно, и как часто оно находится в режиме он-лайн. Система также должна определять, как ресурсы покупаются и продаются (например, существует ли система оплаты вперед), и как определяются цены (с помощью аукциона, или ценоустанавливающего посредника).

В этих рамках, ISOS должна точно и надежно подсчитывать статистику использования ресурсов. ISOS должна будет иметь внутренний банк, со счетами для продавцов и покупателей. Участники смогут конвертировать валюту ISOS в реальные деньги. ISOS также должна удостовериться, что достигаются гарантии доступности ресурсов — Мэри не захочет чтобы её фильм прервался на середине просмотра. Экономическая система позволяет владельцам ресурсов управлять их использованием. Например владелец ПК может указать, что процессор его компьютера не может быть использован между 9-ю утра и 5-ю вечера, если только это время не будет оплачено по очень высокому тарифу.

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

Вознаграждение за работу ISOS выплачиваемое конечным пользователям в идеале должно быть достаточно большим чтобы поощрять их участие, но достаточно малым, чтобы сохранить экономическую оправданность распределённых Интернет-проектов. Типичный владелец ПК может рассматривать систему как некий вид бартерной экономики, получая бесплатные сервисы (такие как резервное копирование и хостинг) в обмен на использование своих, ранее бездействующих ресурсов.

Базовая архитектура

Мы придерживаемся двух основных принципов дизайна ISOS: ядро с минимальной функциональностью, и управляемость с центральных серверов. Компьютерная операционная система предоставляющая только самые основные функции называется микроядерной. Функции более высокого уровня строятся поверх неё, как пользовательские программы, что позволяет упростить процесс их отладки и замены. Этот подход впервые был применён в системах академических исследований, и повлиял на некоторые коммерческие системы, такие как Windows NT. Однако большинство известных ОС микроядерными не являются.

Функции ядра ISOS включают:

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

Прежде всего, ISOS не должна дублировать функции операционной системы, уже установленной на ПК.

Система должна координироваться серверами управляемыми провайдером ISOS, который может являться государственно-финансируемой организацией, либо консорциумом компаний являющихся наиболее крупными владельцами и потребителями ресурсов. (Можно вообразить существование несколько соревнующихся провайдеров ISOS, однако для простоты представим, что провайдер только один.) Централизованный подход противоречит принципам равенства применяемым сейчас в некоторых P2P сетях, однако центральные серверы понадобятся для защиты важной информации пользователей, такой как состояние их счетов в системе. Может показаться что централизация потребует системы управления, которая, с ростом числа подключенных к ISOS компьютеров станет большой и неповоротливой, узким местом всей системы. Однако эти страхи напрасны — несколько серверов вполне могут хранить информацию о всех подключенных к Интернету компьютерах, и время от времени выходить с ними на связь. Например система Napster обрабатывала почти 60 миллионов клиентов используя один центральный сервер. Для надежности, в серверный комплекс можно внести избыточность так, чтобы большинство сервисов ISOS смогут продолжить работу даже при временной недоступности части серверов.

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

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

Покупатели ресурсов посылают серверам запросы на выполнение проектов, и предоставляют необходимые программы (для запуска на ресурсных компьютерах). Провайдер онлайн-службы может попросить ISOS выбрать только определенные компьютеры, указывая требования к их ресурсам (например система распределенного резервирования может использовать даже изредка подключаемые к Интернету компьютеры — такие как ноутбук Мэри — и их использование обойдется ей гораздо дешевле). ISOS предоставляет службе адреса и описания этих компьютеров, и позволяет программе-агенту устанавливать прямую связь между компьютерами на которыми она работает. Служба может затребовать пополнение парка доступных компьютеров, если некоторые из уже выделенных станут недоступны. ISOS не диктует, как клиенты используют онлайновую службу, не контролирует её действия, или то, как клиенты оплачивают её услуги (в отличие от управляемых ISOS платежей от пользователей ресурсов к их владельцам).

Инструментарий для создания приложений

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

  • Маршрутизация вне зависимости от местонахождения. Приложения запущенные в ISOS могут распределять копии информации и задания на обработку среди миллионов компьютеров. Но они должны быть способными получить к ним доступ снова. Для этого приложение присваивает каждому обьекту уникальное имя — глобальный идентификатор(GUID). Эти имена делают возможным так называемую "маршрутизацию вне зависимости от местонахождения" — возможность посылать запросы к обьектам, не зная где они находятся. Упрощенный подход к такой маршрутизации задействует базу данных GUID хранящуюся на одном компьютере, но такая система не сможет обрабатывать запросы от миллионов других компьютеров. В противоположности, ISOS распределяет базу данных GUID среди парка ресурсов. Такой тип распределенной системы разрабатывается в исследовательских проектах, например таких как OceanStore, системе надежного хранения данных в Университете Калифорнии в Беркли.
  • Надежное хранение данных. Информация хранимая ISOS должна без потерь переживать различные сбои. Функция надежного хранения данных помогает в этом с помощью механизмов кодирования, реконструкции и "ремонта" данных. Для максимальной надежности, данные кодируются с помощью кода "M из N". Такой код похож на принцип работы голограммы — когда с помощью небольшого кусочка можно восстановить всё изображение. Кодирование распределяет информацию на N фрагментов(на N-количество компьютеров), так, чтобы доступность M из них позволяла полностью восстановить данные. Например, документ может быть закодирован в 64 фрагмента, любые 16 из которых достаточны для его восстановления. Также, важен и постоянный ремонт. Если некоторые из фрагментов выпадают, ремонтная система должна восстанавливать их. При правильном построении, такая система надежного хранения данных может сохранять информацию на протяжении сотен лет.
  • Безопасное обновление. Если приложения должны обновлять хранимую информацию, возникают новые проблемы. Например, должны обновляться все копии информации, и соответствующие GUID должны указывать на новейшие копии. Механизм контроля доступа должен предотвращать изменение информации неавторизованными пользователями. Система безопасного обновления основывается на протоколах Византийского соглашения, в которых несколько единиц ресурсов приходят к верному решению, даже если одна из них пытается помешать этому процессу.
  • Другие функции. Инструментарий также должен помогать программисту путем создания средств преобразования форматов данных (из-за гетерогенной натуры парка ресурсов) и библиотеки синхронизации (для помощи в кооперации между компьютерами).

ISOS может пострадать от известной проблемы, замедляющей внедрение новых технологий: Набор применимых приложений ограничен, пока не создана достаточная пользовательская база, и наоборот, пока существует лишь небольшой обьем приложений, система не привлечет значительного количества пользователей. Но когда критическая масса пользователей всё же будет достигнута (путем убеждения достаточного количества разработчиков в полезности ISOS), рост системы намного ускорится.

Дополнительная информация

  • The Ecology of Computation. B. A. Huberman. North-Holland, 1988.
  • The Grid: Blueprint for a New Computing Infrastructure. Edited by Ian Foster and Carl Kesselman. Morgan Kaufmann Publishers, 1998.
  • Peer-to-Peer: Harnessing the Power of Disruptive Technologies. Edited by Andy Oram. O'Reilly & Associates, 2001.

Ссылки по теме

Многие исследовательские проекты работают над созданием Операционной Системы Интернет-масштаба(ISOS), включая следующие:

Chord: www.pdos.lcs.mit.edu/chord/
Cosm: www.mithral.com/projects/cosm/
Eurogrid: www.eurogrid.org
Farsite: http://research.microsoft.com/sn/farsite/
Grid Physics Network (Griphyn): www.griphyn.org
OceanStore: http://oceanstore.cs.berkeley.edu/
Particle Physics Data Grid: www.ppdg.net
Pastry: www.research.microsoft.com/~antr/pastry/
Tapestry: www.cs.berkeley.edu/~ravenben/tapestry/

Авторы

DAVID P. ANDERSON и JOHN KUBIATOWICZ — сотрудники Университета Калифорнии, в Беркли. Андерсон работал на факультете информатики с 1985 по 1991 год. Теперь он — глава проекта SETI@home, и главный научный сотрудник United Devices, фирмы-создателя программ для распределённых вычислений, объединившегося с проектом distributed.net. Kubiatowicz — профессор информатики в университете Беркли, и разработчик архитектуры проекта OceanStore, распределенной системы хранения данных, которая сейчас находится в разработке и имеет многие из свойств требуемых для ISOS.


Дата перевода: 18.02.2002. Автор — Роман Мамедов.

http://distributed.ru/?isos

Комментариев нет: