Восстановление дисков и снимков KVM/QEMU с LUKS2 RAID 6

В этой статье рассматривается восстановление виртуальных дисков и снимков KVM/QEMU из системы хранения, построенной на LUKS2 и RAID 6. Основное внимание уделяется определению правильной последовательности восстановления, безопасной работе с образами физических дисков, реконструкции массива RAID, разблокировке зашифрованного контейнера, поиску образов QCOW2/RAW, анализу цепочки backing и восстановлению доступа к данным виртуальной машины без изменения исходного носителя.

Восстановление дисков и снимков KVM/QEMU с LUKS2 RAID 6

В современных серверных средах виртуализация на базе KVM/QEMU часто используется совместно с программными массивами RAID и шифрованием дисков. Такая архитектура сочетает производительность, отказоустойчивость и защиту данных, но при этом существенно усложняет восстановление, если повреждены накопители, метаданные RAID, контейнер LUKS2, файловая система или цепочка снимков виртуальной машины.

Особенно сложными являются случаи, когда виртуальные диски KVM/QEMU в форматах QCOW2, RAW или других совместимых форматах хранятся внутри зашифрованного тома LUKS2, построенного поверх RAID 6. В такой конфигурации доступ к данным зависит сразу от нескольких уровней: физических дисков, структуры массива RAID, целостности метаданных LUKS2, файловой системы и внутренней структуры виртуальных дисков.

Дополнительную сложность создают снимки QEMU/KVM. Они могут формировать цепочку зависимых файлов QCOW2, где каждый последующий образ содержит только изменившиеся блоки и ссылается на базовый диск или предыдущий снимок. Потеря одного элемента в такой цепочке, повреждение backing file или неверное определение последовательности могут сделать запуск виртуальной машины невозможным, даже если большая часть данных по-прежнему физически присутствует на дисках.

Перейти к просмотру
Как восстановить удалённую базу MySQL с RAID 6 + LUKS2 (Ubuntu)

Как восстановить удалённую базу MySQL с RAID 6 + LUKS2 (Ubuntu)

ШАГ 1. Создание виртуальной машины KVM/QEMU

Для тестирования мы установили Ubuntu Server 24.04 и использовали Cockpit для создания программного массива Linux MD RAID 6 из четырёх дисков.

На массиве RAID были созданы три раздела. Каждый из них был зашифрован с помощью LUKS2, а внутри зашифрованных контейнеров были созданы файловые системы Ext4. Третий раздел использовался для хранения виртуальной машины.

Программный Linux MD RAID 6, созданный из четырёх дисков

На сервере был запущен гипервизор KVM/QEMU. Через Cockpit мы создали отдельный пул хранения для виртуальной машины на третьем разделе — raid6-vm-images. Файлы виртуальной машины хранились в каталоге vm-images.

Для виртуальной машины был создан системный диск QCOW2 ёмкостью 32 гигабайта, а также два дополнительных диска: диск QCOW2 объёмом 2 гигабайта и диск IMG объёмом 1 гигабайт.

Системный диск QCOW2 ёмкостью 32 гигабайта
Два дополнительных диска: диск QCOW2 объёмом 2 гигабайта и диск IMG объёмом 1 гигабайт

На системный диск была установлена Windows 10. Два дополнительных диска внутри Windows были отформатированы соответственно как NTFS и FAT32.

Два дополнительных диска внутри Windows были отформатированы как файловые системы NTFS и FAT32

ШАГ 2. Создание снимка и удаление раздела LUKS2

Мы скопировали исходный набор файлов на системный диск и два дополнительных диска, затем создали внешний снимок. После этого мы добавили ещё одну папку с файлами и удалили часть из них.

Создание снимка и удаление раздела LUKS2

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

Чтобы смоделировать потерю данных, мы использовали Cockpit для удаления этого раздела из таблицы разделов. В результате его область стала нераспределённой. Мы не форматировали её и не записывали на неё новые данные, чтобы сохранить возможность последующего восстановления.

Через Cockpit раздел был удалён из таблицы разделов
Раздел был удалён из таблицы разделов через Cockpit

ШАГ 3. Подключение дисков и начало восстановления

После удаления раздела мы выключили сервер и извлекли диски массива RAID. К компьютеру под управлением Windows 11 через USB-док-станцию были подключены только два из четырёх дисков.

Если после подключения Windows предложит инициализировать или отформатировать диски, обязательно нажмите Отмена. Не записывайте на них новые данные и не выполняйте проверку ошибок или операции восстановления, так как это может ухудшить результат восстановления.

С дисками можно работать и другими способами. Например, подключить их удалённо к программе через SSH или смонтировать ранее созданные образы, если вы не хотите работать непосредственно с исходными дисками.

Windows предлагает инициализировать или отформатировать диски

ШАГ 4. Автоматическое определение разделов MD RAID 6 и LUKS2

Сразу после запуска Hetman RAID Recovery прочитала служебную информацию с двух подключённых дисков.

Для восстановления данных с повреждённых RAID-массивов, NAS-устройств и других многодисковых систем хранения.
Hetman RAID Recovery: автоматическое определение разделов MD RAID 6 и LUKS2

RAID 6 допускает отсутствие до двух дисков. Поскольку оба доступных диска были исправны, а служебная информация не была повреждена, программа автоматически реконструировала MD RAID 6. Два отсутствующих диска были отображены как Пустой диск, а массив получил статус Recoverable.

