Рубрика:
Администрирование /
Автоматизация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ДЕНИС СИЛАКОВ, кандидат ф.-м. н., начальник отдела технологических разработок и сопровождения ООО «НТЦ ИТ РОСА», denis.silakov@rosalab.ru
Используем AUFS для отката изменений Автоматический возврат системы после перезагрузки
Редко какая система не подвергается изменениям на протяжении жизни. Изменения могут быть полезными – установка обновлений, а могут иметь и негативный эффект – установка некорректно работающего ПО или удаление критически важных системных файлов. И вот их-то необходимо откатывать как можно быстрее
Одним из традиционных способов борьбы с нежелательными изменениями в системе являются создание резервных копий и откат к одной из этих копий в случае необходимости.
Как читатели СА могли узнать из статьи [1], создание резервных копий в масштабах предприятия – задача непростая, затратная и требующая немалых ресурсов. Сам процесс отката к предыдущему состоянию занимает определенное время, в течение которого машина будет находиться в нерабочем состоянии, да и выбор конкретной точки, к которой надо откатиться, не всегда очевиден.
Использование систем резервного копирования себя оправдывает, если «плохие» ситуации и необходимость отката происходят относительно редко. Однако в жизни бывают и другие сценарии, когда с большой вероятностью все действия пользователя в рамках текущей сессии необходимо будет откатить.
Например, от обычных пользователей корпоративных машин редко ожидают самостоятельного обновления системных компонентов или правки конфигурационных файлов. Однако, несмотря на различные упреждающие меры (запрет доступа, ограничение прав и так далее), время от времени такие нежелательные изменения могут происходить даже и без ведома пользователя – например, из-за наличия брешей безопасности в ПО либо ошибок в конфигурации.
Конечно, можно регулярно выявлять нежелательные изменения и производить откат к резервной копии. Но если заранее известно, что любые произведенные в ходе сеанса изменения за пределами домашней папки пользователя нелегитимны, то гораздо проще после каждой перезагрузки автоматически отбрасывать все такие изменения, возвращая ОС в исходное состояние.
Такие подходы активно используются в индустрии, и в этой статье мы предложим способ организации подобной схемы отката ОС, доступный всем администраторам Linux.
Но сначала – небольшой обзор имеющихся готовых инструментов и методов.
Существующие решения
В век облачных технологий решением нашей задачи, которое напрашивается, является использование снимков виртуальных машин. Если рабочие места сотрудников находятся в облаке и представляют собой виртуальные машины, то не составляет труда организовать автоматический откат такой машины к заранее сделанному снимку при включении либо сразу после выключения. Домашние директории пользователей и другие хранилища, на которые им разрешена запись, можно монтировать с удаленных ресурсов по сети.
Однако далеко не все компании используют в качестве рабочих мест виртуальные машины или тонкие клиенты, а для парка реальных компьютеров подобный подход неприменим. Впрочем, доводилось видеть реализации похожей схемы и для физических машин, когда при старте машины на нее по сети закачивался полноценный образ ОС. Но такое смотрится очень громоздко и неповоротливо, и назвать его удобным язык не поворачивается.
Альтернативным подходом к автоматическому сбросу всех изменений, вносимых пользователем в ОС в течение сеанса работы, является перехват этих изменений на уровне ядра ОС и их перенаправление в специально выделенное для этого хранилище. Если после внесения изменений какой-либо процесс в системе обращается к модифицированному файлу, то ему «подсовывается» файл из временного хранилища; оригинальный файл при этом остается на своем месте без каких-либо изменений, однако получить к нему доступ нельзя (по крайней мере без дополнительных телодвижений). При перезагрузке ОС все содержимое временного хранилища сбрасывается, и система тем самым автоматически возвращается в исходное состояние.
Как показывает практика, процесс перехвата операций с файлами в ходе работы ОС не требует много ресурсов, и если вам не требуется ОС реального времени, то замедления работы вы не заметите. Поэтому подобные решения являются более легковесными и не требуют больших накладных расходов, как в случае виртуализации.
Более того, они вполне подходят для домашнего пользования в рамках одной машины, без использования дополнительных дисков, хранилищ данных и тому подобного. По такой схеме работает, например, Deep Freeze, использующий специализированный драйвер ядра для перехвата обращений к файловой системе и перенаправления их в случае необходимости. Deep Freeze является коммерческим продуктом, доступным в вариантах для Windows, Mac OS X и Linux. Имеются и другие платные альтернативы – например, Shadow Defender для Windows.
Однако закрытые ОС мы в этой статье рассматривать не будем, а вот для Linux предложим альтернативный вариант реализации механизма «заморозки» с использованием исключительно свободных компонентов. Все необходимые компоненты во многих дистрибутивах имеются в поставке по умолчанию, так что к экспериментам можно приступать без длительных подготовительных действий.
Статью целиком читайте в журнале «Системный администратор», №10 за 2014 г. на страницах 04-07.
PDF-версию данного номера можно приобрести в нашем магазине.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|