Высокопроизводительные компьютеры на которых применяются сетевые операционные системы
Что нужно чтобы вскопать огород? При наличии огорода, нужны рабочие инструменты и рабочая сила (работники). А что делать если нужно вскопать быстрей или больше? Можно позвать друзей или нанять других людей, то есть увеличить число работников. Вот это и является примером высокопроизводительного вскапывания огорода. Не всегда можно увеличивать производительность вскапывания огорода путём поиска сильных работников, так как производительность каждого отдельно взятого работника ограничена. Потому и приходится прибегать к услугам большего числа работников.
Аналогично и с высокопроизводительными вычислениями. Работниками (анг. workers) так и называются отдельные компьютеры и процессорные ядра в вычислительных кластерах, если опираться на терминологию пакета МАТЛАБ (англ. MATLAB). В документации других кластеров эти ядра и компьютеры называются нодами (англ. nodes), так и буду их называть в этой заметке.
Просто о сложном: высокопроизводительные вычисления для инженерных и научно-исследовательских задач
Введение
На Хабрахабре уже много писалось о высокопроизводительных, распределённых и параллельных вычислениях (ВВ). freetonik уже сделал подробное и наглядное введение в параллельные вычисления и продолжение тут, ВВ были рассмотрены автором keleg в тут, теория распределённых вычислений была раскрыта в заметке автора mkosyakov, Melges описал опыт организации параллельных вычислений по сети на Си и XakepRU описал как можно распараллелить процессы в Linux. Перечитав их я понял что нет заметки которая могла бы помочь начать использовать ВВ для решения инженерных и научных задач. Это скорее всего общая особенность многих источников информации по данной тематике. Программисты пишут хорошие программы которые выполняют возложенные на них задачи. Университетские преподаватели доступно объясняют как и почему стоит использовать высокопроизводительные вычисления. Но как только исследователи осознают что им пора воспользоваться ВВ, то они сталкиваются с малым числом 'мостиков' которые связывают понимание ВВ с непосредственным использованием ВВ систем в их работе. В университетах студенты могут найти такой 'мостик' на лабораторных и практических работах. А я попробую восполнить этот пробел в надежде что материал будет полезным для тех кто этого не изучал и поможет им начать пользоваться ВВ. Сначала будет краткое введение в ВВ, после чего будут рассмотрены возможности использования МАТЛАБ, HPCondor суперкомпьютеров.
Высокопроизводительные вычисления (ВВ) приходят на помощь в тех случаях когда нужно сократить время расчётов или получить доступ к большему объёму памяти. Например, ваша программа может проводить необходимые вычисления в течение недели, но вам нужно получить результаты завтра. Если разделить эту программу на части и выполнять каждую из них на отдельном ноде, то теоретически можно ускорить расчёты пропорционально числу вовлечённых нодов. Но это только теоретически, а на практике этому всегда что-то мешает (о чём подробно писалось тут). Тут стоит упомянуть и другой случай, когда ваша программа требует большой объём оперативной памяти. Например, в вашем компьютере установленно только 4 Гб оперативной памяти, но для расчётов нужно хотя бы 64 Гб. В системах ВВ на каждом ноде установленна память определённой ёмкости. Так если каждому ноду доступно 2 Гб памяти, то опять же можно разделить программу на 32 части, каждая из которых будет выполняться на отдельном ноде, будет взаимодействовать с другими частями, обмениваться данными и, в конечном итоге, программа в целом будет иметь доступ к 64 Гб памяти.
Из этих примеров вы наверняка поняли что высокопроизводительные вычисления – это вычисления проводимые на компьютерных системах со спецификациями, которые значительно превышают обычные компьютеры. Это понятие условное, возможно есть и более точное определение, но я его сейчас не смог найти. Существуют параллельные, распределённые ВВ, а так же их комбинации.
Параллельные вычисления предусматривают разработку программ, которые во время их выполнения представляют собой несколько параллельных и взаимодействующих между собой процессов. Например, моделирование характеристик ячейки солнечной батареи предусматривает взаимодействие трёх моделей описывающих: перенос носителей заряда, распространение падающего света внутри ячейки, температурные эффекты, растяжение-сжатие. Так перенос носителей, растяжение-сжатие и показатель преломления материала, который используется в оптической модели падающего света, зависят от температуры и модели, описывающие эти эффекты, должны взаимодействовать друг с другом в процессе расчёта. Чтобы ускорить расчёты можно код модели описывающей транспорт носителей выполнять на одном ноде, код отвечающий за распространение света – на другом, температурную модель – на третьем, и так далее. То есть, ноды будут выполнять взаимодействующие расчёты параллельно.
Распределённые вычисления предусматривают использование нескольких не взаимодействующих друг с другом нодов и процессов. Очень часто в таком случае выполняется один и тот же код на разных нодах. Например, нам нужно оценить растяжение и сжатие той же ячейки солнечной батареи в зависимости от температуры. В таком случае, температура – входной параметр модели и один и тот же программный код этой модели можно выполнить на разных нодах для разных значений температуры.
- как конечный пользователь взаимодействует с системой ВВ;
- какие ВВ системы доступны и какие у них ограничения;
- о кластерах построенных при помощи ПО Кондор (англ. Condor) и МАТЛАБ (выбор пал на них просто по причине опыта автора с ними);
- немного о суперкомпьютерах и гридах;
- и о том как всем этим хозяйством можно можно воспользоваться.
Взаимодействие пользователя с системой высокопроизводительных вычислений
- подготавливать программы для запуска на системах ВВ;
- запускать расчёты на системах ВВ либо подключаться к системам ВВ для запуска программ;
- на котором он будет обрабатывать результаты расчётов.
Тут многое зависит от личного предпочтения пользователя, доступности нужного программного обеспечения и других требований. Есть возможность выбора языка программирования, операционной системы рабочего компьютера и кластера, используемых программных библиотек и ПО для организации кластеров. Лично я всё время пытаюсь писать программы на С или С++ с использованием MPI и openMP для Линукс (тут и тут уже есть хорошие статьи по этой теме этих пап и мам высокопроизводительных вычислений ), но по разным причинам это не всегда получается. Типичная ситуация – приходит шеф в пятницу и говорит что нам срочно нужны результаты. Заканчивается это тем что пишется программа в МАТЛАБ для проведения нужных расчётов. А чтобы быстрей получить результаты, эта программа работает на кластере МАТЛАБ нашей организации до понедельника.
Что касается операционной системы рабочего компьютера пользователя, то в большинстве случаев удобней всего использовать ту же операционную систему и её дистрибутив что установленна на системе ВВ. В данный момент большинство ВВ систем работает под управлением различных дистрибутивов Линукс. Если на нашем кластере стоит Scientific Linux, то и на рабочий компьютер проще поставить эту же систему чтобы в дальнейшем не путаться в командах. Если планируете использовать кластер на базе МАТЛАБ, то выбор операционной системы роли не играет, так как программы написанные на МАТЛАБ могут выполняться на компьютерах с любыми ОС (доступными для установки МАТЛАБ, естественно).
Если же вы выбираете смешанную схему, при которой у вас на компьютере установлена ОС семейства MS Windows, а ВВ система построена на ОС Линукс, то вам понадобится клиент для подключения к удалённой системе (например, PuTTY), и, возможно X-сервер или же сразу Cygwin, в котором это всё есть. В выборе программного обеспечения вам всегда помогут локальные администраторы ВВ системы.
Важный момент: ВВ системы обычно либо не поддерживают программы требующие работы в интерактивном режиме (которые в процессе выполнения запрашивают ввод данных, ожидают других действий пользователя таких как нажатие клавиш или манипуляций мышкой) или поддерживают их ограниченно. Аналогично и в отношении графического интерфейса – его использование чаще всего не предусмотренно и ВВ системы используются в текстовом режиме из командной строки (исключение — тот же МАТЛАБ). Перед использованием вашей программы в ВВ системе, она должна быть отлажена и потом преобразована так чтобы она могла быть запущенна на ВВ системе и без дальнейшего вмешательства человека она провела расчёты и сохранила результаты в файлах либо передала их пользователю другим способом.
К производительности компьютера пользователя требования минимальны, так как основные расчёты всё равно планируется проводить на системах ВВ. Следить за состоянием расчётов, запускать и прерывать их можно с компьютера минимальной конфигурации и с мобильного телефона.
Некоторые системы ВВ
Общий обзор
Чаще всего для проведения ВВ используются суперкомпьютеры, компьютерные кластеры и гриды (англ. computing grids).
Суперкомпьютеры – компьютерные системы, значительно превышающие большинство существующих компьютеров по своим параметрам таким как производительность, доступная оперативная память, доступное число процессоров. Для большей информации о них вы можете посмотреть список пятиста самых производительных суперкомпьютеров мира.
Компьютерный кластер – группа компьютеров, которые могут взаимодействовать друг с другом для наращивания доступной памяти и числа процессоров вовлечённых в работу. Чаще всего такие кластеры строятся внутри исследовательских групп или организаций.
Гриды – это группы кластеров и суперкомпьютеров, разбросанных по разным городам и странам. Так, например, вы можете передать свою вычислительную задачу на сервер в Швейцарии, но она будет выполняться либо на кластерах в Германии, Франции или Польше. Наиболее известный пример грида – европейская грид-система EGEE, объединяющая в себе около сорока тысяч процессоров и несколько петабайтов дискового пространства.
Конечному пользователю часто сложно или не возможно различить суперкомпьютеры и кластеры. Вот три примера:
1. Не редко суперкомпьютерами называют и группу компьютеров подключённых друг к другу через высокоскоростные сети связи, что по сути — тот же самый компьютерный кластер;
2. В то же время существуют кластеры построенные на базе программного обеспечения HPCondor, это так же группа компьютеров взаимодействующих с сервером в локальной сети (часто – медленной сети) и не кто не рискнёт назвать такие кластеры суперкомпьютерами;
3. Есть же суперкомпьютеры NVIDIA (которые имеют системный блок большего размера чем обычные офисные компьютеры) у которых вся вычислительная система не разбросана по сети, а умещается в этом системном блоке.
Если взять примеры 2 и 3, то разница между суперкомпьютером и кластером очевидна. В первом и третьем, особой грани не видно, опять же обе системы из этих двух примеров называют суперкомпьютерами.
Кластеры HPCondor (англ. Condor, после 2012 года — HTCondor)
Программное обеспечение для организации такого кластера можно загрузить бесплатно со страницы проекта. Кластеры данного типа состоят из рабочих компьютеров и сервера. К комментариях dunordavind сделал важное уточнение: такие системы ВВ — не кластеры в классическом смысле, а скорее менеджеры ресурсов (но чтобы не переписывать весь текст я далее всё равно буду называть их кластерами). Преимущество такого кластера в том что рабочими компьютерами могут выступать обыкновенные офисные и лабораторные компьютеры на которых установленно клиентское ПО. В дневное время эти компьютеры могут использоваться для основной работы, но как только ими перестают пользоваться (это зависит от настроек) сервер начинает запускать на этих компьютерах задачи которые были переданы ему ранее. Обязательным условием использования этого кластера является установка клиентского ПО и на тот компьютер, с которого пользователи передают задачи. То есть и их компьютер должен быть частью кластера. Поддерживаемые операционные системы: MS Windows, MacOS и Linux.
Для выполнения программы, эта программа должна быть скомпилирована в исполняемый код для нужной ОС и вместе с необходимыми библиотеками передана на сервер. Это применимо и к программам написанным для МАТЛАБ – вам так же необходимо откомпилировать их используя компилятор C, который поставляется с МАТЛАБ. Для запуска этой программы в кластере, необходимо написать простой конфигурационный скрипт, в котором записаны требования к среде выполнения вашей программы (размер оперативной памяти, операционная система и так далее) и список передаваемых вместе с этой программой файлов. В качестве примера ниже приведён текст из одного из таких файлов (назовём его cost_top.txt):
Содержимое файла cost_top.bat, который выполняется на ноде:
Скорее всего вы поймёте, что первая строка в этом скрипте отвечает за добавление нужных путей в переменную окружения, вторая – за запуск нужной нам программы.
Для передачи вашей задачи на сервер кластера, необходимо будет в командной строке набрать 'condor_submit cost_top.txt'. После этого ваша задача будет поставлена в очередь и через некоторое время сервер будет готов запустить вашу задачу на клиентских компьютерах. Время ожидания в очереди зависит приоритета каждого из пользователей и нагрузки на кластер и выбирается системой балансировки задач сервера.
- с момента постановки задачи в очередь и до момента окончания расчёта ваш клиентский компьютер должен быть включён и подкючен к локальной сети так как сервер и клиент обмениваются файлами;
- данный кластер поддерживает только распределённые ВВ задачи;
- есть сложности в использовании какой-либо сторонней программы (отличной от написанной и откопелированной вами) и программ требующих множества библиотек.
Кластеры МАТЛАБ
МАТЛАБ сам по себе способен создать кластер. Для этого вам понадобится соответствующие библиотеки и сервер — Distributed Computing Toolbox и Distributed Computing Server. Сейчас современные процессоры компьютеров имеют более чем одно ядро и МАТЛАБ способен развернуть ваш собственный локальный кластер прямо на базе вашего рабочего компьютера. Такая конфигурация кластера известна как локальная конфигурация. Она удобна в тех случаях когда хочется немного ускорить расчёты без особых усилий как и тогда когда требуется протестировать программу перед её стартом на более серьёзной ВВ системе такой как суперкомпьютер или кластер.
Наряду с локальной конфигурацией существует и другие конфигурации. Например для кластера объединяющего группу компьютеров в локальной сети, группу компьютеров в кластере или в гриде. Если у администраторов есть возможность и они не ленятся, то они обычно настраивают кластеры МАТЛАБ и проводят обучающие курсы для того чтобы пользователям было легко пользоваться такими кластерами.
- клиентский компьютер, с которого передаются задачи для расчёта, может быть выключен после передачи задачи и пользователь может забрать результаты расчётов позже;
- могут выполнять как распределённые так и параллельные вычислительные задачи;
- пользователям МАТЛАБ легче начать пользоваться такими кластерами, так как язык программирования уже знаком;
- программы не требуют компиляции;
- адаптация программы для параллельных расчётов в которой уже есть операторы цикла 'for' очень проста – достаточно заменить такой оператор на 'parfor' и добавить пару строк для инициализации кластера и его закрытия после окончания работы.
Например, код без использования parfor:
А теперь то же самое с использованием parfor и четырёх нодов:
- МАТЛАБ – не бесплатный продукт и части пользователей он просто не по карману;
- кластерное ПО не поставляется с программой для балансировки нагрузки (она может быть установленна отдельно), что приводит к ситуациям когда некоторые пользователи занимают все ноды кластера и блокируют доступ других пользователей.
Суперкомпьютеры и гриды
Как уже было выше упомянуто, иногда сложно найти отличие между суперкомпьютером, вычислительным кластером и гридом. С этой стороны окна терминала все они выглядят одинаково. Все они имеют большое число процессоров и памяти в ВВ системе. Среди установленного программного обеспечения у них есть компиляторы и библиотеки MPI и OpenMP. Иногда установлен МАТЛАБ и другие программы поддерживающие использование группы нод и их памяти.
- пользователь подключается (как правило по SSH) к специальным нодам (англ. login nodes) на которых он интерактивно может выполнять часть команд и с которых может контролировать свои расчёты;
- загружает модули, необходимые для выполнения той или иной задачи, например, компилятор gcc и библиотеку MPI;
- если необходимо, то компилирует свою программу с поддержкой нужных библиотек;
- аналогично кластеру HPCondor, готовит файл настроек и команд для выполнения своей программы (англ. job submiossion file);
- передаёт этот файл настроек и команд при помощи команды 'qsub имя_файла' в очередь на выполнение;
- как только выполнение программы будет завершено, пользователь может получить результаты её выполнения (и проще их сохранять в файлы).
Файлы настроек аналогичны файлам кластеров HPCondor. Например для того чтобы запустить вышеприведённый пример с parfor можно воспользоваться следующим файлом:
Во второй строке указывается максимальное время необходимое для выполнения данной задачи, а в третьей – команда которую необходимо выполнить на данной системе для запуска нужного пользователю программного кода МАТЛАБ.
Ещё один пример файла для запуска программы которая использует библиотеки MPI:
Во второй строке – максимальное время необходимое для расчёта, в третьей – указание имени среды для параллельных расчётов (задано администраторами) и число запрашиваемых нодов, далее 4 строки с присвоением нужного значения переменным окружения, после чего две строки которые отвечают за подключение нужных модулей и в конце скрипта – запуск нужной программы которая будет использовать 12 нодов.
Заключение
Нельзя объять необъятное, но пытаться можно и нужно. В этой заметке я попытался сделать обзор систем высокопроизводительных вычислений, помочь начинающим пользователям разобраться со спектром возможностей и понять что доступно и как это можно использовать. Как вы видите, даже если у вас нет доступа к суперкомпьютерам и гридам, то можно построить свой кластер на основе МАТЛАБ или бесплатного ПО Кондор.
p.s. Если можете дополнить эту заметку или нашли ошибку, то прошу написать об этом ниже. В конце концов это будет только на пользу знаниям и пониманию вопроса и это даст возможность улучшить заметку.
p.p.s. Есть ещё возможность использования технологии CUDA для ускорения расчётов в С/C++ и МАТЛАБ путём вовлечения ядер графического процессора в работу, но об этом написано много.
Рис. 1.1. Структура сетевой ОС
В зависимости от функций, возлагаемых на конкретный компьютер, в его операционной системе может отсутствовать либо клиентская, либо серверная части.
Рис. 1.2. взаимодействие компонентов операционной системы при взаимодействии компьютеров
На практике сложилось несколько подходов к построению сетевых операционных систем (рисунок 1.3).
Рис. 1.3. Варианты построения сетевых ОС
Первые сетевые ОС представляли собой совокупность существующей локальной ОС и надстроенной над ней сетевой оболочки. При этом в локальную ОС встраивался минимум сетевых функций, необходимых для работы сетевой оболочки, которая выполняла основные сетевые функции. Примером такого подхода является использование на каждой машине сети операционной системы MS DOS (у которой начиная с ее третьей версии появились такие встроенные функции, как блокировка файлов и записей, необходимые для совместного доступа к файлам). Принцип построения сетевых ОС в виде сетевой оболочки над локальной ОС используется и в современных ОС, таких, например, как LANtastic или Personal Ware.
Однако более эффективным представляется путь разработки операционных систем, изначально предназначенных для работы в сети. Сетевые функции у ОС такого типа глубоко встроены в основные модули системы, что обеспечивает их логическую стройность, простоту эксплуатации и модификации, а также высокую производительность. Примером такой ОС является система Windows NT фирмы Microsoft, которая за счет встроенности сетевых средств обеспечивает более высокие показатели производительности и защищенности информации по сравнению с сетевой ОС LAN Manager той же фирмы (совместная разработка с IBM), являющейся надстройкой над локальной операционной системой OS/2.
Одноранговые сетевые ОС и ОС с выделенными серверами
В зависимости от того, как распределены функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые (рисунок 1.4). Последние чаще называют сетями с выделенными серверами.
Рис. 1.4. (а) - Одноранговая сеть, (б) - Двухранговая сеть
Если компьютер предоставляет свои ресурсы другим пользователям сети, то он играет роль сервера. При этом компьютер, обращающийся к ресурсам другой машины, является клиентом. Как уже было сказано, компьютер, работающий в сети, может выполнять функции либо клиента, либо сервера, либо совмещать обе эти функции.
Если выполнение каких-либо серверных функций является основным назначением компьютера (например, предоставление файлов в общее пользование всем остальным пользователям сети или организация совместного использования факса, или предоставление всем пользователям сети возможности запуска на данном компьютере своих приложений), то такой компьютер называется выделенным сервером. В зависимости от того, какой ресурс сервера является разделяемым, он называется файл-сервером, факс-сервером, принт-сервером, сервером приложений и т.д.
Очевидно, что на выделенных серверах желательно устанавливать ОС, специально оптимизированные для выполнения тех или иных серверных функций. Поэтому в сетях с выделенными серверами чаще всего используются сетевые операционные системы, в состав которых входит нескольких вариантов ОС, отличающихся возможностями серверных частей. Например, сетевая ОС Novell NetWare имеет серверный вариант, оптимизированный для работы в качестве файл-сервера, а также варианты оболочек для рабочих станций с различными локальными ОС, причем эти оболочки выполняют исключительно функции клиента. Другим примером ОС, ориентированной на построение сети с выделенным сервером, является операционная система Windows NT. В отличие от NetWare, оба варианта данной сетевой ОС - Windows NT Server (для выделенного сервера) и Windows NT Workstation (для рабочей станции) - могут поддерживать функции и клиента и сервера. Но серверный вариант Windows NT имеет больше возможностей для предоставления ресурсов своего компьютера другим пользователям сети, так как может выполнять более широкий набор функций, поддерживает большее количество одновременных соединений с клиентами, реализует централизованное управление сетью, имеет более развитые средства защиты.
Выделенный сервер не принято использовать в качестве компьютера для выполнения текущих задач, не связанных с его основным назначением, так как это может уменьшить производительность его работы как сервера. В связи с такими соображениями в ОС Novell NetWare на серверной части возможность выполнения обычных прикладных программ вообще не предусмотрена, то есть сервер не содержит клиентской части, а на рабочих станциях отсутствуют серверные компоненты. Однако в других сетевых ОС функционирование на выделенном сервере клиентской части вполне возможно. Например, под управлением Windows NT Server могут запускаться обычные программы локального пользователя, которые могут потребовать выполнения клиентских функций ОС при появлении запросов к ресурсам других компьютеров сети. При этом рабочие станции, на которых установлена ОС Windows NT Workstation, могут выполнять функции невыделенного сервера.
Важно понять, что несмотря на то, что в сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и сервера, и клиента, эта сеть функционально не симметрична: аппаратно и программно в ней реализованы два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном выполняющие клиентские функции и работающие под управлением соответствующего этому назначению варианта ОС. Функциональная несимметричность, как правило, вызывает и несимметричность аппаратуры - для выделенных серверов используются более мощные компьютеры с большими объемами оперативной и внешней памяти. Таким образом, функциональная несимметричность в сетях с выделенным сервером сопровождается несимметричностью операционных систем (специализация ОС) и аппаратной несимметричностью (специализация компьютеров).
В одноранговых сетях все компьютеры равны в правах доступа к ресурсам друг друга. Каждый пользователь может по своему желанию объявить какой-либо ресурс своего компьютера разделяемым, после чего другие пользователи могут его эксплуатировать. В таких сетях на всех компьютерах устанавливается одна и та же ОС, которая предоставляет всем компьютерам в сети потенциально равные возможности. Одноранговые сети могут быть построены, например, на базе ОС LANtastic, Personal Ware, Windows for Workgroup, Windows NT Workstation.
В одноранговых сетях также может возникнуть функциональная несимметричность: одни пользователи не желают разделять свои ресурсы с другими, и в таком случае их компьютеры выполняют роль клиента, за другими компьютерами администратор закрепил только функции по организации совместного использования ресурсов, а значит они являются серверами, в третьем случае, когда локальный пользователь не возражает против использования его ресурсов и сам не исключает возможности обращения к другим компьютерам, ОС, устанавливаемая на его компьютере, должна включать и серверную, и клиентскую части. В отличие от сетей с выделенными серверами, в одноранговых сетях отсутствует специализация ОС в зависимости от преобладающей функциональной направленности - клиента или сервера. Все вариации реализуются средствами конфигурирования одного и того же варианта ОС.
Одноранговые сети проще в организации и эксплуатации, однако они применяются в основном для объединения небольших групп пользователей, не предъявляющих больших требований к объемам хранимой информации, ее защищенности от несанкционированного доступа и к скорости доступа. При повышенных требованиях к этим характеристикам более подходящими являются двухранговые сети, где сервер лучше решает задачу обслуживания пользователей своими ресурсами, так как его аппаратура и сетевая операционная система специально спроектированы для этой цели.
ОС для рабочих групп и ОС для сетей масштаба предприятия
- Сети отделов - используются небольшой группой сотрудников, решающих общие задачи. Главной целью сети отдела является разделение локальных ресурсов, таких как приложения, данные, лазерные принтеры и модемы. Сети отделов обычно не разделяются на подсети.
- Сети кампусов - соединяют несколько сетей отделов внутри отдельного здания или внутри одной территории предприятия. Эти сети являются все еще локальными сетями, хотя и могут покрывать территорию в несколько квадратных километров. Сервисы такой сети включают взаимодействие между сетями отделов, доступ к базам данных предприятия, доступ к факс-серверам, высокоскоростным модемам и высокоскоростным принтерам.
- Сети предприятия (корпоративные сети) - объединяют все компьютеры всех территорий отдельного предприятия. Они могут покрывать город, регион или даже континент. В таких сетях пользователям предоставляется доступ к информации и приложениям, находящимся в других рабочих группах, других отделах, подразделениях и штаб-квартирах корпорации.
Главной задачей операционной системы, используемой в сети масштаба отдела, является организация разделения ресурсов, таких как приложения, данные, лазерные принтеры и, возможно, низкоскоростные модемы. Обычно сети отделов имеют один или два файловых сервера и не более чем 30 пользователей. Задачи управления на уровне отдела относительно просты. В задачи администратора входит добавление новых пользователей, устранение простых отказов, инсталляция новых узлов и установка новых версий программного обеспечения. Операционные системы сетей отделов хорошо отработаны и разнообразны, также, как и сами сети отделов, уже давно применяющиеся и достаточно отлаженные. Такая сеть обычно использует одну или максимум две сетевые ОС. Чаще всего это сеть с выделенным сервером NetWare 3.x или Windows NT, или же одноранговая сеть, например сеть Windows for Workgroups.
Пользователи и администраторы сетей отделов вскоре осознают, что они могут улучшить эффективность своей работы путем получения доступа к информации других отделов своего предприятия. Если сотрудник, занимающийся продажами, может получить доступ к характеристикам конкретного продукта и включить их в презентацию, то эта информация будет более свежей и будет оказывать большее влияние на покупателей. Если отдел маркетинга может получить доступ к характеристикам продукта, который еще только разрабатывается инженерным отделом, то он может быстро подготовить маркетинговые материалы сразу же после окончания разработки.
Итак, следующим шагом в эволюции сетей является объединение локальных сетей нескольких отделов в единую сеть здания или группы зданий. Такие сети называют сетями кампусов. Сети кампусов могут простираться на несколько километров, но при этом глобальные соединения не требуются.
Операционная система, работающая в сети кампуса, должна обеспечивать для сотрудников одних отделов доступ к некоторым файлам и ресурсам сетей других отделов. Услуги, предоставляемые ОС сетей кампусов, не ограничиваются простым разделением файлов и принтеров, а часто предоставляют доступ и к серверам других типов, например, к факс-серверам и к серверам высокоскоростных модемов. Важным сервисом, предоставляемым операционными системами данного класса, является доступ к корпоративным базам данных, независимо от того, располагаются ли они на серверах баз данных или на миникомпьютерах.
Именно на уровне сети кампуса начинаются проблемы интеграции. В общем случае, отделы уже выбрали для себя типы компьютеров, сетевого оборудования и сетевых операционных систем. Например, инженерный отдел может использовать операционную систему UNIX и сетевое оборудование Ethernet, отдел продаж может использовать операционные среды DOS/Novell и оборудование Token Ring. Очень часто сеть кампуса соединяет разнородные компьютерные системы, в то время как сети отделов используют однотипные компьютеры.
Корпоративная сеть соединяет сети всех подразделений предприятия, в общем случае находящихся на значительных расстояниях. Корпоративные сети используют глобальные связи (WAN links) для соединения локальных сетей или отдельных компьютеров.
К признакам корпоративных ОС могут быть отнесены также следующие особенности.
Поддержка приложений. В корпоративных сетях выполняются сложные приложения, требующие для выполнения большой вычислительной мощности. Такие приложения разделяются на несколько частей, например, на одном компьютере выполняется часть приложения, связанная с выполнением запросов к базе данных, на другом - запросов к файловому сервису, а на клиентских машинах - часть, реализующая логику обработки данных приложения и организующая интерфейс с пользователем. Вычислительная часть общих для корпорации программных систем может быть слишком объемной и неподъемной для рабочих станций клиентов, поэтому приложения будут выполняться более эффективно, если их наиболее сложные в вычислительном отношении части перенести на специально предназначенный для этого мощный компьютер - сервер приложений.
Сервер приложений должен базироваться на мощной аппаратной платформе (мультипроцессорные системы, часто на базе RISC-процессоров, специализированные кластерные архитектуры). ОС сервера приложений должна обеспечивать высокую производительность вычислений, а значит поддерживать многонитевую обработку, вытесняющую многозадачность, мультипроцессирование, виртуальную память и наиболее популярные прикладные среды (UNIX, Windows, MS-DOS, OS/2). В этом отношении сетевую ОС NetWare трудно отнести к корпоративным продуктам, так как в ней отсутствуют почти все требования, предъявляемые к серверу приложений. В то же время хорошая поддержка универсальных приложений в Windows NT собственно и позволяет ей претендовать на место в мире корпоративных продуктов.
Справочная служба. Корпоративная ОС должна обладать способностью хранить информацию обо всех пользователях и ресурсах таким образом, чтобы обеспечивалось управление ею из одной центральной точки. Подобно большой организации, корпоративная сеть нуждается в централизованном хранении как можно более полной справочной информации о самой себе (начиная с данных о пользователях, серверах, рабочих станциях и кончая данными о кабельной системе). Естественно организовать эту информацию в виде базы данных. Данные из этой базы могут быть востребованы многими сетевыми системными приложениями, в первую очередь системами управления и администрирования. Кроме этого, такая база полезна при организации электронной почты, систем коллективной работы, службы безопасности, службы инвентаризации программного и аппаратного обеспечения сети, да и для практически любого крупного бизнес-приложения.
База данных, хранящая справочную информацию, предоставляет все то же многообразие возможностей и порождает все то же множество проблем, что и любая другая крупная база данных. Она позволяет осуществлять различные операции поиска, сортировки, модификации и т.п., что очень сильно облегчает жизнь как администраторам, так и пользователям. Но за эти удобства приходится расплачиваться решением проблем распределенности, репликации и синхронизации.
В идеале сетевая справочная информация должна быть реализована в виде единой базы данных, а не представлять собой набор баз данных, специализирующихся на хранении информации того или иного вида, как это часто бывает в реальных операционных системах. Например, в Windows NT имеется по крайней мере пять различных типов справочных баз данных. Главный справочник домена (NT Domain Directory Service) хранит информацию о пользователях, которая используется при организации их логического входа в сеть. Данные о тех же пользователях могут содержаться и в другом справочнике, используемом электронной почтой Microsoft Mail. Еще три базы данных поддерживают разрешение низкоуровневых адресов: WINS - устанавливает соответствие Netbios-имен IP-адресам, справочник DNS - сервер имен домена - оказывается полезным при подключении NT-сети к Internet, и наконец, справочник протокола DHCP используется для автоматического назначения IP-адресов компьютерам сети. Ближе к идеалу находятся справочные службы, поставляемые фирмой Banyan (продукт Streettalk III) и фирмой Novell (NetWare Directory Services), предлагающие единый справочник для всех сетевых приложений. Наличие единой справочной службы для сетевой операционной системы - один из важнейших признаков ее корпоративности.
Безопасность. Особую важность для ОС корпоративной сети приобретают вопросы безопасности данных. С одной стороны, в крупномасштабной сети объективно существует больше возможностей для несанкционированного доступа - из-за децентрализации данных и большой распределенности "законных" точек доступа, из-за большого числа пользователей, благонадежность которых трудно установить, а также из-за большого числа возможных точек несанкционированного подключения к сети. С другой стороны, корпоративные бизнес-приложения работают с данными, которые имеют жизненно важное значение для успешной работы корпорации в целом. И для защиты таких данных в корпоративных сетях наряду с различными аппаратными средствами используется весь спектр средств защиты, предоставляемый операционной системой: избирательные или мандатные права доступа, сложные процедуры аутентификации пользователей, программная шифрация.
Статистика показывает: более 90% мощнейших компьютеров в мире по-прежнему работает под управлением *nix-систем. По данным очередного рейтинга наиболее производительных суперкомпьютеров планеты, абсолютное большинство систем, попавших в список, использует Linux либо различные вариации Unix-подобных ОС.
Каталог Суперкомпьютеры (системы и проекты) доступен на TAdviser.
Название
Традиционно за рубежом подобные сервисы называют Web Operating System или сокращенно Web OS. Иногда это название пишется слитно - WebOS, но это не является корректным (дело в том, что имя WebOS носил проект Университета им.Беркли в Калифорнии, посвященный созданию программного обеспечения в 1996 году [1] ). В этой связи определенное количество пользователей и разработчиков называет этот тип операционных систем Web Desktop (веб-десктопами или онлайн-десктопами), причем такое название устоялось в русском языке (в частности, авторы блогов на Интернетных Штучках называют эти проекты именно так [2] ).
Содержание
Функции сетевых операционных систем
Как уже было заявлено выше, сетевая операционная система состоит из набора веб-приложений (веб-сервисов), которые объединены в рамках единого пользовательского интерфейса, напоминающего классические десктопные системы (в частности, Windows или MacOS). Большинство подобных сервисов предоставляют пользователю:
- файловое хранилище, объемом от 1 до 10 Гб (в среднем);
- встроенный сервис электронной почты (объединяется с почтовым клиентом, расположенным в самой системе);
- единый (в большинстве случаев) логин до всех основных веб-сервисов, включаемых в состав сетевой операционной системы (например, хранилища медиафайлов, текстового редактора, органайзера);
- похожую организацию пользовательского интерфейса на Windows (кнопка "Пуск" с иерархичным меню, папка "Панель Инструментов" с похожими на Windows апплетами, например, для установки разрешения экрана и выбора темы оформления окон, или для ввода сведений о владельце);
- Рабочий стол с гаджетами;
- двухстороннюю синхронизацию PIM (личных данных) с десктопом или мобильным устройством (последнее имеется у считанных сервисов) по FTP или через программный клиент (преимущественно для коммуникаторов и смартфонов).
2017: Тотальное доминирование Linux
К ноябрю 2017 года все ведущие суперкомпьютеры работают на операционной системе Linux. Об этом свидетельствуют данные рейтинга Top500, который обновляется раз в два года и включает 500 самых мощных общественно известных вычислительных систем в мире.
В редакцию списка от ноября 2017 года не попали единственные два суперкомпьютера не на Linux, которые прежде входили в рейтинг. Речь идет о китайских системах на серверах IBM Power Systems и Unix-платформе AIX.
Распределение по дистрибутивам Linux следующее (в скобках указано значение из предыдущей редакции рейтинга):
- 53,4% (58,8%) не детализируют дистрибутив;
- 21,8% (16,6%) используют CentOS;
- 9,2% (8,6%) — Cray Linux;
- 4,2% (4,2%) — SUSE;
- 4,4% (3,4%) — RHEL;
- 1,4% (1,2%) — Ubuntu Linux;
- 0,8% (0,8%) — Scientific Linux.
К ноябрю 2017 года все 500 наиболее производительных суперкомпьютеров в мире управляются различными версиями Linux. Машины с этой ОС впервые появились в рейтинге в 1998 году, а в 2003-м они вышли в лидеры Top500, отмечает издание ZDNet.
С 2010 года первая десятка суперкомпьютеров представлена только решениями на базе Linux. С того же момента операционная система начала охватывать более 90% машин, входящих в рейтинг.
В организации Linux Foundation говорят, что тотальное доминирование Linux на рынке суперкомпьютеров можно объяснить двумя основные факторами. Во-первых, ученые могут оптимизировать и модифицировать исходный код Linux для конкретного аппарата. Во-вторых, использование Linux в суперкомпьютерах является финансово выгодным решением, поскольку стоимость лицензирования пользовательского дистрибутива одинакова для любых компьютеров.
Открытый сетевой Линукс
Это дистрибутив Linux (GitHub), разработанный облачной компанией, выкупленной Arista Networks в начале года, для работы на коммутаторах. Он является частью технологического стека NOS (Network Operating System), в который также входит в проект SONiC.
Систему поддерживают крупные представители ИТ-рынка — например, производитель сетевых решений Edgecore Networks, а также Google и Facebook. В 2015 году представители Open Compute Project назвали дистрибутив Open Network Linux (ONL) эталонной сетевой ОС.
Open Network Linux имеет агента на базе OF-DPA (OpenFlow Data Plane Abstraction) — он позволяет использовать OpenFlow на коммутаторах с матрицами производства Broadcom. Текущая версия операционной системы основана на ядре Linux 4.14.109. На коммутаторы она устанавливается через стандартизированное окружение Open Network Install Environment (ONIE). Его тоже разрабатывают в рамках Open Compute Project.
Целевой аудиторией этой операционной системы являются небольшие облачные провайдеры и компании, предлагающие SaaS-решения. Авторы ONL и стека NOS надеются, что их проект упростит разработку свитчей и другого сетевого аппаратного обеспечения для массового рынка, поспособствует развитию ИТ-отрасли и популяризирует саму концепцию открытых сетевых ОС.
Как автоматизировать управление ИТ-инфраструктурой — обсуждаем три тренда
Участие в open source проектах может быть выгодным для компаний — почему и что это дает
Большая часть суперкомпьютеров работает под управлением Linux — обсуждаем ситуацию
Подборка книг по кибербезопасности
История Fidonet за одну минуту
Преимущества и недостатки
Основное преимущество использования сетевых операционных систем состоит в их кроссплатформенности - они запускаются на любом устройстве, имеющем выход в Интернет и совместимый веб-браузер (в том числе, появляются и веб-десктопы для коммуникаторов и мобильных телефонов). Это значит, что пользователю предоставляются один и тот же набор приложений и сервисов в любое время и с любого компьютера. Кроме того, поскольку сама сетевая операционная система работает на мощностях удаленных серверов, постольку от компьютера пользователя не требуется каких-либо серьезных требований по мощности и производительности (по этой причине рост популярности подобных систем связывают с появлением на рынке нетбуков и Интернет-планшетов, с одной стороны, а, с другой стороны, с "тонкими клиентами").
Из ключевых недостатков у сетевых операционных систем на сегодняшний день можно выделить пока еще не до конца урегулированный механизм защиты личных данных (при использовании пользователь хранит на удаленном файловом хранилище свои файлы), а также относительную нестабильность самого ПО, используемого в этих системах (большинство систем находится в состоянии бета-тестирования, а входящие их состав веб-сервисы (например, Zoho Writer) могут периодически быть недоступными из-за профилактических работ).
На днях мы обсудили, как госучреждения в Европе переходят на открытое ПО. Теперь расскажем, кто делает что-то подобное на уровне ИТ-инфраструктуры — на примере пары открытых ОС.
Фото — Clint Adair — Unsplash
2012: 462 из 500 крупнейших суперкомпьютеров работают на Linux
Tоп-500, список самых мощных суперкомпьютеров мира, обновляющийся дважды в год, стабильно демонстрирует превосходство Linux в области высокопроизводительных систем. Согласно последнему рейтингу, на июнь 2012 г. 462 из 500 самых быстрых компьютеров планеты работают под Linux.
Победителем Tоп-500 по производительности на этот раз стала Sequoia — система IBM BlueGene/Q, установленная в Ливерморской национальной лаборатории им. Лоуренса, США. Вычислительный кластер из из 98 034 узлов использует Compute Node Linux — сборку Linux для суперкомпьютеров серии Cray, а также Red Hat Enterprise Linux для обработки ввода-вывода.
В тесте Linpack с использованием 1 572 864 ядер Sequoia показала скорость в 16,32 Пфлопс. Суперкомпьютер Ливерморской лаборатории способен обрабатывать 16,32 квадриллиона операций с плавающей точкой в секунду. Sequoia также поставила рекорд по энергосбережению: потребляемая ею мощность составляет всего 7,9 мегаватт.
Sequoia потеснила с первого места лидера октября 2011 года, K Сomputer от японской компании Fujitsu. Суперкомпьютер, установленный в институте RIKEN Advanced Institute for Computational Science в г. Кобе, Япония, в 2011 г. стал первой системой, перешагнувшей рубеж быстродействия в 10 Пфлопс. В качестве ОС японский вычислительный гигант использует адаптированную сборку Linux.
По статистике Топ-500, адаптированные сборки Linux применяются на подавляющем большинстве суперкомпьютеров (414 систем). Определённую популярность имеют и коммерческие дистрибутивы открытой ОС: SUSE Linux Enterprise Server 9 применяется на 11 системах, SUSE Linux Enterprise Server 10 — на 8, а Cray Linux — на 7.
Среди других ОС позиции распределились следующим образом: 25 суперкомпьютеров из 500 используют ОС семейства Unix, среди которых наибольшую популярность имеет AIX — закрытая Unix-подобная ОС, разработанная IBM (22 системы). Наименее популярными оказались BSD и OpenSolaris, каждая из которых применяется только на одной системе.
Ситуация, таким образом, обернулась в диаметрально противоположную сторону по сравнению со статистикой десятилетней давности, когда 99,4 % суперкомпьютеров работали под управлением Unix. Linux, начавший своё восхождение к вершине Tjg-500 в 2003 г., когда под ним работали 184 суперкомпьютера из 500, в настоящее время прочно занял положение наиболее предпочтительной ОС для высокопроизводительных компьютерных систем.
Что касается Windows, то продукту Microsoft отдали предпочтение инженеры всего 2 систем, что является шагом назад по сравнению даже с прошлым годом, когда Windows-суперкомпьютеров было 4. Под управлением Windows HPC 2008 работает китайский суперкомпьютер Magic Cube, занявший 94-е место по производительности. Второй компьютер под этой ОС — австралийский CSIRO GPU Cluster — расположился в Tоп-500 под номером 156.
Сетевая операционная система - комплекс веб-сервисов, объединенных для запуска на одной странице с использованием веб-браузера, позволяющих достичь такого же уровня функциональности, как и на десктопных ОС. В отличие от порталов, сетевые операционные системы не просто предоставляют доступ до ресурсов, но являются "точкой входа" веб-сервисов с той или иной степенью приближенным к обычным операционными системам пользовательским интерфейсом.
Принцип работы
Основа любой сетевой операционной системы - системы распределенных вычислений, использующих мощности несколько десятков или сотен серверов, находящихся на большом удалении друг от друга, или же "облачные" системы, то есть программному обеспечению, установленному на серверах, до которых пользователю предоставляется доступ через веб-браузер из любого места, где есть Интернет. В свою очередь, сами сервисы создаются на основе двух технологий - AJAX (асинхронный JavaScript и XML (eXtensible Markup Language) и Flash. Преимущество первого - относительно широкая распространенность веб-браузеров, работающих с JavaScript, что позволяет разворачивать сложные приложения, по своей функциональности, приближенные к тем, что существуют на настольных компьютерах (яркий тому пример - текстовый редактор, например, ZohoWriter). Плюс ко всему сама страница, содержащая подобный программный код, минимально загружает Интернет-канал пользователя, отправляя на сервер, обслуживающий веб-сервис минимальное количество данных по сравнению с тем, если бы страница обновлялась полностью. Использование же Flash подразумевает также экономию трафика за счет загрузки векторной, а не растровой графики, а также разделения самого потока на составные части, которые могут воспроизводиться в браузере "на лету" (типичный пример - видеоплееры для потокового видео, позволяющие просматривать видеоизображение, не загружая его до конца). По статистике компании Adobe, разработчика технологии Flash, в мире 98% компьютеров, выходящих в Интернет, имеют браузеры, совместимые с Flash, поэтому их пользователям не требуется установка дополнительного ПО для работы в сетевой операционной системе. С AJAX ситуация сложнее - для корректной работы на компьютере должна быть установлен интерпретатор языка JAVA (JAVA-машина), а в браузере должен быть JavaScript. Большинство сетевых операционных систем рассчитано на работу в браузерах Internet Explorer и семейства Firefox (по собственным наблюдениям, самый удобный для подобных сервисов - это Flock). В Opera Browser часть сервисов работает нестабильно, что связано с собственным интерпретатором языка JAVA в браузере.
Начало работы с сетевой операционной системы состоит в обязательной регистрации в сервисе (как правило, она бесплатная): пользователь указывает в качестве логина адрес Email и пароль, которые могут использоваться как для входа в систему через браузер, так и для загрузки контента по FTP (например, в G.ho.st).
«Соник в сети»
Это открытая ОС, построенная на Linux. В качестве базового дистрибутива здесь выбран Debian. Она управляет свитчами и другим сетевым оборудованием от разных поставщиков. В разработке системы приняли участие такие организации, как Microsoft, Dell и Broadcom. Исходники распространяют под лицензией Apache 2.0. Операционная система работает на процессорах x86/64 и поддерживает спецификацию SAI (Switch Abstraction Interface). Это — стандартизованный API на C для программирования ASIC’ов. Проект SAI так же передан в open source и есть на GitHub.
Некоторые ключевые модули находятся в хост-системе Linux. Для работы с ними задействован особый модуль конфигурации sonic-cfggen и CLI.
Проект используют сами разработчики в собственных дата-центрах и добавляютподдержку системы в свое аппаратное обеспечение. Сегодня её также использует несколько крупных азиатских облачных провайдеров для упрощения работы с ИТ-инфраструктурой. Но резиденты Hacker News, которые успели поработать с этой ОС, все же выделили несколько недостатков.
Один из пользователей отметил относительную сложность настройки, так как в документации прописаны не все требования к портам, интерфейсам и линкам. Также проект использует версию Linux kernel 4.9.x, которая до сих пор поддерживается, но лишена некоторых сетевых возможностей.
Несмотря на открытость, внести изменения в конфигурацию может быть проблематично — разработчики принимают pull-запросы по предварительно одобренным и запланированным вопросам.
Фото — Philipp Katzenberger — Unsplash
Содержание
Читайте также: