ALT Linux Rescue (Михаил Шигорин, OSSDEVCONF-2014) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Новая страница: «== Аннотация == ;Докладчик: {{Speaker|Михаил Шигорин}} <blockquote> Доклад посвящён развитию и примен…») |
(нет различий)
|
Версия 21:40, 10 октября 2014
Аннотация
- Докладчик
- Михаил Шигорин
Доклад посвящён развитию и применению образа спасательного диска, созданного на базе технологий и пакетной базы ALT Linux [1].
Видео
Оцените доклад «ALT Linux Rescue (Михаил Шигорин, OSSDEVCONF-2014)»:
Слайды
Расширенные тезисы
Введение
Лучше бы никогда не была востребована тематика данного доклада, но в реальном мире люди продолжают ошибаться, «железо» продолжает отказывать и потому вопросы диагностики сбоев, исправления низкоуровневых разрушений, восстановления утерянных либо предположительно уничтоженных данных, оптимизации работы систем остаются всё так же актуальными.
Существует большое количество прикладных пакетов свободного программного обеспечения, предназначенных помочь с решением этих вопросов.
Поскольку для их практического использования нередко требуется гарантированно работоспособная или «чистая» среда, создано также и немало спасательных LiveCD («живых дисков», позволяющих загрузить ПК вне зависимости от состояния его собственных носителей).
Так, стоит упомянуть и две дискетки tomsrtbt, и специализированные проекты вроде Recovery Is Possible; «обычные» дистрибутивы также склонны включать в состав расширенных вариантов возможность загрузки небольшого «спасателя».
Зачем было делать ещё один?
Во-первых, в составе дистрибутивов ALT Linux давно был свой «аварийный кусочек»; во-вторых, оказалось, что наш нестабильный репозиторий прекрасно подходит для автоматического формирования подобных сборок, которые при надобности оказываются доступны вместе со свежими версиями ядра Linux и требуемых программ.
Реализация
В 2007 году был оформлен набросок на базе основной технологии сборки mkimage-profiles-desktop, в 2011 перенесён на разрабатываемые mkimage-profiles;
удачность публикуемых в частном порядке «исошек» определила их включение в проект регулярных сборок [2] и еженедельное автоматизированное обновление, причём вскоре «спасатель» оказался наиболее востребованным с широкой географией загрузки.
Далее был запущен и проект стартовых наборов [3] с ежеквартальным выпуском расширенного комплекта на базе стабильного репозитория, куда вошёл и rescue.
Образ использует вариант ядра un-def, который сопровождается на основе mainline-ветки kernel.org и обычно соответствует текущей либо предыдущей стабильной версии ядра Linux; как следствие, новое аппаратное обеспечение имеет больше шансов заработать вообще или как положено. Также включены, как правило, недавние версии прикладных пакетов вроде smartmontools или scalpel с аналогичным положительным влиянием на общую функциональность набора.
Контроль качества
Что же делает возможным столь частое обновление сборки на основе нестабильной ветки с сохранением работоспособности, ведь ручная проверка отсеяла считанные единицы результатов?
С одной стороны, это тривиальная выпечка проверочных образов накануне с возможностью внести исправления в пакеты и сборочный профиль до запуска «релизного» процесса; так обычно отлавливались существенно обновлённые ядра без поддержки AUFS, необходимой для всех альтовских «живых» дисков и инсталяторов при нынешнем подходе.
С другой — это следствие фундаментального подхода, выбранного при создании mkimage-profiles, когда «начинка» образов определяется в процессе итеративного уточняющего конфигурирования и собирается в основном из «блоков»: при этом оказывается возможно вкладывать усилия в повторно используемые блоки, а проверка качества промежуточных результатов косвенно характеризует и их «потомков».
Так, у всех регулярных сборок есть общая часть – «ствол» дерева конфигурации; найденная при проверке любого образа ошибка после исправления будет ликвидирована во всех производных.
Соответственно и вновь разработанная функциональность может быть применена в различных продуктах путём затребования соответствующего блока (например, обеспечения загрузки в режиме UEFI).
Применение
Нет прока от того, чем не пользуются. Какие-то изменения вносились в rescue по результатам вынужденного задействования на своих системах, другие — по просьбам пользователей или после знакомства с аналогичными изделиями коллег.
Здесь интересно выделить случаи необычного применения, когда люди говорили — «ваша штуковина заработала лучше всего остального». Их пока было три.
Криминалистический режим
Существует узкая специализация подобных продуктов, вызванная необходимостью экспертного анализа остаточных данных на носителях информации; в её рамках важны два свойства применяемого операционного окружения:
- недопущение изменения хранимых, остаточных и системных данных на изучаемых носителях информации;
- защита от исполнения недоверенного кода с этих носителей при загрузке.
Оба вопроса кажутся тривиальными, но благодаря участию Максима Суханова удалось понять нюансы вроде отката журнала файловых систем при монтировании вроде бы readonly и возможность подмены образа второй стадии, а также включить средства противодействия в составе forensic-scripts и проверки контрольной суммы squashfs при загрузке в forensic mode; в результате ALT Linux Rescue весьма неплохо выглядит даже на фоне разрекламированных «специализированных» продуктов. [4]
Hyper-V gen. 2
Следующая история начиналась так:
<lewellyn> i’m a bit bummed because literally every distro has had a different issue. the rescue image was the only thing which was perfect... and it’s not installable. :)
Этот случай к целевому назначению спасательного образа относится весьма косвенно, хотя для вынужденного работать с данным гипервизором в каком-то смысле он оказался спасительным, позволив открыть для себя ALT Linux как таковой и в дальнейшем получить необходимый серверный инсталятор :-)
Кластерный узел
Ещё одному человеку оказалось удобным разобрать наш rescue на запчасти и доработать под себя для организации сетевой загрузки узлов небольшого кластера:
Более подходящего я не нашёл, правда. Много перепробовал, но этот самый маленький, чуть ли не единственный, у которого пра- вильно изначально сделана загрузка с дровами под сетевые и необхо- димые службы для сетевого монтирования. Он не перегружен сер- висами, а так как [. . . ], то библиотек доставлять почти не надо.
Что дальше?
Несмотря на неплохие качества полученного консольного продукта кажется желательной дальнейшая доработка по нескольким направлениям.
Графическая среда
Ряд полезных пакетов применяет графический интерфейс; в первую очередь это инструмент для неразрушающей переразбивки дисков gparted, но во многих аварийных ситуациях могут помочь браузер (особенно с NetworkManager) и файл-менеджер. Существуют и более узкоспециализированные инструменты с GUI, доступные в ALT Linux и находящиеся в русле развития спасательно-восстановительного варианта – например, autopsy.
Собрать LiveCD с X11 несложно; собственно, большинство регулярных сборок являются именно такими. Вопрос в том, как предоставить опытному пользователю наиболее подходящий и удобный инструментарий, при этом не спровоцировав паникующего новичка на необдуманные попадания по кнопкам с необратимыми последствия- ми.
Этот вопрос на данный момент открыт.
Сетевая загрузка
Нет, сам-то Rescue и так пригоден для запуска посредством DHCP+TFTP+NFS – но это требует конфигурирования двух транспортных служб, в то время как известны реализации спасательных комплектов, состоящие из ядра с initrd и потому довольствующиеся лишь DHCP+TFTP (что может быть особенно важно в случае гетерогенных сетей).
Также может оказаться полезной возможность загрузки с флэшки или сидишки на одной из машин в сети и организация на ней сервера сетевой загрузки для остальных нуждающихся в ремонтных работах;
здесь наиболее неприятным из возможных побочных эффектов является конфликт с существующим в сети DHCP-сервером с блокированием или существенным затруднением работы клиентов в том же широковещательном сегменте.
Надо делать проверку и думать над тем, как запускать такой режим.
Bacula «bare metal» restore
В дистрибутивы Альт Линукс входит мощная система резервного копирования Bacula; инструмент для автоматизации восстановления клиентских узлов «на железе» с новыми дисками выглядит потенциально полезным и стоящим исследования.
...и так далее...
Разумеется, есть и «длинный-предлинный хвост» мелочей, которые в различных ситуациях облегчают произведение и без того требовательных к опыту работ. Из подобных мелочей полезными могут оказаться поддержка последовательной консоли (в т.ч. организованной средствами IPMI BMC), возможность загрузки во FreeDOS (можно и сейчас добавить, но вопрос в том, как с эмулируемой дискеты штатно добраться до флэшера с прошивкой, которые и потребовали DOS)...
С формированием этого списка и в особенности с его реализацией «в буквах» может помочь каждый желающий.