MOSIX

MOSIX — это система управления кластерами и сетями ОС на ядре Linux, представляющая их как одну систему (Single-System Image, SSI), то есть эквивалент операционной системы для кластера в целом. В кластере MOSIX нет необходимости в модификации существующих приложений, в связывании с дополнительными библиотеками, в явном входе на удаленные узлы — все это осуществляется автоматически, прозрачно для приложений подобно SMP.

Предыстория

[править | править код]

MOSIX разрабатывается с 1977 года в Еврейском университете (Иерусалим) исследовательской группой под руководством профессора Амнона Барака. До настоящего времени выпущены 10 версий. Первая версия, именуемая MOS (Multicomputer OS), выпущенная в 1983 году, базировалась на UNIX 7 производства Bell Labs и была предназначена для кластера компьютеров PDP-11. Несколько последующих версий были основаны на UNIX System V и работали на кластерах компьютеров VAX и NS32532 (англ.). В 1993 году была выпущена версия, основанная на BSD/OS для кластера компьютеров 486/Pentium. Начиная с 1999 года MOSIX базируется на Linux для платформы х86.

Последняя версия MOSIX, именуемая MOSIX2, совместима с Linux версии 2.6. MOSIX2 реализована на уровне виртуализации операционной системы (OS Virtualization layer), который представляется пользователям и приложениям как единая система (SSI) под управлением Linux. Это позволяет приложениям работать на удаленных узлах в точности так же, как они бы работали локально. Пользователи запускают свои обычные приложения (как последовательные, так и параллельные) и MOSIX прозрачно для них ищет свободные ресурсы в кластере и распределяет процессы среди доступных узлов, увеличивая тем самым общую производительность.

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

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

MOSIX2 может работать на реальном компьютере или на виртуальной машине. В первом случае производительность будет выше, но это требует модификации ядра Linux, тогда как во втором случае виртуальная машина может быть запущена поверх любой операционной системы, поддерживающей виртуализацию, без каких-либо модификаций. В частности это может быть любой дистрибутив GNU/Linux или версия Windows NT.

MOSIX2 является наиболее подходящим выбором для запуска приложений, требующих интенсивных вычислений и незначительного или среднего объема операций ввода-вывода. Тестирование MOSIX2 показывает, что производительность нескольких таких приложений, запущенных на многокластерной сети, построенной поверх сети Ethernet 1Gb/s, практически идентична производительности, полученной на локальном кластере.

Основные возможности

[править | править код]
  • Представляется как единая система (SSI)
    • Пользователь может войти на любой узел и не знает, где исполняются запущенные им процессы.
    • Нет необходимости в модификации существующих приложений или использовании специализированных библиотек.
    • Нет необходимости в копировании файлов на удаленные узлы.
  • Автоматическое обнаружение свободных ресурсов и распределение нагрузки путём миграции процессов.
    • Балансировка нагрузки.
    • Перенос процессов с более медленных узлов на более быстрые, а также с узлов, испытывающих нехватку памяти.
  • Каналы прямой связи между процессами, независимые от узлов, на которых эти процессы исполняются.
  • Безопасное исполняющее окружение (sandbox) для процессов.
  • В очереди заданий сохраняется полная среда исполнения Linux.
  • Поддержка пакетных заданий.
  • Создание контрольных точек и восстановление.
  • Скрипты для автоматической инсталляции и конфигурации, онлайновый мониторинг и т. д.

MOSIX4 была выпущена в июле 2014 года. Начиная с версии 4 MOSIX не требует патча ядра.

После объявления MOSIX проприетарным в 2001 году Моше Бар форкнул последнюю свободную версию и 10 февраля 2002 года начал проект openMosix.

15 июля 2007 года Бар решил завершить проект openMosix 1 марта 2008 года. Дальнейшим развитием программного кода openMosix занялся проект LinuxPMI (англ.).

Публикации, посвященные MOSIX

[править | править код]

Исследовательской группой MOSIX выпущены более 150 научных публикаций, включая 40 диссертаций, статьи в научных журналах, а также книга по MOSIX. Ссылки на некоторые публикации приведены ниже.

  1. Barak A. and Shapir A., UNIX with satellite Processors. Software — Practice & Experience, Vol. 10, No. 5, 1980.
  2. Barak A. and Litman A., MOS — A Multicomputer Distributed Operating System. Software — Practice & Experience, Vol. 15, No. 8, 1985.
  3. Barak A. and Shiloh A., A Distributed Load-balancing Policy for a Multicomputer. Software — Practice & Experience, Vol. 15, No. 9, 1985.
  4. Barak A. and Paradise G. O., MOS — Scaling Up UNIX. Proc. USENIX Conf., 1986.
  5. Barak A. and Paradise G. O., MOS — a Load Balancing UNIX. Proc. EUUG Conf., 1986.
  6. Barak A. and Kornatzky Y., Design Principles of Operating Systems for Large Scale Multicomputers, Report RC 13220, IBM T.J. Watson Research Center, 1987.
  7. Alon N., Barak A. and Manber U., On Disseminating Information Reliably Without Broadcasting, Proc. ICDCS-7, 1987.
  8. Barak A. and Wheeler R., MOSIX: An Integrated Multiprocessor UNIX. Proc. Winter 1989 USENIX Conf., 1989.
  9. Barak A., Shiloh A. and Wheeler R., Flood Prevention in the MOSIX Load-Balancing Scheme, IEEE-TCOS, Vol. 3, No. 1, 1989.
  10. Barak A., Guday S. and Wheeler R., The MOSIX Distributed Operating System, Load Balancing for UNIX. Lecture Notes in Computer Science, Vol. 672, Springer-Verlag, 1993.
  11. Barak A., Laden O. and Yarom Y., The NOW MOSIX and its Preemptive Process Migration Scheme. IEEE TCOS, Vol. 7, No. 2, 1995.
  12. Barak A. and La’adan O., The MOSIX Multicomputer Operating System for High Performance Cluster Computing. Journal of Future Generation Computer Systems, Vol. 13, No. 4-5, 1998.
  13. Barak A., La’adan O. and Shiloh A., Scalable Cluster Computing with MOSIX for LINUX. Proc. 5-th Linux Expo, 1999.
  14. Amir Y., Awerbuch B., Barak A., Borgstrom R.S. and Keren A., An Opportunity Cost Approach for Job Assignment in a Scalable Computing Cluster. IEEE TPDS Vol. 11, No. 7, 2000.
  15. Amar L., Barak A. and Shiloh A., The MOSIX Parallel I/O System for Scalable I/O Performance. Proc. 14-th Int. Conf. on Parallel and Distributed Computing and Systems, 2002.
  16. Keren A. and Barak A., Opportunity Cost Algorithms for Reduction of I/O and Interprocess Communication Overhead in a Computing Cluster. IEEE TPDS, Vol. 14, No. 1, 2003.
  17. Amar L., Barak A. and Shiloh A., The MOSIX Direct File System Access Method for Supporting Scalable Cluster File Systems. Cluster Computing, Vol. 7, No. 2, 2004.
  18. Barak A., Shiloh A. and Amar L., An Organizational Grid of Federated MOSIX Clusters. CCGrid-05, 2005.
  19. Amar L., Barak A., Drezner Z. and Peer I., Gossip Algorithms for Maintaining a Distributed Bulletin Board with Guaranteed Age Properties, 2006.
  20. Amar L., Barak A., Levy E. and Okun M., An On-line Algorithm for Fair-Share Node Allocations in a Cluster, Accepted to CCGrid-07.