Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1

  • Astra Linux Common Edition 2.12

LVM - Менеджер логических томов (англ. logical volume manager) — подсистема, позволяющая использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том.

Термины

  • Физический том (physical volume, pv) — устройство, представляющееся системе как один диск (жёсткий диск или его раздел, RAID-массив);
  • Группа томов (volume group, vg) — несколько физических томов pv (группа, набор);
  • Логический том (logical volume, lv) — логический раздел; аналог разделов hda1, sdb3 и др.; виртуальное блочное устройство.

Установка ОС Astra Linux на логических дисках LVM

Для установки ОС Astra Linux на логические диски под управлением LVM следует:

  1. Начать установку в обычном режиме и продолжить её до этапа выбора разметки дисков:



  2. Выбрать способ размещения с использованием LVM (на снимке экрана выше - выбран способ без защитного преобразования данных, который и описывается далее. Установка с защитным преобразованием описана в статье Установка Astra Linux на дисках с защитным преобразованием данных).

  3. Продолжить установку с выбором необходимых параметров (далее процедура не отличается от стандартной процедуры установки без использования LVM):

    1. Выбрать диск для разметки:
    2. Выбрать способ разметки диска (для примера - автоматическая разметка с размещением всех файлов в одном дисковом разделе):


    3. Проверить параметры разметки, и подтвердить внесение изменений на диск:

      Дисковый раздел для размещения каталога /boot по умолчанию создаётся с размером 254МБ, что может в дальнейшем оказаться недостаточным для установки дополнительных ядер. Для предотвращения возможных проблем с установкой обновлений рекомендуется сразу увеличить размер этого раздела по крайней мере до 512МБ.

  4. После завершения разметки дисков продолжить установку в обычном порядке. Все необходимые пакеты будут установлены автоматически.

Проверка успешности установки LVM

Проверить наличие LVM можно командой просмотра списков групп томов:

sudo vgs

VG       #PV #LV #SN Attr   VSize  VFree
astra-vg 2   4   2   wz--n- 37,75g 12,00g
В примере выше сообщается о наличии группы томов astra-vg с общим размером 37.75GB, в том числе 12ГБ свободного пространства (Имя astra-vg выбирается по умолчанию при стандартной установке ОС).

Так же проверить наличие LVM можно командой просмотра списков логических томов, например:

sudo lvs

LV      VG       Attr       LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvsnap  astra-vg swi-a-s--- 4,00g      root   79,20
lvsnap2 astra-vg swi-a-s--- 4,00g      root   75,78
root    astra-vg owi-aos--- 15,76g
swap_1  astra-vg -wi-ao---- 2,00g
В примере выше сообщается о наличии томов root и swap_1 (создаются автоматически при установке "по умолчанию"), и о наличии двух моментальных снимков логического тома root (см. параметр Origin) с именами lvsnap и lvsnap2, заполненных на 79.20% и 75.78%.

Применение LVM для отката изменений

Моментальные снимки делаются в ту же группу томов, в которой находится сохраняемый том, соответственно в этой группе томов должно быть достаточно свободного места.

Добавление свободного пространства

Если при установке системы при разметки дисковых разделов не было зарезервировано свободное место, можно подключить и добавить в группу новый накопитель или дисковый раздел. Например, добавим накопитель /dev/sdb:

sudo pvcreate /dev/sdb
Проверить список используемых физических томов можно командой:
pvs

PV        VG       Fmt Attr PSize  PFree
/dev/sda5 astra-vg lvm2 a-- 17,76g 0
/dev/sdb  astra-vg lvm2 a-- 20,00g 12,00g
В примере выше представлены два физических тома (том /dev/sda5, являющийся дисковым разделом (создан автоматически при установке системы), и том /dev/sdb, являющийся устройством, и добавленный после установки системы. При этом оба тома входят в группу томов astra-vg).

После создания физического тома его нужно добавить в какую-либо группу томов (фактически - расширить группу томов на новый физический том), например, добавим созданный физический том в созданную при установке группу томов vg-astra:

sudo vgextend astra-vg /dev/sdb

Создание моментального снимка

Моментальный снимок можно создать командой:

