22 апреля 2021 г.

Сломались qcow2 диски qemu,kvm corrupted или все очень плохо прям

 Доброго дня мне самому. В продолжении описание ситуации и восстановление

Вылетел диск из raid5, вставил диск обратно в рейд. Спустя какое то время перестали загружаться ВМ в libvirt. Думаю, ну капец....


Посмотрел, а часть дисков их всего пула в статусе corrupted. Диски формата qcow2.

Сначала восстанавливал через qemu-img convert, qemu-img check, но происходила утечка памяти, либо я получал сообщение о том, что 

qcow2: Image is corrupt; cannot be opened read/write

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

Делаем так:

ВАЖНО!!! Нельзя проводить все эти действия при запущенной виртуальной машине!!! Данные на ней будут безвозвратно потеряны!!!

Ставим пакет gddrescue;

apt install gddrescue

Включаем модуль;

modprobe nbd max_part=8 

Подключаем диск

qemu-nbd --connect /dev/nbd0 /path/to/disk.qcow2

Если не подключается, то подключаем как снэпшот;

qemu-nbd -s --connect /dev/nbd0 /path/to/disk.qcow2

Теперь делаем копию с восстановлением 

ddrescue /dev/nbd0 /path/to/repair_disk.raw

Обрати внимание, что размер raw диска будет равен полному объему диска ВМ. Т.е. если делали диск для виртуалки на 200Гб, то raw формат будет занимать те же 200Гб

Далее, необходимо сконвертировать диск обратно в qcow2 формат

qemu-img convert -f raw -O qcow2 /path/to/repair_disk.raw  /path/to/repair_disk.qcow2

И вуаля. Подключаем диск. Радуемся, что работает. Либо плачем



 

 


Комментариев нет:

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