Inferno OS Wiki
Advertisement
Оригинал: http://www.resc.rdg.ac.uk/presentations/Inferno_25-03-04

Inferno-owen[]

Система состоит из следующих компонетов:

  • Планировщик (Scheduler)
  • Клиент (Client)
  • GUI-приложение Монитор
  • Web-интерфейс

Шаг I: Подключение к планировщику[]

Image001

  • Каждый клиент вызывает Планировщик и устанавливает с ним tcp-соединение.
  • Как только соединение будет установлено, Планировщик экспортирует свое пространство имен используя протокол Styx.

Шаг II: Импортирование пространства имен планировщика[]

Image002

  • Каждый клиент импортирует пространство имен Планировщика и:
    • Записывает различные атрибуты, такие как скорость процессора в файл nodeattrs. Например:
echo cputype "intel 800" > nodeattrs
    • Записывает свое системное имя в файл nodename. Например:
echo "boris" > nodename
    • Открывает файл task, который блокируется до появления готовой к исполнению задания. Открытие файла task устанавливает сессию с планировщиком, который поддерживает текущее состояние пока файл остается открытым.

Шаг III: Выполнение задания[]

Image003

  • Как только файл task разблокируется, клиент:
    • Читает данные задания
    • Исполняет задание (либо внутри Inferno, либо под управлением низлежащей операционной системы)
    • Записывает результаты завершенной работы обратно в файл task
    • Пробует прочитать следующее задание

Пространство имен планировщика в подробностях[]

Image004

  • Где n0 ... ni - это идентификаторы всех работ, известных планировщику.
  • Каждая работа имеет свой собственный каталог, содержащий файл ctl (управление) и описательные файлы.
  • Входные команды
echo load cmd > /admin/ctl
echo delnode nodename /admin/ctl
echo start > /admin/n/ctl
echo stop > /admin/n/ctl
echo priority high | low > /admin/n/ctl
  • Файлы вывода
    • /admin/jobs: список работ и их статус
    • /admin/nodes: список нод и их статус

Диспетчер Inferno Grid[]

Monpic

Монитор

  • Диспетчер (Supervisor) монтирует интерфейс планировщика, описанный выше, и
    • Отображает графический интерфейс.

Generating Tasks[]

  • Планировщик Inferno Grid оснащен генератором заданий общего назначения
    • Вы отдаете генератору скрипт для вашего приложения
    • Скрипт должен реализовать четыре функции
      • Создать работу - Create Job
      • Получить задание - Get task
      • Задание выполнено - Task complete
      • Работа выполнена - Job complete
  • Так же есть и соответствующий клиентский интрфейс
    • Клиентский интерфейс получает задание (в описанном формате)
    • Распаковывает задание в клиентское пространство имен
    • Запускает задание на исполнение
    • Ждет завершения
    • Сообщает результаты используя файл data

Web-интерфейс[]

  • Методы Web
controlJob
getJobs
newJobs
controlMachine
getMachines
  • Методы отображаются в операции чтения/записи в пространство имен планировщика
    • Синие стрелки - операции чтения
    • Красные стрелки - запись

Image010

Установка Inferno Grid[]

Vninstaller

Vninstaller

  • Планировщик может работать на любой машине, на которой работает Inferno
    • запускается в качестве процесса-демона или сервиса NT
  • ПО Grid-клиентов запускается в качестве NT-сервиса или демона
    • Пользователи клиентов не задумываются о клиентском ПО
    • Запускается с низким приоритетом (прямо над хранителями экрана)
  • Установка в Windows-сети выполняется с помощью Win32-инсталлятора
Advertisement