История одного маленького дистрибутива Linux (Денис Пынькин, LVEE-2015)
Содержание
Аннотация
- Докладчик
- Денис Пынькин
Article describes the history of creation and supporting Linux-based infrastructure in ECM department of BSUIR. Described evolution and current state of technical decisions used for creation Linux-based infrastructure.
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.
Слайды
Тезисы
Введение
Инфраструктура в образовательных заведениях играет первоочередную роль в обучении студентов самым разным технологиям. Если нет системы, на которой можно потренироваться и набить себе шишки, понять что работает, как описано, а где возникают “нюансы работы”, то никакие видео-обзоры и тонны литературы не заменят реального опыта. Именно поэтому в учебных лабораториях необходимо иметь возможность поработать с различными операционными системами, включая ОС Linux.
Историческая справка
Первые эксперименты по внедрению ОС Linux в обучение на кафедре ЭВМ БГУИР начались примерно в 2002-2003 годах с классического подхода к установке системы параллельно с основной ОС. К счастью, этот подход не прижился — нехватка места на диске, легкость “поломать все”, неопытность внедряющих сделали свое дело.
Следующим шагом стала попытка минимизировать простои систем в случае поломок. Хотя эта задача и была решена “в лоб” с помощью банального восстановления соответствующих разделов, но позволило добиться более-менее стабильной работы обеих используемых ОС, поскольку появилась возможность восстанавливать работоспособную систему в течении одного перерыва.
Интересным оказался эффект такого подхода. Во-первых появилась возможность “доверить” студентам права администратора на студенческих машинах, а во-вторых, после введения соответствующего пункта в меню загрузчика, задача восстановления работоспособности машины перекочевала на плечи студентов.
Примерно с 2003-2004 годов начались попытки поиграться с сетевой загрузкой — начиная с загрузки самописной “системы восстановления” и заканчивая полноценной загрузки систем с развернутым корнем на сервере [SP01]. Тем не менее возникли те же проблемы, что и с локально установленной системой и, в дополнение к этому, добавились проблемы с общим разделяемым ресурсом, добавилась необходимость отслеживания состояния этих развернутых систем и невозможность студентам починить систему самостоятельно. А ломались и “ломались” такие системы довольно часто — как случайно, так и намеренно.
Интересным опытом оказалось использование рабочих машин в качестве тонких клиентов вплоть до исключительно ssh-клиента на серверную систему. Вот уж где было раздолье для любопытствующих личностей! Начиная от форк-бомб и получения привелегий рута, парализующих работу целой лаборатории и заканчивая “посмотри-меня-xxx-в-sd-качестве.avi” файлами с установленными executable битами.
Примерно в 2005-2006 годах стало понятно, что от идеальной учебной системы требуется, чтобы она:
- загружалась по сети;
- работала локально на студенческих системах;
- не использовала НЖМД;
- работала в режиме R/O;
- содержала максимально полный набор ПО для разработки;
- имела графическое окружение, не вызывающее желания тут же убежать.
К тому моменту такие системы уже существовали в виде Live-CD и initrd-only систем. Несмотря на все достоинства использования initrd в качестве базовой системы, у нее есть один недостаток, перечеркивающий все плюсы такого подхода — вся система находится в памяти, отъедая этот дефицитный ресурс у полезных программ. Кроме того появляется жесткое ограничение на размер образа, что уменьшает количество полезного ПО и требует зачастую нетривиальных оптимизаций.
Отличие же Live-CD от такой же системы, но загружающейся по сети, минимально и, фактически, заключается в начальной инициализации системы [P01].
Примерно в это же время удалось добиться полноценной работы ОС семейства Windows, что дало возможность отказаться от дисковых систем при создании компьютерных лабораторий на кафедре ЭВМ БГУИР начиная с 2007 года [PGO01].
Дистрибутив
На данный момент архитектура построения stateless-систем, загружающихся по сети [P01] уже считается классикой и используется во всех распространенных дистрибутивах.
Разница по большей части заключается в наборе ПО, которое содержится на stateless-системе и его изначальной конфигурации. Наверное максимально близко к нужному составу ПО стоит Knoppix, разрабатываемый Клаусом Кноппером, однако все равно необходимо проводить адаптацию к целевой инфраструктуре.
Кроме того, некоторое ПО сугубо специфично для некоторых курсов читаемых на кафедре ЭВМ, например MPI и Cuda.
Отдельным пунктом хотелось бы упомянуть, что зачастую недостаточно просто установить нужный пакет из репозитория — ему требуется дополнительная настройка для корректной работы, например тот же OpenMPI требует корректной настройки ssh, а так же корректировки настроек для работы с несколькими сетевыми картами.
В дополнение к вышесказанному необходимо отметить, что хотелось бы иметь более-менее современные версии ПО, что приводит к еще одной проблеме — весь состав ПО, все правки постоянно изменяются во времени.
Все вышесказанное приводит к тому, что фактически приходится разрабатывать свой собственный дистрибутив, предназначенный для stateless-работы в учебных заведениях. Естественно, что создание такого дистрибутива с чистого листа крайне ресурсоемкая задача, а так как универсального решения, как и универсального “эталонного” дистрибутива пока не существует, то необходимо делать выбор в пользу одного из существующих решений.
Я не хочу вступать в дискуссии о том, какой дистрибутив брать в качестве базового для решения этой задачи. Просто отмечу, что до начала 10-х годов 21 века далеко не все дистрибутивы задавались вопросом разработки целостной платформы для создания своих собственных “кастомных” решений. Одним из счастливых исключений является ALT Linux, который используется в качестве базовой системы для построения нужного дистрибутива.
На данный момент в дистрибутивах семейства ALT Linux используется система сборки дистрибутива “mkimage-profiles” [S01], которая по своей сути является набором Makefile’ов, знакомых каждому программисту.
Человеческий фактор
В связи с тем, что у Министерства Образования нет четкой политики по использованию открытого ПО в целом, и ОС Linux в частности, в ВУЗах используют, если вообще используют, тот дистрибутив, который нравится местному системному администратору [DKP01]. Поэтому при смене Linux-администратора на кафедре, сборка текущего дистрибутива прекратила свое развитие, а создание новой сборки, на новой базе — достаточно долгий, тонкий и кропотливый процесс, отнимающий много времени и сил.
Немаловажным фактором являлась фактически непубличная разработка предыдущей версии дистрибутива. Причин масса, однако главными из них являются стыд и лень: стадно за те хаки, которые использовались при кастомизации дистрибутива, а с учетом достаточно большого количества мелких изменений, всегда возникает соблазн отложить “генеральную уборку” еще “на чуть-чуть”. И так до тех пор пока не станет слишком поздно.
Масла в огонь подлило открытие совместной лаборатории БГУИР и Epam, в которой проводятся занятия по изучению ОС Linux[PS01]. Внезапно выяснилось, что помимо ожидаемой разницы между различными дистрибутивами ОС Linux в структуре и работе различных утилит, в рамках даже одного дистрибутива изменений уже достаточно, чтобы сорвать часть занятия.
Таким образом, под влиянием внешних факторов воля была собрана в кулак и началось приведение помойки почти трехлетней давности в порядок, с учетом накопленного опыта и набитых шишек.
Новое время — новые вызовы
Первый этап по генеральной чистке и приведению правил сборки в порядок был успешно преодолен с помощью разработчика “mkimage-profiles” Михаила Шигорина.
Но, к сожалению одной только чистки и облагораживания недостаточно: какое-то ПО развилось до неузнаваемого, какое-то исчезло, появились новые интересные приложения и популярные языки программирования — все это необходимо осознать и интегрировать. Добавились современные системы виртуализации и управления контейнерами. При этом все же желательно уложиться в лимит 4GB, чтобы иметь возможность создавать DVD-образ.
И, наконец, ведется работа по адаптации получившейся системы в сетях ОС Windows, чтобы была возможность загружать ОС Linux в учебных заведениях (и не только), без изменения их инфраструктуры.
Литература
- [SP01]
- Р.Х. Садыхов, Д.А. Пынькин. Технология построения кластерных систем для образовательных целей. Доклады Международной научной конференции SSA’2004. Минск, 26-28 октября 2004.
- [P01]
- Пынькин Д.А, Бездисковые рабочие станции на базе технологий ALT Linux, http://lvee.org/media/presentations/lvee_2008_03-1.pdf
- [PGO01]
- Д.А. Пынькин, И.И. Глецевич, А.В. Отвагин. Использование бездисковых рабочих станций в образовательном процессе БГУИР // Материалы 4 международной конференции “Информационные системы и технологии” IST’2008. Минск, 2008. С. 310-315.
- [S01]
- М.А.Шигорин. Макраме из дистрибутивов: mkimage-profiles. Девятая конференция разработчиков свободных программ: Тезисы докладов / Обнинск, 23–24 июля 2012 года. С.48-49, http://www.altlinux.ru/media/protva-2012.pdf
- [DKP01]
- Derechennik S.S., Kostiuk D.A., Pynkin D.A. Free/libre software usage in the belarusian system of higher educational institutions // Друга міжнародна науково-практична конференція FOSS Lviv-2012: Збірник наукових праць/ Львів, 26-28 квітня 2012 р
- [PS01]
- Д.А. Пынькин, В.В. Шахов. Обучение Linux в корпоративном секторе. Зимняя международная конференция LVEE’2013. Тезисы докладов. http://lvee.org/en/abstracts/57
Примечания и отзывы
Plays:174 Comments:0