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.
MOSIX2
Последняя версия 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
MOSIX4 была выпущена в июле 2014 года. Начиная с версии 4 MOSIX не требует патча ядра.
openMosix
После объявления MOSIX проприетарным в 2001 году Моше Бар форкнул последнюю свободную версию и 10 февраля 2002 года начал проект openMosix.
15 июля 2007 года Бар решил завершить проект openMosix 1 марта 2008 года. Дальнейшим развитием программного кода openMosix занялся проект LinuxPMI (англ.).
Публикации, посвященные MOSIX
Исследовательской группой MOSIX выпущены более 150 научных публикаций, включая 40 диссертаций, статьи в научных журналах, а также книга по MOSIX. Ссылки на некоторые публикации приведены ниже.
- Barak A. and Shapir A., UNIX with satellite Processors. Software — Practice & Experience, Vol. 10, No. 5, 1980.
- Barak A. and Litman A., MOS — A Multicomputer Distributed Operating System. Software — Practice & Experience, Vol. 15, No. 8, 1985.
- Barak A. and Shiloh A., A Distributed Load-balancing Policy for a Multicomputer. Software — Practice & Experience, Vol. 15, No. 9, 1985.
- Barak A. and Paradise G. O., MOS — Scaling Up UNIX. Proc. USENIX Conf., 1986.
- Barak A. and Paradise G. O., MOS — a Load Balancing UNIX. Proc. EUUG Conf., 1986.
- Barak A. and Kornatzky Y., Design Principles of Operating Systems for Large Scale Multicomputers, Report RC 13220, IBM T.J. Watson Research Center, 1987.
- Alon N., Barak A. and Manber U., On Disseminating Information Reliably Without Broadcasting, Proc. ICDCS-7, 1987.
- Barak A. and Wheeler R., MOSIX: An Integrated Multiprocessor UNIX. Proc. Winter 1989 USENIX Conf., 1989.
- Barak A., Shiloh A. and Wheeler R., Flood Prevention in the MOSIX Load-Balancing Scheme, IEEE-TCOS, Vol. 3, No. 1, 1989.
- 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.
- Barak A., Laden O. and Yarom Y., The NOW MOSIX and its Preemptive Process Migration Scheme. IEEE TCOS, Vol. 7, No. 2, 1995.
- 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.
- Barak A., La’adan O. and Shiloh A., Scalable Cluster Computing with MOSIX for LINUX. Proc. 5-th Linux Expo, 1999.
- 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.
- 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.
- 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.
- 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.
- Barak A., Shiloh A. and Amar L., An Organizational Grid of Federated MOSIX Clusters. CCGrid-05, 2005.
- Amar L., Barak A., Drezner Z. and Peer I., Gossip Algorithms for Maintaining a Distributed Bulletin Board with Guaranteed Age Properties, 2006.
- 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.