TransOS - последний элемент в архитектуре облачных вычислений
Сегодня облака предоставляют практически полный перечень необходимых ИТ-сервисов - SaaS, PaaS, IaaS. Все основные для бизнеса приложения можно получить как облачный сервис. Наряду с этим, пристальное внимание привлекают облачные ОС. Однако до сих пор не было четкого представления о том, что же такое облачная ОС и как ее разработать. Свои ответы на эти вопросы дали два китайских ученых Яосюэ Чжан (Yaoxue Zhang) и Юэчжи Чжоу (Yuezhi Zhou) из Университета Цинхуа в Пекине. В статье, опубликованной в Нам представляется, что их статья интересна не только с технологической точки зрения, но и как своего рода индикатор, указывающий направление развития ИТ в области организации вычислений. Приводим ее здесь в сокращенном и адаптированном виде. ВведениеОблачные вычисления как новая вычислительная парадигма была предложена Google и другими компаниями в 2008 г. Определяющая характеристика этой новой парадигмы заключалась в том, что вычисление и хранение ПО, первоначально выполнявшиеся на автономном компьютере, теперь разделяются и завершаются на клиентском терминале и сетевом сервере соответственно. То есть, ПО (включая ОС, программы, приложения и данные) хранятся на сервере, тогда как клиентский терминал только управляет взаимодействием и доступом пользователя к сервисам. Вычисления, которые предоставляются как сервис, могут быть завершены либо на сетевом сервере, либо на клиентском терминале. Компании, такие как Google, IBM и Amazon уже запустили свои собственные облачные технологии. В частности, Google разработала собственную файловую систему (GFS), структуру хранения для крупномасштабных распределенных файловых систем и MapReduce в качестве алгоритма быстрого поиска. Однако до сих пор не сообщалось о прогрессе в исследованиях и разработке сетевой ОС для облачных вычислительных систем. TransOS, предлагаемая двумя китайскими учеными, трактует традиционные ОС, приложения, файлы и данные как ресурсы, осуществляет планирование, распределение, повторное использование и управление такими ресурсами по сети и управляет хранением и вычислением раздельно. Так как TransOS запускает распределенным способом различные традиционные ОС, пользователи могут выбрать ОС (Windows или Linux) и их соответствующие приложения на TransOS. Таким образом, любые ОС, разработанные различными компаниями или базированные на разные стандарты, могут запускаться на одном и том же клиентском терминале. Эта парадигма может уменьшить объемы для хранения данных, упростить клиенту управление ресурсами, улучшить доступность и безопасность пользовательских сервисов. [Сведения, приводимые в следующем разделе, могут быть уже известны читателям, тем не менее, они сохранены из соображения полноты]. Операционные системыОС является набором программ (системное ПО), которые логически лежат между аппаратным обеспечением и приложениями, управляют первым и обеспечивают общие сервисы для второго. Грубо они могут классифицироваться по двум технологическим категориями. Одномашинная ОС. Строится на архитектуре фон Неймана и предназначается для управления ресурсами и выполняющимися программами. Она включает систему пакетной обработки данных, разработанную на ранних этапах развития компьютеров, а также мультипрограммную систему, систему разделения времени и ОС с сетевыми функциями, разработанную позже. Некоторыми характерными представителями этого типа ОС являются Windows, Linux и Symbian. Сетевая ОС. В дополнение к возможностям одномашинной ОС, она содержит протоколы, сетевые функции и ПО управления разделяемыми ресурсами. Этот тип ОС делает сеть платформой для управления ресурсами и работающими программами. Типичными сетевыми ОС являются Windows 7, Android и Chrome OS. По сравнению с одномашинными ОС, функции внешнего интерфейса (front-end functions) для сетевых ОС могут быть легковесными, виртуализированными, мобильными и управляемыми централизованно. Общеизвестно, что каждая из обоих типов ОС не могут запускаться на разных аппаратных и программных платформах. К примеру, ОС, поддерживающая десктопное ПО, не может поддерживать мобильное и приложения, работающие под управлением Windows, не работают в среде Linux и Android. Обеспечение таких свойств требовало бы значительного усложнения систем. Поэтому, они не подходят для парадигмы облачных вычислений, которая включает управление гетерогенными СХД и вычислительными средами, и не может предоставить активные сервисы, требуемые пользователями. Прозрачные вычисленияПрозрачные вычисления являются вычислительной парадигмой, нацеленной на предоставление активных сервисов пользователям. То есть, пользователи не обязаны быть осведомленными или хорошо информированными о тонких деталях технологии, используемой системой, и овладевать дополнительными знаниями и навыками при изменениях этих технологий. Взамен этого, они должны думать только о сервисах, которые им необходимы, и об их качестве. Для того чтобы достичь этой цели, прозрачная вычислительная система строится на базе сетевого сервера и одного или более клиентских терминалов. Последние являются простыми и легковесными, во многом подобные «голому» компьютеру. Они содержат только базовую систему ввода-вывода (BIOS), несколько протоколов и управляющее ПО. Все же приложения, пользовательские данные и ОС рассматриваются как программные ресурсы и хранятся на сервере. Более того, вычисление и хранение разделяются в пространстве и времени посредством сети. ОС и приложения, запрашиваемые пользователем как сервис, динамически планируются из сервера для работы на клиентском терминале посредством распределенной суперОС (с использованием буферизации блоков или потоков). Такая парадигма позволяет клиентским терминалам быть разнообразными, легковесными, безопасными и легко управляемыми. Кроме этого, сервер может использоваться для хранения различных ОС и многочисленных приложений, которые могут образовывать так называемое «облако» или подключаться к другим «облакам» посредством сети. В общем, основные идей прозрачных вычислений включают:
Предлагаемая TransOS базируется на теории прозрачных вычислений. Концепция TransOSTransOS является распределенным системным ПО, которое логически располагается между сервером, сетью и терминальным «железом», с одной стороны, и традиционными ОС и приложениями, с другой, управляет всеми сетевыми ресурсами и динамически планирует централизованно хранимые коды и данные традиционных ОС и приложений с тем, чтобы запускать, главным образом, на локальных ресурсах (включающих ЦП, память и другие компоненты) терминалов. Эта концепция иллюстрируется на рис. 1. Рис. 1. Концепция TransOS Вообще говоря, клиентская часть TransOS работает на клиентских терминальных устройствах, серверная часть - на серверах. Клиент TransOS лежит непосредственно выше BIOS терминала, но ниже виртуально работающих традиционных ОС и приложений. В данном контексте «виртуально работающие» обозначает, что традиционные ОС и приложения выполняются в виртуальной среде, созданной клиентом TransOS, и их коды и данные выбираются из сервера в виде потока. Динамическое планирование и работа традиционных ОС и приложений выполняется с помощью кооперации между серверной частью TransOS и ее клиентской частью. Серверная часть TransOS управляет сетевыми серверами, чтобы осуществлять централизованное хранение и управление традиционными ОС и данными и отвечать на запросы, посылаемые клиентом TransOS. В отличие от одномашинных и существующих сетевых ОС, TransOS способна осуществлять интегрированное управление сетевыми ресурсами, включающими различные гетерогенные терминалы, серверы, сетевые и традиционные ОС, и предоставлять сервисы, требуемые пользователями. Традиционные ОС как вид ресурсовПод управление TransOS попадает три вида ресурсов. Это аппаратная платформа, виртуализированные ресурсы и ПО и данные. Аппаратная платформа включает терминалы, серверы и сеть; виртуализированные ресурсы формируются с помощью драйверов устройств и виртуализации аппаратных ресурсов, а ресурсы ПО/данные включают традиционные ОС, приложения и данные. Поэтому, в отличие от традиционных ОС, которые только управляют и планируют приложения и данные, TransOS рассматривает традиционные ОС, такие как Linux и Windows, как программные ресурсы и объекты для управления и планирования. Клиентская часть TransOS является основным компонентом для облака. Если предпочитаемая традиционная ОС будет специфицирована пользователем явным или косвенным образом, она будет спланирована клиентской частью TransOS для выполнения на терминале через посредство серверной части TransOS. Распределенные ядра и динамическое планирование инструкцийЯдра TransOS распределяются по клиентским терминалам и серверам. Как показано на рис. 2, только небольшая часть ядер хранится постоянно в BIOS клиента, все остальные модули располагаются на сервере. Рис. 2. Динамическое планирование инструкций для терминала После загрузки клиентского терминала, ядра TransOS, резидентно находящиеся в BIOS клиента, перехватывают управление терминалом, устанавливают соединение с сервером для выборки кодов ядра, необходимых для работы системы, и загружают их для выполнения в терминал в форме потока блоков. Другими словами, небольшие блоки кодов формируются в виде потока, передающегося от сервера к терминалу. Стоит упомянуть, что экземпляры ОС, приложения и данные, работающие на TransOS, также динамически планируются для выполнения на терминалах как потоки блоков. Исполнение выше BIOS, но ниже экземпляров ОСКак видно на рис. 3, клиент TransOS может поддерживать различные клиентские аппаратные платформы, такие как x86, ARM и MIPS, через стандартизованный интерфейс BIOS - EFI (Extensible Firmware Interface). Рис. 3. Связь между TransOS, BIOS и традиционной ОС Будучи загруженным посредством BIOS, клиент TransOS устанавливает связь с сервером и предоставляет список имеющихся экземпляров ОС пользователю для выбора. Экземпляр выбранной ОС планируется TransOS как поток блоков на клиентский терминал для выполнения. Проектирование TransOSДля того чтобы обеспечить интегрированное управление и планирование распределенного сетевого ПО и аппаратных ресурсов, включающих экземпляры ОС, TransOS проектируется как многоуровневая модульная структура, как показано на рис. 4. Рис. 4. Многослойная модульная структура TransOS Она содержит семь логических слоев-модулей, и каждый модуль может быть по мере необходимости распределен на одно или более устройств, но функции они выполняют совместно. Рассмотрим конспективно основные из них. Networked interrupt handling module. Это модуль может получать и обрабатывать сетевые прерывания от любого (одного) компьютера, входящего в автономную сетевую систему, и выполняет функции, затребованные этими прерываниями. Physical/virtual resource driver module. Модуль управляет физическими/виртуальными ресурсами, которые вырабатывают сетевые прерывания. В частности, он выполняет следующие три функции:
Software/data resource storage module. Предназначается для организации, хранения и управления экземплярами ОС, приложениями и данными, обеспечивая эффективный доступ со стороны клиента TransOS и пользователя. Resource management and scheduling module. Основная функция TransOS включает планирование, распределение и повторное использование различных сетевых ресурсов, которое выполняется посредством Resource management and scheduling module . Его функция подобна функции планирования ядра традиционных одномашинных ОС. Interfaces module . Подобно одномашинным ОС, TransOS также имеет модуль интерфейса, который может использоваться для взаимодействия с приложениями и пользователем, к примеру, получение и обработка запросов, посланных приложениями или пользователем. Пример реализации TransOSИмеется много подходов к реализации TransOS. Данный пример базируется на EFI BIOS. При этой реализации функции клиента TransOS и сервера TransOS выполняются на четырех виртуальных уровнях и двух протоколах (4VP+), соответственно, как показано на рис. 5. Рис. 5. Структура 4VP+ Два протокола - это протокол удаленной загрузки множества ОС (MRBP) и протокол доступа к сетевому сервису (NSAP). MRBP инициализирует сетевое окружение и запрашивает сигнал прерывания для выполнения загрузки. Затем он захватывает список экземпляров ОС, хранимых на сервере, загружает несколько модулей ядра ОС и клиент NSAP. NSAP передает TransOS, а также инструкции, данные, прерывания и ответы экземпляра ОС. Рассмотрим вкратце основные функции четырех виртуальных уровней в 4VP+. Virtual network I/O management (VNIOM). Основные функции этого уровня включают получение I/O-запросов от экземпляра ОС, анализ прерываний и активацию соответствующих программы их обработки. Virtual network device management (VNDM). Этот уровень отвечает за распределение и восстановление виртуальных устройств, управление отображением (mapping) от клиентских виртуальных устройств к виртуальным образам на сервере и завершение виртуальных обменов и планирования между клиентом и сервером. Virtual network file management (VNFM). Уровень включает функции хранения, доступа и поиска в крупномасштабных распределенных файловых системах. Он также обеспечивает некоторые дополнительные функции, такие как распределение и управление файловым пространством пользователя, перенаправление файлового доступа и ряд других. Virtual network user management (VNUM). Функции этого уровня обеспечивают добавление и удаление пользователей, регистрацию и конфигурацию их информации и контроль операций пользователей. По словам авторов разработки, они уже реализовали структуру 4VP+ в среде ЛВС, базированной на десктопных терминалах и серверном кластере на базе ПК.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=11900 |