sudo lvcreate -L 4GB -s -n lvsnap /dev/astra-vg/root
Где:

  • -L 4GB - размер пространства, отводимого под снимок.

Моментальный снимок не является копией диска, а содержит только изменения после момента создания диска. Поэтому:

  • Снимок создаётся быстро, практически моментально;
  • Размер места, назначаемого для размещения снимка, не зависит от размеров сохраняемого носителя, а зависит только от количества вносимых изменений;
  • Место, отведённое под снимок, расходуется по мере внесения изменений;

При установке обновлений вносится значительное количество изменений. В качестве примера: при написании этой статьи при установке Update 3 на ранее не обновлявшуюся ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с минимальной конфигурацией ПО из отведённых  под снимок 4ГБ было израсходовано 79%.  Очевидно, при этом количество изменений зависит от набора установленного ПО (чем больше ПО - тем больше изменений), и от наличия ранее установленных обновлений (если были установлены предыдущие обновления - то изменений будет меньше).

  • -s - команда выполнения снимка состояния;
  • -n lvsnap - имя создаваемого логического тома со снимком (lvsnap);
  • /dev/astra-vg/root - имя сохраняемого тома (см. выше примеры команд, выводящих списки томов).

Для предупреждения отказов записи из-за переполнения области снимка в настройках LVM предусмотрена возможность автоматического увеличения размеров логических томов по мере их заполнения, для чего в файле /etc/lvm/lvm.conf предусмотрены параметры:

  • snapshot_autoextend_treshold = 100 - величина в процентах, указывающая, при каком заполнении тома производить его автоматическое увеличение. По умолчанию установлена величина 100%, т.е. автоматическое увеличение отключено;
  • snapshot_autoextend_percent = 20 - величина, указывающая, на сколько процентов автоматически увеличивать том.


При переполнении пространства, отводимого под снимок, запись на диск будет запрещена. Логический том может увеличиваться автоматически, но для этого должно иметься свободное место в содержащей этот логический том группе томов. Группа томов автоматически увеличиваться не может.

Откат изменений

  1. Для отката изменений следует перезагрузить компьютер, например, с Live-образа Astra Linux Common Edition (или с отдельного дискового раздела, если такой раздел предусмотрен в системе).

  2. При загрузке со стандартного Live-образа Astra Linux Common Edition понадобится установить пакет lvm2, для чего:
    1. При работе в открытой сети:
      1. Если в сети не настроено автоматическое назначение параметров сетевых подключений, то вручную настроить подключение к сети (в частности, указать в настройках сетевого подключения сервер DNS, например 77.88.8.8) и перезапустить службу сети, чтобы это изменение настройки  вступило в силу;

      2. В файле /etc/apt/sources.list раскомментировать строку с указанием репозитория;

      3. Обновить репозиторий и выполнить установку:

        sudo apt update
        sudo apt install lvm2

    2. При работе в закрытой сети выполнить установку пакета lvm2 в соответствии с принятыми в этой сети правилами работы.

  3. Восстановить состояние системы из снимка /dev/astra-vg/lvsnap:

    sudo lvconvert --merge /dev/astra-vg/lvsnap

  4. Перезагрузить систему с основного диска. В процессе перезагрузки состояние сохранённого накопителя будет восстановлено. При этом система будет загружена с состоянием сохраненного накопителя, восстановленным на момент снятия снимка. Сам снимок будет удален после следующей пререзагрузки.




Внимание! Загрузочный дисковый раздел /boot НЕ ДОЛЖЕН находиться на диске LVM.
При установке ОС Astra Linux с параметрами "по умолчанию" это правило будет выполнено автоматически, при ручных настройках следует выделить для размещения загрузочных данных отдельный дисковый раздел.

Внимание! Если предполагается в дальнейшем сохранять снимки состояния системы, то при разметке дисковых разделов рекомендуется предусмотреть свободное место для размещения этих снимков (не обязательно, так как в дальнейшем можно подключить и использовать дополнительные накопители).

Можно также зарезервировать отдельный загрузочный раздел, чтобы загружаться с него для восстановления системы из сделанных снимков (на него понадобится установить отдельный экземпляр ОС).