Hetman RAID Recovery: программа автоматически реконструировала MD RAID 6

В свойствах указаны схема Left Synchronous P+Q, размер блока 512 КБ, а также позиции дисков, смещения и размеры.

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

ШАГ 5. Анализ раздела LUKS2 и восстановление файлов виртуальной машины

Дважды щёлкните нераспределённую область, помеченную LUKS. Программа предложит ввести пароль или выбрать файл ключа.

Hetman RAID Recovery: анализ раздела LUKS2 и восстановление файлов виртуальной машины

После разблокировки станет доступна файловая система Ext4. Далее выберите режим анализа.

Рекомендуем начать с Быстрого сканирования. Если быстрое сканирование не найдёт требуемые данные, запустите Полный анализ и укажите файловую систему Ext2/3/4.

Hetman RAID Recovery: быстрое сканирование

В нашем случае быстрого сканирования оказалось достаточно. Программа восстановила структуру удалённого раздела и нашла папку vm-images, в которой находились системный диск и дополнительные виртуальные диски, а также их файлы снимков.

Hetman RAID Recovery: программа нашла папку vm-images

Важно учитывать, что конфигурация виртуальной машины хранится отдельно от её дисков — обычно в каталоге /etc/libvirt/qemu. Если XML-файл конфигурации утрачен, данные с виртуальных дисков всё равно можно восстановить, но для повторного запуска ВМ потребуется заново создать конфигурацию машины.

Hetman RAID Recovery: содержимое папки vm-images

Выберите папку, содержащую виртуальные диски и файлы снимков, и нажмите Восстановить.

Hetman RAID Recovery: восстановление папки vm-images

Рекомендуем восстанавливать всю папку целиком, чтобы базовые образы и связанные с ними снимки оставались вместе.

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

ШАГ 6. Монтирование виртуальных дисков и снимков

Если вам нужен доступ к данным внутри виртуальных дисков или снимков, а также поиск и восстановление удалённых файлов, это можно сделать непосредственно в нашей программе.

Для восстановления данных с повреждённых RAID-массивов, NAS-устройств и других многодисковых систем хранения.

Нажмите Подключить диск.

Hetman RAID Recovery: монтирование образа диска

В окне Тип образа диска, в разделе Образы дисков виртуальной машины, выберите QEMU, поскольку в нашем тесте виртуальная машина и её диски были созданы на основе KVM/QEMU. Если образы были созданы в другой среде виртуализации, выберите соответствующий тип диска из списка. Затем нажмите Далее.

Hetman RAID Recovery: в разделе Образы дисков виртуальной машины выберите QEMU

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

Hetman RAID Recovery: укажите папку, в которой были восстановлены все файлы виртуальной машины

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

Hetman RAID Recovery: связи между файлами и группы базовых дисков с соответствующими снимками

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

Hetman RAID Recovery: Подключённые диски как отдельные накопители

ШАГ 7. Сравнение состояний дисков и восстановление файлов из снимка

Чтобы сравнить образ базового диска и его снимок, необходимо проанализировать оба подключённых диска. Дважды щёлкните по каждому из них и сначала запустите Быстрое сканирование.

Если быстрое сканирование не найдёт требуемые данные, выполните Полный анализ. При полном анализе необходимо указать файловую систему, используемую внутри виртуального диска.

Базовый образ сохраняет предыдущее состояние файловой системы.

Hetman RAID Recovery: восстановлено предыдущее состояние файловой системы

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

Hetman RAID Recovery: восстановлено предыдущее состояние файловой системы снимка

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

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

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

Hetman RAID Recovery: восстановление файлов снимка

ШАГ 8. Поиск данных по файловым системам виртуальных дисков

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

Для этого выберите разблокированный раздел RAID, запустите мастер восстановления и выберите Полный анализ.

Hetman RAID Recovery: поиск данных по файловым системам виртуальных дисков

При настройке анализа вместо файловой системы Ext4, которая фактически использовалась на этом разделе для хранения файлов виртуальных дисков, укажите файловые системы, расположенные непосредственно внутри самих виртуальных дисков. В нашем случае это FAT32 и NTFS, поэтому для поиска мы выбираем FAT и NTFS.

Hetman RAID Recovery: полный анализ по файловой системе диска

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

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

После завершения анализа просмотрите найденные разделы и файлы.

Hetman RAID Recovery: найденные разделы и файлы

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

Итоги

В результате Hetman RAID Recovery автоматически собрала Linux MD RAID 6 из двух доступных дисков, нашла удалённый раздел LUKS2, разблокировала его и восстановила папку с образами дисков и снимками виртуальной машины.

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

Dmytriy Zhura

Автор: , Технический писатель

Дмитрий Жура – автор и один из IT-инженеров компании Hetman Software. Имеет почти 10 летний опыт работы в IT-сфере: администрирование и настройка серверов, установка операционных систем и различного программного обеспечения, настройка сети, информационная безопасность, внедрения и консультация по использованию специализированного ПО. Является экспертом в области восстановления данных, файловых систем, устройств хранения данных и RAID массивов.

Andrey Mareev

Редактор: , Технический писатель

В далеком 2005 году, я получил диплом по специальности «Прикладная математика» в Восточноукраинском национальном университете. А уже в 2006 году, я создал свой первый проект по восстановлению данных. С 2012 года, начал работать в компании «Hetman Software», отвечая за раскрутку сайта, продвижение программного обеспечения компании, и как специалист по работе с клиентами.

Рекомендуем для вас