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: 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.

Вариянтите бяха два:

  1. Инсталиране на нов линукс + всички пакети необходими за работа за сайта, piwik статистиката и wp админ панела.
  2. Възтановяване на системата от бекъп сървъра ми (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!