RAID
LVM may be used to create a . It is a good choice if the user does not have hardware RAID and was planning on using LVM anyway. From :
- RAID is a way to create a Logical Volume (LV) that uses multiple physical devices to improve performance or tolerate device failures. In LVM, the physical devices are Physical Volumes (PVs) in a single Volume Group (VG).
LVM RAID supports RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 and RAID 10. See Wikipedia:Standard RAID levels for details on each level.
Tip: mdadm may also be used to create a software RAID. It is arguably simpler, more popular, and easier to setup.
Setup RAID
Create physical volumes:
# pvcreate /dev/sda2 /dev/sdb2
Create volume group on the physical volumes:
# vgcreate MyVolGroup /dev/sda2 /dev/sdb2
Create logical volumes using , see and for more options.
# lvcreate --type RaidLevel -n Name -L Size VG
For example:
# lvcreate --type raid1 --mirrors 1 -L 20G -n myraid1vol MyVolGroup /dev/sda2 /dev/sdb2
will create a 20 GiB mirrored logical volume named «myraid1vol» in VolGroup00 on and .
Резервное копирование в пределах одной машины
Настройка путей
В примере ниже описаны пути резервного копирования (корень файлововой системы и /var/calculate) для текущей машины, используя параметр :
/etc/rsnapshot.d/localhost.conf
backup / localhost/rootfs/ backup /var/calculate localhost/calculate
Теперь в директории хранения будет созданы пути localhost/rootfs и localhost/calculate для хранения корня файловой системы и директории /var/calculate соответственно.
Создание резервной копии
Для подготовки данных для резервной копии выполните:
rsnapshot sync
Выполнение этой команды при необходимости может быть прервано или повторено несколько раз. После того, как синхронизация завершилась, выполните ротацию alpha-уровня:
rsnapshot alpha
Последующее выполнение подготовит новую резервную копию. После чего вызов выполнит ротацию и переместит синхронизированные данные на уровень alpha0.
Когда количество alpha-снимков заполнит весь уровень, появится возможность не удалять самый старый снимок, а перевести его на уровень beta. Для этого перед запуском выполните .
+---+---+---+---+---+---+ alpha-уровень | 0 | 1 | 2 | 3 | 4 | 5 | +---+---+---+---+---+---+ alpha.6 | --------------------- | ∇ +---+---+---+---+---+---+---+---+ beta-уровень | 0 | 1 | 2 | 3 | 4 | 5 | 6 | - | +---+---+---+---+---+---+---+---+
Выполнение этих команд в обратном порядке приведёт к тому, что сначала будет удалена последняя копия alpha, затем будет сформирован alpha-уровень из 6 элементов, а после этого последний элемент будет переведён на уровень beta, что уменьшит очередь alpha на 1.
+---+---+---+---+---+---+ +---+ alpha-уровень | 0 | 1 | 2 | 3 | 4 | | | 6 | +---+---+---+---+---+---+ +---+ alpha.5 | --------------------- | ∇ +---+---+---+---+---+---+---+---+ beta-уровень | 0 | 1 | 2 | 3 | 4 | 5 | 6 | - | +---+---+---+---+---+---+---+---+
Настройка выполнения резервных копий по расписанию
Добавьте в cron ежедневную подготовку резервной копии . Синхронизация может быть долгой, поэтому запланируйте достаточное время для её выполнения (12 часов). Добавьте ежедневное создание копий alpha, beta каждую субботу и gamma первого числа каждого месяца.
Важно
Прежде чем создавать копию alpha, следует создать beta, а перед beta должна быть создана gamma.
Так как удаление устаревшей копии может занять продолжительное время, между выполнениями ротаций необходимо добавить паузу (1 час).
/etc/cron.d/rsnapshot
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin HOME=/ # run rsnapshot 0 0 * * * root /usr/bin/rsnapshot sync &>/dev/null 0 10 1 * * root /usr/bin/rsnapshot gamma &>/dev/null 0 11 * * 6 root /usr/bin/rsnapshot beta &>/dev/null 0 12 * * * root /usr/bin/rsnapshot alpha &>/dev/null
Используя снимок
следующие шаги покажут, как использовать снимок в любой момент времени:
-
Монтирование снимка:
Создают объем снимка
, Создают каталог
монтирования, Монтируют снимок как монтирование только для чтения
, Снимок идет!
В этой точке можно начать портить систему, установив бета драйверы, и даже (Нет! Это является просто несоответствующим).
С этого времени Вы можете в любое время (насколько размер снимка обеспечивает..) возвращаются к предыдущему состоянию, или, если удовлетворенный новым взглядом — сохраняют его.
-
Автоматический контроль свободного пространства на диске объема снимка: Используя настроенную версию сценария, предоставленного здесь: http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/ я создал сценарий monitor_snapshot .
, Как использовать/устанавливать его? — В значительной степени как со ссылкой выше:
Прежде, чем выполнить его впервые Вы лучше редактируете значения в нем, такие как Ваш адрес электронной почты (куда уведомления должны быть отправлены и т.д.), Если правильно настроено, демон крона будет выполнять сценарий каждые X часы/дни — как Вы решаете — и уведомляете Вас, как только снимок собирается быть полным.
Для тестирования выполненного сценария:
Это распечатает процент (количество) свободного пространства в снимке.
Важный! , Как только Вы сделаны с Вашими тестами/установками — откатывают или сохраняют изменения — и Umount снимок!
-
изменения Отката: (См. сценарий rollback_snapshot , со следующими инструкциями в нем, ссылкой в конце документа)
Это будет также umount снимок, но отменит любое из Ваших изменений. Также — Вы будете видеть предупреждение, которые предполагают, что возвращаться только произойдет следующая активация, таким образом:
Примечание: при пропуске слияния в изменения должны фиксироваться однажды Вы Umount снимок.
-
изменения Фиксации — umounting снимок: (См. , сценарий commit_snapshot , со следующими инструкциями в нем — связываются в конце документа)
-
Перемонтирование снимка: (См. , повторно монтируются , сценарий, со следующими инструкциями в нем — связываются в конце документа), В значительной степени как прежде:
, Если Вы сохранили monitor_snapshot в Вашем домашнем dir, можно восстановить его назад:
Это — все люди! Следующие инструкции для лодырей только;)
-
Отбрасывание объема снимка (Если больше не требуется)
(Вы могли бы также хотеть изменить размеры корневого раздела или подкачки для занятия пропавших без вести 15G зарезервированный для подкачки)
-
Отбрасывание группы объема — Возможный только путем удаления объемов группы объема, который, вероятно, означает удалять установку ОС. Но конечно, нет никакой реальной потребности удалить группу объема…
Для удаления группы объема:
Важное Примечание! — форматирующий / работающий fdisk и удаляющий все разделы НЕ удалит объемы, ни группу, поскольку они записаны на другой части диска… Так, просто используйте удалить инструкции, данные выше, и удалите объемы и группу при необходимости
Background
LVM building blocks
Virtual partitions allow addition and removal without worry of whether you have enough contiguous space on a particular disk, getting caught up fdisking a disk in use (and wondering whether the kernel is using the old or new partition table), or, having to move other partitions out of the way.
Basic building blocks of LVM:
- Physical volume (PV)
- Unix block device node, usable for storage by LVM. Examples: a hard disk, an MBR or GPT partition, a loopback file, a device mapper device (e.g. dm-crypt). It hosts an LVM header.
- Volume group (VG)
- Group of PVs that serves as a container for LVs. PEs are allocated from a VG for a LV.
- Logical volume (LV)
- «Virtual/logical partition» that resides in a VG and is composed of PEs. LVs are Unix block devices analogous to physical partitions, e.g. they can be directly formatted with a file system.
- Physical extent (PE)
- The smallest contiguous extent (default 4 MiB) in the PV that can be assigned to a LV. Think of PEs as parts of PVs that can be allocated to any LV.
Example:
Physical disks Disk1 (/dev/sda): ┌─────────────────────────────────────┬─────────────────────────────────────┐ │ Partition1 50 GiB (Physical volume) │ Partition2 80 GiB (Physical volume) │ │ /dev/sda1 │ /dev/sda2 │ └─────────────────────────────────────┴─────────────────────────────────────┘ Disk2 (/dev/sdb): ┌──────────────────────────────────────┐ │ Partition1 120 GiB (Physical volume) │ │ /dev/sdb1 │ └──────────────────────────────────────┘
LVM logical volumes Volume Group1 (/dev/MyVolGroup/ = /dev/sda1 + /dev/sda2 + /dev/sdb1): ┌─────────────────────────┬─────────────────────────┬──────────────────────────┐ │ Logical volume1 15 GiB │ Logical volume2 35 GiB │ Logical volume3 200 GiB │ │ /dev/MyVolGroup/rootvol │ /dev/MyVolGroup/homevol │ /dev/MyVolGroup/mediavol │ └─────────────────────────┴─────────────────────────┴──────────────────────────┘
Note: Logical volumes are accessible at both and . However, recommends the former format for «software and scripts» (e.g. fstab) since the latter is intended for «internal use» and subject to possible «change between releases and distributions».
Advantages
LVM gives you more flexibility than just using normal hard drive partitions:
- Use any number of disks as one big disk.
- Have logical volumes stretched over several disks.
- Create small logical volumes and resize them «dynamically» as they get filled up.
- Resize logical volumes regardless of their order on disk. It does not depend on the position of the LV within VG, there is no need to ensure surrounding available space.
- Resize/create/delete logical and physical volumes online. File systems on them still need to be resized, but some (such as ext4) support online resizing.
- Online/live migration of LV being used by services to different disks without having to restart services.
- Snapshots allow you to backup a frozen copy of the file system, while keeping service downtime to a minimum.
- Support for various device-mapper targets, including transparent filesystem encryption and caching of frequently used data. This allows creating a system with (one or more) physical disks (encrypted with LUKS) and to allow for easy resizing and management of separate volumes (e.g. for , , , etc.) without the hassle of entering a key multiple times on boot.
Disadvantages
- Additional steps in setting up the system, more complicated. Requires (multiple) daemons to constantly run.
- If dual-booting, note that Windows does not support LVM; you will be unable to access any LVM partitions from Windows.
- If your physical volumes are not on a RAID-1, RAID-5 or RAID-6 losing one disk can lose one or more logical volumes if you span (or extend) your logical volumes across multiple non-redundant disks.
LVM Resize
Изменение размера легко, как и все с LVM, это просто работает. Начнем с подключения нашего нового жесткого диска. Опять же, практически любое хранилище можно использовать и комбинировать. SATA, IDE, USB и т.д. Вы даже можете объединить несколько аппаратных RAID. Подключите диск и найдите его назначение. Вы можете получить список дисков с помощью команды.
Нам нужно отформатировать диск для LVM, используя:
БУДЬТЕ ОСТОРОЖНО ОСТОРОЖНЫ, ЭТО УДАлит ВСЕ ДАННЫЕ С ВАШЕГО ПРИВОДА И МОЖЕТ ПРЕРЫВАТЬ ВАШЕ существующее LVM. Если вы не уверены, используйте команду LVM, чтобы вывести список дисков, уже имеющихся в вашем LVM
Если вы не уверены, используйте команду LVM, чтобы вывести список дисков, уже имеющихся в вашем LVM.
- Чтобы создать новый раздел Нажмите n.
- Выберите основной раздел, используйте p.
- Выберите номер раздела, который будет выбран для создания основного раздела. (обычно № 1)
- Нажмите 1, если доступен какой-либо другой диск.
- Измените тип, используя t.
- Введите 8e, чтобы изменить тип раздела на Linux LVM.
- Используйте p, чтобы напечатать создать раздел
- Нажмите w, чтобы записать изменения.
Теперь мы добавим диск в нашу систему LVM
Запустите команду . Это добавит наш LVM готовый жесткий диск для использования. Используйте, чтобы убедиться, что он был добавлен в LVM.
Далее мы будем выращивать LVM VG. Нам нужно имя VG, которое мы можем найти с помощью команды . Как только мы получим это, мы будем использовать его в этой команде:
Если мы запустим снова, LVM VG теперь должен быть больше.
Далее нам нужно вырастить LVM LV. Получить имя вашего LV с . Используйте имя в этой команде:
Если мы запустим снова, LVM LV должен быть больше.
Наконец, нам нужно расширить файловую систему LVM. Мы предполагаем, что вы используете EXT3 или EXT4 в качестве файловой системы и воспользуетесь командой:
Это может занять некоторое время в зависимости от того, насколько растет LVM. Вот и все. Ниже приведено резюме команд LVM,
Теперь у вас должно быть достаточно хранилища LVM, чтобы занять вас.
Создание и удаление
Большинство команд требуют прав суперпользователя.
Как уже отмечалось, LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/разделов должен быть создан физический том (physical volume). К примеру, мы используем для LVM диск sda и раздел sdb2:
pvcreate /dev/sda pvcreate /dev/sdb2
На этих физических томах создаём группу томов, которая будет называться, скажем, vg1:
vgcreate -s 32M vg1 /dev/sda /dev/sdb2
Посмотрим информацию о нашей группе томов:
vgdisplay vg1
Групп можно создать несколько, каждая со своим набором томов. Но обычно это не требуется.
Теперь в группе томов можно создать логические тома lv1 и lv2 размером 20 Гбайт и 30 Гбайт соответствено:
lvcreate -n lv1 -L 20G vg1 lvcreate -n lv2 -L 30G vg1
Теперь у нас есть блочные устройства /dev/vg1/lv1 и /dev/vg1/lv2.
Осталось создать на них файловую систему. Тут различий с обычными разделами нет:
mkfs.ext4 /dev/vg1/lv1 mkfs.reiserfs /dev/vg1/lv2
Удаление LVM (или отдельных его частей, например, логических томов или групп томов) происходит в обратном порядке — сначала нужно отмонтировать разделы, затем удалить логические тома (), после этого можно удалить группы томов () и ненужные физические тома ().
Неправильно подобранные драйверы
Типичные проблемы такого рода связаны с драйверами видео. На данный момент это не слишком распространённые проблемы. Но столкнуться с ними может каждый. Для исправления некоторых ситуаций (допустим, артефактов на экране) поможет принудительная смена режима видео.
Мы добавим параметр ядра, который поменяет настройки графики. В файле «/etc/default/grub» есть переменная «GRUB_CMDLINE_LINUX_DEFAULT».
В неё нужно добавить значение «vga=0x314». В итоге переменная должна иметь вид:
После операции останется только обновить конфигурацию с помощью команды:
В другом случае — если неверно определяется разрешение экрана — можно создать файл «~/.xprofile», который должен иметь такое содержимое:
Причём вместо «output» желательно сразу указать, куда (в какой порт) подключен монитор. Это поможет определить команда «xrandr» Также опция «mode» служит для указания разрешения — вместо стандартного разрешения необходимо указать своё. Желательно — поддерживаемое монитором по умолчанию. При проблемах с изображением на Ubuntu, восстановление системы в полном объёме может не потребоваться, если следовать этим рекомендациям.
Настройка полного бэкапа сервера
Сделать бэкап с помощью Veeam Agent for Linux очень просто. Вариантов настроек не так много, можете сами все проверить и посмотреть. Я для примера рассмотрю вариант с созданием полного бэкапа всей системы и перенос ее на другое железо. Создаем задачу для резервного копирования сервера на наше хранилище по smb.
# veeam
Нам сразу же предлагают указать файл с лицензией. Так как у нас лицензии нет, то отказываемся. Нас встречает главное окно программы.
Нажимаем C (configure) для настройки задания на backup. Задаем любое имя задания, затем указываем, что будем делать полный бэкап сервера.
В качестве приемника для архива системы, указываем Shared Folder.
Далее нужно ввести параметры доступа к хранилищу бэкапов. Я использую свои от системы KeyDisk.
В пункте Restore Points указывается глубина архива. Это число копий, которые будут храниться на сервере. Если делать бэкап каждый день и указать число 14, то будут храниться резервные копии системы за последние 14 дней. Если делать будете через день, то за 28 дней и т.д.
Можно создавать несколько заданий с различной глубиной архива. Например, каждый день с глубиной 7 копий, раз в неделю с глубиной 4, и раз в месяц с глубиной в 12. Таким образом у вас всегда будут последние 7 бэкапов системы на этой неделе. Потом по одному бэкапу в неделю за последний месяц и 12 бэкапов по месяцам в течении последнего года.
Если получите ошибку:
Current system does not support cifs. Please install cifs client package.
Установите пакет cifs. В CentOS вот так:
# yum install cifs-utils
И так в Debian/Ubuntu:
# apt install cifs-utils
Запускайте заново veeam и продолжайте. После настройки Destination, предлагается указать скрипты для выполнения перед и после бэкапа. Нам сейчас это не надо. Далее настраиваем расписание и запускаем задание на архивацию в конце настройки.
Запустилась архивация. Можно следить за ее прогрессом.
После завершения архивации системы, можно проверить содержимое сетевого хранилища, зайдя на него прямо из винды.
На этом настройку полного бэкапа сервера мы завершили. Резервная копия системы лежит в надежном месте. Попробуем теперь с нее восстановиться.
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:
lvremove /dev/test/test1
1 | lvremovedevtesttest1 |
Чтобы удалить группу логических томов, используйте:
# vgremove test
1 | # vgremove test |
Volume group «test» successfully removed
1 | Volume group»test»successfully removed |
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
1 | # pvremove /dev/vdb /dev/vdc |
Labels on physical volume «/dev/vdb» successfully wiped.
Labels on physical volume «/dev/vdc» successfully wiped.
1 |
Labels on physical volume»/dev/vdb»successfully wiped. Labels on physical volume»/dev/vdc»successfully wiped. |
Создание LVM разделов
Итак, у нас имеется виртуальная машина KVM, к которой подключены два дополнительных диска. Проверим, что они доступны в системе, используя команду:
fdisk -l
1 | fdisk-l |
Как вы видите, у меня доступны два диска
При настройке LVM на своем виртуальном или физическом сервере, используйте свою маркировку дисков.
Чтобы диски были доступны для LVM, их нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/vdb /dev/vdc
1 | pvcreatedevvdbdevvdc |
Теперь, чтобы убедиться, что данные диски можно использовать для LVM, введите команду pvdisplay:
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
- PV Name – имя диска или раздела
- VG Name – группа томов, в которую данный диск входит (мы пока группу не создали)
- PV Size – размер диска или размера
- Allocatable – распределение по группам. В нашем случае распределения не было, поэтому указано NO
- PE Size – размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0
- Total PE – количество физических фрагментов
- Free PE — количество свободных физических фрагментов
- Allocated PE – распределенные фрагменты
- PV UUID – идентификатор раздела
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Следующий этап – создание группы томов. Для создания групп томов используется команда vgcreate. Чтобы объединить ранее помеченные диски, воспользуемся командой:
# vgcreate test /dev/vdb /dev/vdc
1 | # vgcreate test /dev/vdb /dev/vdc |
Volume group «test» successfully created
1 | Volume group»test»successfully created |
Чтобы проверить результат введите vgdisplay:
Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay:
- VG Name – группа томов, в которую данный диск входит.
- Format – версия подсистемы lvm, которая используется для создание группы (в нашем случае версия 2)
- Metadata Areas – область метаданных
- VG Access – уровень доступа к группе логических томов
- VG Size – общий объем дисков, которые входят в группу
- PE Size — размер физического фрагмента
- Alloc PE / Size – распределенное пространство(количество и объем фрагментов)
- VG UUID – идентификатор группы
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
# lvcreate -L 5G test
1 | # lvcreate -L 5G test |
Logical volume «lvol0» created.
1 | Logical volume»lvol0″created. |
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
# lvcreate -l 5G -n test1 test
1 | # lvcreate -l 5G -n test1 test |
Logical volume «test1» created
1 | Logical volume»test1″created |
Несколько примеров для создания логических томов с разными размерами:
lvcreate -l 40%VG test
1 | lvcreate-l40%VG test |
– 40% от дискового пространства группы test
lvcreate -l 100%FREE test
1 | lvcreate-l100%FREE test |
– использовать все свободное пространство группы test
Чтобы вывести информацию о логическом томе, используйте lvdisplay:
Так же разберем листинг данной команды:
- LV Path – путь к устройству логического тома (к диску или разделу)
- LV Name – имя логического тома
- VG Name – имя группы томов
- LV UUID – идентификатор логического тома
- LV Write Access – уровень доступа к логическому тому
- LV Creation host, time — информация о хосте, дата когда был создан логический том
- LV Size – размер диска, доступный для использования логическому тому
- Current LE – количество логических фрагментов
Как восстановить фото с помощью утилиты Foremost
Foremost — это консольная утилита, которая очень хорошо справляется с восстановлением файлов с битых карт памяти, флешек и дисков. Программа ищет файлы по таким параметрам как совпадение определённых hex-кодов (сигнатур), которые соответствуют определенным форматам файлов. После чего копирует их из диска/образа и перемещает в каталог, составляя детальный отчёт о том, сколько чего и куда и откуда было восстановлено. Типы файлов, которые foremost может восстановить: jpg, gif, png, bmp, avi, exe, mpg, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, htm, cpp. Так же есть возможность пополнить этот список своими форматами, но для этого нужно редактировать конфиг (/etc/foremost.conf), и добавлять форматы о которых программа пока ничего не знает.
Чтобы воспользоваться утилитой Foremost, прежде всего ее нужно установить, откройте терминал Ctrl + Alt + T и выполним следующие команды:
sudo apt-get install foremost
далее чтобы попытаться восстановить утерянные фото данные, выполним в терминале команду следующего вида:
sudo foremost -t jpg,gif,png,bmp -i /dev/sdb -o ~/dir_recovery"
через запятую мы перечислили форматы фото файлов которые нужно искать «jpg,gif,png,bmp», далее указываем где искать «/dev/sdb» как видите это флешка, обычно она имеет следующий вид «/dev/sdb1» и далее указываем куда восстановить найденные файлы «~/dir_recovery» это как бы пример директории которая находится в домашнем каталоге пользователя, вы конечно же указывайте свою существующую папку.
Ещё немного о сохранении данных
- Для важных данных можно сделать зеркальный раздел на двух дисках. Для этого совсем не обязательно иметь RAID-контроллер и диски одинакового размера — можно, например, собрать зеркало из 80-гигабайтного старого винта и 80-гигабайтного же раздела на новом. Зеркалирование можно реализовать с помощью LVM или программного RAID. Однако, такой способ бесполезен в случае, например, попадания на шину +5В напряжения ~220В или падения метеорита на системный блок компьютера.
- Гики-айтишники, имеющие дома свой сервер, могут расширить идею зеркалирования и использовать DRBD. Тот же RAID-1, но жёсткие диски находятся в разных компьютерах, что повышает надёжность.
-
Ни зеркалирование, ни репликация на Ubuntu One не спасут от случайного нажатия Delete, поэтому в любом случае делайте «классические» бэкапы. И в один
прекрасныйужасный день все ваши труды и старания будут вознаграждены.
Renaming a volume group
Renaming a volume group can be tricky of the it contains the root or swap partition. In that case it should be insured that the old names are still accessible via /dev/mapper until a full reboot cycle is complete.
sudo vgrename somename-vg vgsomename cd /dev/mapper ls somename-vg* ## somename--vg-lv1 ## somename--vg-lv2 ... sudo ln -s vgsomename-lv1 somename--vg-lv1 sudo ln -s vgsomename-lv2 somename--vg-lv2 ... # if logical volumes of the group are contained in /etc/fstab: sudo sed -i 's#/dev/mapper/somename--vg-#/dev/vgsomename/#g' /etc/fstab # if logical volumes of the group are contained in /boot/grub/grub.cfg: sudo sed -i 's#/dev/mapper/somename--vg-#/dev/vgsomename/#g' /boot/grub/grub.cfg # this is only good for the initramfs run and the initial next reboot sudo update-initramfs -c -k all sudo reboot sudo update-grub #creating final /boot/grub/grub.cfg
Заключение
В статье были рассмотрены теоретические аспекты назначения и применения снапшотов, а также проведены практические проверки на примере LVM2 в Centos 7. Резюмируя, стоит выделить основные моменты, о которых стоит помнить (повторюсь для закрепления):
- Снапшот – не бэкап! Удобно создавать снапшоты, проводить какие-либо действия с файлами из снапшота, а после выполнять его удаление.
- Размер моментального снимка LVM не зависит от размера исходного логического тома, так как моментальный снимок LVM занимает намного меньший размер, в то время как полноценная резервная копия занимает почти эквивалентный размер по сравнению с исходным логическим томом (в зависимости от типа сжатия).
- Снапшоты не распределяют дисковое пространство сами по себе, как связанные с ними исходные LV, потому что для снимка требуется пространство только тогда, когда исходный LV был изменен, поэтому нужно следить за свободным местом в VG.
И ремарка по целесобразности использования снапшотов в прицнипе: конечно, в чистом виде создание снапшотов так или иначе тормозит работу приложения, но по идее всего лишь на несколько секунд плюс-минус. Но в любом случае при наличии критичной highload-системы и высокого SLA, создание снапшота на работающем сервере никто выполнять не будет – как минимум, такие серверы выводят из эксплуатации (методом исключения из балансировки, например), и далее уже выполняют создание снапшота, если это необходимо, или используют иные средства. А на всех же прочих не столь критичных системах вполне допустимо появление кратковременной задержки в пару секунд при создании снапшота опять же, если такой необходимо создать – например, перед обновлением какого-либо софта.
Лично мне не доводилось использовать снапшоты LVM, т.к. обычно я пользуюсь снапшотами, которые предоставляет делать гипервизор для виртуальных машин. Принцип работы такой же, что описан в начале статьи. Но также есть серверы, доступа к которым из консоли гипервизора у меня нет, и вот тут в теории уже можно будет попробовать использовать возможности снапшотов в LVM.