Устранение проблемы нехватки места при тонком выделении ресурсов в SUSE Linux Enterprise LVM.

Что следует определить, прежде чем что-либо менять?

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

В документации SUSE Linux Enterprise Server 15 SP7 подтверждается, что тонкие тома выделяют пространство из пула тонких томов по запросу, и что суммарный размер виртуальных машин может превышать доступное физическое хранилище. В документации LVM по пулам тонких томов добавлено важное правило эксплуатации: расширяйте пул до того, как один из Data%параметров Meta%достигнет 100%. См. руководство по администрированию хранилища SUSE Linux Enterprise Server 15 SP7 и руководство по выделению тонких томов LVM .

1. Заполнено ли пространство данных или метаданные?

Используйте lvsявное указание столбцов вместо того, чтобы полагаться на общую проверку дискового пространства. Файловая система может по-прежнему сообщать о свободном виртуальном пространстве, даже если физический пул данных, лежащий в её основе, почти исчерпан.

lvs -a -o lv_name,vg_name,lv_attr,lv_size,data_percent,metadata_percent
В терминале SUSE Linux отображается вывод команды lvs с тонким пулом, использующим данные почти на 100%, и с меньшим использованием метаданных.

Подпись: Тонкий пул следует идентифицировать по значениям Data% и Meta%; одного лишь свободного места в файловой системе недостаточно для физического исчерпания тонкого пула.

Если Data%значение равно или близко к 100, это означает, что в пуле закончились блоки для новых операций записи. В документации LVM предупреждается, что при исчерпании пула данных могут возникать ошибки при записи, что, в свою очередь, может повредить файловые системы. Если Meta%значение достигает 100, ответ становится более консервативным, поскольку исчерпание метаданных может привести к несогласованности как метаданных тонкого пула, так и файловых систем.

2. Сохранились ли у группы томов свободные физические границы?

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

vgs -o vg_name,vg_size,vg_free
vgdisplay VG_NAME
В терминале SUSE Linux отображается вывод команд vgs и vgdisplay в случае, когда у группы томов нет свободных экстентов.

Подпись: Проверка свободного места в VG позволяет отличить простое расширение тонкого пула от случая, требующего предварительного добавления хранилища.

Если в группе томов достаточно свободного места, обычно можно напрямую расширить тонкий пул. Если VFreeзначение равно нулю или слишком мало, не следует повторять попытку lvextend; решите, можно ли удалить ненужные тонкие тома или снимки, освободить блоки с помощью операции отбрасывания или добавить новый физический том.

3. Следует ли останавливать приложения перед восстановлением?

Если пул уже заполнен на 100%, остановите или приостановите работу приложений, интенсивно использующих запись, прежде чем вносить изменения в хранилище. Это снизит вероятность того, что базы данных, виртуальные машины, контейнеры или другие службы продолжат выполнять операции записи, пока уровень хранения выходит из строя или восстанавливается.

systemctl stop YOUR_APPLICATION.service
systemctl status YOUR_APPLICATION.service
В терминале SUSE Linux отображается сообщение о том, что ресурсоемкие службы приложений остановлены перед обслуживанием тонкого пула LVM.

Подпись: Приостановка работы приложений ограничивает дальнейшую запись во время восстановления заполненного или поврежденного пула тонких файлов.

Универсального списка служб, которые следует остановить, не существует. Используйте архитектуру вашей рабочей нагрузки и процедуры обслуживания. Для баз данных и виртуальных машин отдавайте предпочтение поддерживаемому продуктом методу завершения работы или приостановки, а не резкому завершению процессов.

4. Если Data% заполнен, а в VG есть свободное место, как расширить пул?

Расширяйте сам тонкий пул, а не виртуальный тонкий том, поскольку проблема заключается в нехватке физической емкости пула. Например:

lvextend -L +20G VG_NAME/THIN_POOL
lvs -o lv_name,vg_name,lv_size,data_percent,metadata_percent VG_NAME/THIN_POOL
В терминале SUSE Linux отображается увеличение размера тонкого пула LVM командой lvextend, после чего процент данных уменьшается.

Подпись: Расширение пула тонких дисков увеличивает физическую емкость; в результате процент использования данных должен снизиться после того, как новое пространство станет доступно.

В руководстве по lvextend описаны прямое расширение тонкого пула и отдельная --poolmetadatasizeопция для метаданных. Выберите шаг увеличения, исходя из реальной скорости роста и емкости хранилища, которую вы можете зарезервировать. Фиксированный пример, например, +20Gне является рекомендацией по размеру для каждой системы.

5. Что делать, если в группе томов нет свободного места?

Добавляйте хранилище только после подтверждения того, что целевое блочное устройство не используется и не содержит необходимых вам данных. Создание физического тома LVM записывает метаданные LVM на выбранное устройство, поэтому ошибка в имени устройства может привести к необратимым последствиям.

lsblk
blkid

pvcreate /dev/NEW_DEVICE
vgextend VG_NAME /dev/NEW_DEVICE
vgs -o vg_name,vg_size,vg_free
В терминале SUSE Linux отображается новый диск, проверенный с помощью команды lsblk, инициализированный с помощью pvcreate и добавленный в группу томов с помощью vgextend.

Подпись: Когда группа виртуальных устройств (VG) заполнена, сначала можно добавить новое физическое хранилище, предварительно убедившись, что администратор указал правильное неиспользуемое устройство.

В документации SUSE указано, что группы томов можно расширять путем добавления разделов или целых дисков. Перед выполнением этих действий в системах с многоканальным доступом, SAN, RAID, зашифрованных, кластерных или облачных системах следует проверить топологию хранилища, поскольку правильный уровень устройства может отличаться от показанного в простом примере необработанного диска.

6. Что, если Meta% достигнет 100%?

Рассматривайте исчерпание метаданных как случай восстановления в автономном режиме, а не просто как добавление емкости данных. В руководстве по тонким пулам LVM прямо указано, что исчерпание метаданных может привести к несогласованности метаданных тонкого пула и файловых систем. Описанная последовательность восстановления включает деактивацию пула, его восстановление с помощью команды lvconvert --repair, расширение метаданных, а затем проверку файловой системы.

После остановки приложений отмонтируйте файловые системы или деактивируйте тонкие логические тома, использующие пул. Затем выполните процедуру контролируемого технического обслуживания, аналогичную следующей:

lvchange -an VG_NAME/THIN_LV
lvconvert --repair VG_NAME/THIN_POOL
lvextend --poolmetadatasize +1G VG_NAME/THIN_POOL
В терминале SUSE Linux отображается информация о деактивации тонких логических томов, выполнении команды lvconvert repair для пула тонких томов и расширении пространства метаданных.

Подпись: В случае переполнения метаданных требуется не просто увеличение объема данных, а восстановление с помощью тонкого пула в автономном режиме и дополнительное пространство для метаданных.

Рисунок +1Gявляется лишь примером. Размер метаданных зависит от размера пула, размера блока, использования моментальных снимков и поведения при выделении памяти. После восстановления проверьте системные журналы и используйте поддерживаемую файловой системой процедуру проверки или восстановления, если возникли ошибки ввода-вывода. Не запускайте инструмент восстановления файловой системы вслепую на смонтированной файловой системе.

Может ли удаление файлов мгновенно освободить тонкий пул?

Не всегда. Удаление файла освобождает место в файловой системе, но тонкий пул освобождает физические блоки только тогда, когда информация об отброшенных блоках достигает пула. В документации LVM отмечается, что fstrimможно освободить такие блоки, в то время как снимки могут продолжать ссылаться на блоки и препятствовать их освобождению. Если пул настроен на игнорирование отброшенных блоков, функция trim не будет освобождать блоки.

Если файловая система и рабочая нагрузка это позволяют, проверьте поведение отбрасывания и выполняйте обрезку только после того, как пул станет достаточно стабильным для работы:

lvs -o lv_name,discards VG_NAME/THIN_POOL
fstrim -v /mount/point

Удаление старых тонких снимков также может освободить место в хранилище, если эти снимки представляют собой оставшиеся ссылки на блоки. Перед удалением снимков проверьте требования к резервному копированию и хранению данных.

7. Как предотвратить повторение подобного инцидента?

Включите и проверьте мониторинг тонких пулов LVM и настройте автоматическое расширение с достаточным количеством свободной емкости в группе томов (VG). LVM использует dmeventd, обычно через lvm2-monitorсервис, механизм реагирования, когда использование данных или метаданных превышает заданный порог.

systemctl status lvm2-monitor.service
lvs -o+seg_monitor VG_NAME/THIN_POOL
lvchange --monitor y VG_NAME/THIN_POOL

lvmconfig --type full activation/thin_pool_autoextend_threshold
lvmconfig --type full activation/thin_pool_autoextend_percent
В терминале SUSE Linux отображаются активные параметры lvm2-monitor и пороговые значения и проценты автоматического расширения тонкого пула LVM.

Подпись: Автоматическое расширение зависит от активного мониторинга, соответствующего порогового значения и наличия свободных участков, оставшихся в группе объема.

В руководстве LVM указано, что пороговое значение 100 отключает автоматическое расширение, а минимально допустимое пороговое значение составляет 50. Более низкое пороговое значение дает LVM больше времени для реагирования на пулы с очень высокой скоростью записи. Процент расширения определяет, насколько увеличится размер пула при срабатывании политики.

Примером такой конфигурации /etc/lvm/lvm.confможет быть:

activation {
    thin_pool_autoextend_threshold = 70
    thin_pool_autoextend_percent = 20
}

Эти значения являются примерами, а не универсальными значениями по умолчанию. Задайте запас прочности в соответствии с частотой пакетной записи, интервалом мониторинга, временем подготовки хранилища и доступным свободным пространством VG. Автоматическое расширение не поможет, если сам VG уже заполнен.

8. Как вы поняли, что восстановление действительно сработало?

Проверьте несколько сигналов. В пуле должно быть достаточно свободного места, в группе томов (VG) должно быть достаточно свободного пространства для ожидаемого роста, приложения должны иметь возможность нормально записывать данные, а в журналах не должно быть постоянных ошибок ввода-вывода или метаданных тонкого пула.

lvs -a -o lv_name,vg_name,lv_attr,lv_size,data_percent,metadata_percent
vgs -o vg_name,vg_size,vg_free
journalctl -u lvm2-monitor.service --since "30 minutes ago"
В терминале SUSE Linux отображается восстановленный тонкий пул с меньшим процентом данных и метаданных, свободным пространством VG и корректными журналами мониторинга.

Подпись: Восстановление подтверждается, когда использование пула имеет достаточный запас, VG сохраняет полезное свободное пространство, а мониторинг не сообщает о продолжающихся ошибках ввода-вывода.

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

Когда следует остановиться и выбрать другой путь восстановления?

НаблюдениеРекомендуемое направление
Data%около 100, Meta%здоровый, VG, есть свободное местоРасширьте пул тонких файлов и проверьте восстановление рабочей нагрузки.
Data%Приблизительно в 100 году у VG нет свободного места.Добавьте проверенное хранилище, безопасно освободите блоки или уменьшите количество сохраненных тонких томов/снимков перед расширением.
Meta%достиг 100Приостановите выполнение рабочих нагрузок, деактивируйте пул, восстановите метаданные в автономном режиме, расширьте метаданные и проверьте файловые системы.
lvconvert --repairнеудачиНе следует импровизировать с повторной записью метаданных. Сохраняйте резервные копии журналов и метаданных и обращайтесь в службу поддержки SUSE или к опытному инженеру по восстановлению LVM.
Сгруппированные тонкие объемыСледуйте процедурам управления кластерными ресурсами. SUSE требует, чтобы пул тонких файлов и тонкие тома управлялись совместно, оставаясь исключительно за одним узлом.
Вскоре после продления срока бассейн снова наполнился водой.Изучите вопросы хранения моментальных снимков, поведения при удалении данных, роста объема записи, пороговых значений мониторинга и планирования емкости.

Чего следует избегать?

  • Не следует предполагать, df -hчто это доказывает наличие свободного физического хранилища в тонком пуле.
  • Не инициализируйте новое устройство, pvcreateпока не убедитесь, что оно не используется.
  • Не следует рассматривать исчерпание метаданных как ту же проблему, что и исчерпание обычных данных.
  • Не полагайтесь на автоматическое расширение без резервирования свободных областей в группе векторов (VG).
  • Не выполняйте команды восстановления файловой системы для смонтированных файловых систем, если производитель файловой системы явно не поддерживает эту операцию.
  • Не следует отключать мониторинг лишь для того, чтобы подавить предупреждения; предупреждение часто является последней возможностью расширить пул перед тем, как операции записи завершатся неудачей.

Официальные и основные источники информации

Оставить комментарий

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler сопоставляет MP3-клипы с клавишами клавиатуры и может зацикливать аудио. Узнайте, что делает эта старая бесплатная программа, на чем заканчиваются ее старые функции и что нужно проверить перед загрузкой.