qcow2: Image is corrupt; cannot be opened read/write
Привет,
Днес ще споделя за проблем който се случи на уеб сървъра на www.root.bg.
Бекъпа е фейлнал
Тази сутрин мейла за ежеседмичният бекъп на виртуалните машини включваше :
vzdump backup status : backup failed.
Оказа се, че бекъпа на web.root.bg е фейлнал:
104 web.root.bg FAILED 00:59:54 VM 104 not running
и сървъра е спрял.
Сутринта пуснах сървъра и тръгнах да търся причината за проблема от логовете.
Проблема се задълбочи
Реших да направя snapshot на работещата машина, но малко след като го пуснах се сетих, че нямам излишно място на proxmox сървъра за този snapshot, и за това го спрях.
Тук обаче нещо се обърка.
web-root:~# dmesg -bash: dmesg: command not found web-root:~# reboot -bash: reboot: command not found web-root:~# logout -bash: /root/.bash_logout: Input/output error -bash: /etc/bash.bash_logout: Input/output error
В терминала на машината излизаше, че reiserfs-a е крашнал и сървъра не реагираше на нищо.
Реших да го ресетна, но резултата не беше този който очаквах :
~# qm start 104 kvm: -drive file=/var/lib/vz/images/104/vm-104-disk-1.qcow2,if=none,id=drive-virtio0,format=qcow2,cache=none,aio=native,detect-zeroes=on: qcow2: Image is corrupt; cannot be opened read/write
Възтановяване на системата
Опитах да поправя счупеният qcow2 диск като следвах стъпките от този сайт. За съжеление и това не помогна :
anna:/var/lib/vz/images/104# mv vm-104-disk-1.qcow2 bad_104.qcow2 anna:/var/lib/vz/images/104# qemu-nbd --connect=/dev/nbd0 bad_104.qcow2 Failed to blk_new_open 'bad_104.qcow2': qcow2: Image is corrupt; cannot be opened read/write
Бях в ситуация в която нямаше как да възтановя boot диск-а на web.root.bg.
Вариянтите бяха два:
- Инсталиране на нов линукс + всички пакети необходими за работа за сайта, piwik статистиката и wp админ панела.
- Възтановяване на системата от бекъп сървъра ми (FreeNAS)
на стената на сайта във facebook и twitter, както и в status.root.bg.
Разбира се, писах за проблемаРеших да пробвам първо със стъпка 2, като си забазих втория qcow2 файл (където реално ми е /var на web.root.bg), за да нямам загуба на данни на базата и файловете на сайта.
Happy end
След 40 минути възтановяване на двата qcow2 файла, всичко мина успешно.
Върнах предварително запазеният ми vm-104-disk-2.qcow2 файл и пуснах машината – УРА – всичко тръгна по старо му!
Извода – винаги, ама винаги трябва да имаме бекъп!!
Бъдещ ъпгрейд към docker?
Това което смятам да направя следващата седмица, е да разделя web и database частта на сървъра в docker инстанции.
За целта ще направя нов виртуален сървър и ще започна тестовете там. В работата успешно внедрихме docker на няколко production инстанции и сме много доволни за сега от него.
Така че, здравей docker!