Как создать том VDO на устройстве хранения данных в RHEL 8
Представленный RedHat в RHEL 7.5 и более поздних версиях, VDO, сокращение от Virtual Date Optimizer, представляет собой технологию блочной виртуализации, которая обеспечивает встроенная дедупликация и сжатие данных на уровне блочного устройства.
Идея дедупликации довольно проста: удалить копии повторяющихся данных и оставить только одну копию. Когда идентичный файл добавляется на блочное устройство, он помечается как дубликат и вместо этого ссылается на исходный файл. При этом VDO помогает экономить место блочного тома.
В этом руководстве вы узнаете, как создать том VDO на устройстве хранения данных в системе RHEL 8.
Шаг 1. Установите VDO в RHEL 8.
Для начала войдите на свой сервер и обновите RHEL с помощью команды dnf.
sudo dnf update -y
После завершения обновления пакетов и ядра продолжите установку модулей ядра и зависимостей VDO с помощью этой команды.
sudo dnf install kmod-kvdo vdo
- vdo – это набор инструментов управления для Virtual Data Optimizer.
- kmod-kvdo – это группа модулей ядра для Virtual Data Optimizer.
После успешной установки запустите, включите и проверьте демон vdo.
sudo systemctl start vdo
sudo systemctl enable vdo
sudo systemctl status vdo
Шаг 2. Создайте том VDO в RHEL 8.
Прежде чем создавать том vdo, убедитесь, что в вашей системе есть дополнительный жесткий диск. В этом уроке мы подключили дополнительный том xvdb
. Это можно продемонстрировать, выполнив команду lsblk ниже.
lsblk
Из вывода ясно видно, что второй диск имеет емкость 100 ГБ.
Теперь мы создадим пустой том VDO на диске /dev/xvdb
.
sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G
Вы столкнетесь с показанной ошибкой.
Это распространенная ошибка, и ее решение — просто перезагрузить сервер.
sudo reboot
При второй попытке команда будет выполнена, создав пустой том VDO на устройстве /dev/xvdb
.
sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G
Давайте разберем команду и посмотрим на используемую опцию:
- create — инициирует создание тома VDO.
- –name=vdo1 – это присваивает тому метку, известную как vdo1. Не стесняйтесь присвоить любое имя по вашему выбору.
- –device=/dev/xvdb – параметр устройства указывает диск, на котором будет создан том.
- –vdoLogicalSize=300G – указывает эффективную емкость тома, используемую операционной системой, в данном случае 300G.
Шаг 3. Проверка нового тома VDO
Новый том VDO был создан по адресу /dev/mapper/vdo1
на основе вывода, который мы видели на предыдущем шаге. Мы можем использовать команду ls, как показано, для проверки прав доступа и владения файлом.
ls -l /dev/mapper/vdo1
Чтобы получить более подробную информацию, используйте команду vdostats для получения статистики о размере и использовании тома.
vdostats --hu
Флаг --hu
отображает информацию в удобочитаемом формате, то есть в формате, который гораздо легче читать и расшифровывать. Мы можем просматривать такие атрибуты, как имя устройства, размер дополнительного диска, используемое и доступное пространство, как использование %
.
Обратите внимание, что сохранение %
указано как Неприменимо (Н/Д).
Также обратите внимание, что у нас уже есть некоторый объем использования 4,1G, что соответствует 4%, но мы ничего не записывали на этом томе. Почему это? Это связано с тем, что универсальная дедупликация уже записана на диск, и именно она делает дедупликацию возможной.
Команду vdostats можно использовать с флагом --verbose
для получения более подробной информации, как показано:
sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 ‘saving percent’
Вы видите, по сути, те же данные, что и в предыдущем примере, но в другом формате.
Шаг 4. Разбиение тома VDO на разделы
Получив достаточную информацию об этом томе, нам нужно разбить его на разделы, а затем создать файловую систему, чтобы ее можно было использовать как обычный диск.
Давайте создадим физический том и группу томов, как показано, и выполним следующие команды.
sudo pvcreate /dev/mapper/vdo1
sudo vgcreate vdo1vg /dev/mapper/vdo1
Чтобы отобразить статистику группы томов, выполните:
sudo vgdisplay vdo1vg
Теперь мы создадим два логических тома одинакового размера и емкостью 50 ГБ каждый.
sudo lvcreate -n vdo1v01 -L 50G vdo1vg
sudo lvcreate -n vdo1v02 -L 50G vdo1vg
Позже вы сможете просмотреть статистику вновь созданных томов, выполнив команду.
sudo lvs
Шаг 4. Форматирование и монтирование файловых систем
Обычно при создании файловой системы на устройстве выполняется операция обрезки. Это нежелательно в случае VDO. При форматировании с помощью команды mkfs используйте параметр -K
, чтобы указать команде не отбрасывать блоки во время создания файловой системы.
sudo mkfs.xfs -K /dev/vdo1vg/vdo1v01
sudo mkfs.xfs -K /dev/vdo1vg/vdo1v02
Если вы используете файловую систему EXT$, используйте опцию «-E nodiscard».
Создайте точки монтирования для монтирования томов:
sudo mkdir /data/v01
sudo mkdir /data/v02
Теперь смонтируйте файловые системы в их точки монтирования, как показано.
sudo mount -o discard /dev/vdo1vg/vdo1v01 /data/v01
sudo mount -o discard /dev/vdo1vg/vdo1v02 /data/v02
Теперь, когда вы проверите том VDO, вы заметите, что экономия %
изменилась до 99%, что весьма впечатляет. Это означает, что дедупликация работает должным образом.
sudo vdostats --hu
Вы можете продолжить расследование с помощью команды df -Th. В нижней части вы увидите файловые системы, смонтированные в /data/v01
и /data/v02
соответственно.
df -hT
В этом руководстве мы продемонстрировали, как создать том VDO из дополнительного устройства хранения данных в RHEL 8. Позже мы пошли дальше и продемонстрировали, как можно создавать дополнительные тома и создавать на их основе файловые системы.