Corrupted innoDB on linux ext4, data recovery

Published Date: 2021/04/30 by: DaVieS

Corrupted innoDB on linux ext4, data recovery

I could say I saw a everthing but not, here is the case:

There is a VM Host with ZFS Storage, direct attached, and there is a Linux VPS with ext4 filesystem, running mySQL Database.

Without sign of error, suddenly the VPS kernel log started spamming:

[23564.244561] blk_update_request: I/O error, dev vda, sector 960227912
[23564.375360] blk_update_request: I/O error, dev vda, sector 960227912

and things went south... The database server has corrupted and fails to start, crash or hung up immediately.
So recovering the mySQL's InnoDB (.ibd) files was very challenging, there was no luck with dd, ddrescue, so wrote a software that could help.

So the mistery,
 - Physical HDDs are OK
 - ZFS with checksuming: No Error
 - qemu-img check: OK
 - fsck on the Guest: OK
 - mounting .qcow2 file on the VM Host, OK bad drive, sector error.

This is the first time that I saw a sector error on a virtual HDD with excellent underlaying storage.
My guess is the ext4 corrupted and the kernel showing a misleading error message after NULL read.

 

The InnoDB recovery procedure was the following:

  1. Attached a new disk with clean and fresh filesystem
  2. Moved all database files that could be accessed and did not throw I/O Error into the new partition
  3. Any other files which are thrown errors and could not been completely restored, rescued by the software I made
    The software reads the file regardless of I/O errors, if a bad block unavailable it can be replaced by any character, in case of innoDB I prefferred 0x00 and 0x0D (some case 0x00 caused errors).
  4. This method shown only 1-2 pages were lost on each broken file, one page is 16K, so the files were restored about 99.9% integrity.
  5. mySQL is a damn sensitive thing, after the restoration its the mySQL database server started and ran well, until reached a damaged page and crashed with buffer overflow.
  6. Here is the another magic thing, mySQL innoDB allows that you can DUMP the whole thing ANYWAY! To perform this action, innodb_recovery_mode = 6 should be set on configuration file.
  7. Dumped the whole database without a single missing row!
  8. Restored from dump, and running flawlessly.

 

This is how you can restore innoDB or any file from corrupted Disk.


That was an insane s@&k however a good thing in a bad story, we got richier by another software for data recovery.

https://github.com/DaVieS007/Partial-File-Recovery

 



If you like the article then don't forget to share!


bhyve webadmin, web control panel

FreeBSD uses bhyve as hypervisor! So.. no questions we are using FreeBSD for web, mailing, devel, for everything.Now we would like to drop KVM /..


Side Quest, BVCP WebUI for FreeBSD Bhyve

Okay, so we are in middle to upgrade and realign our infrastructure and happened days ago with a random facebook talk, someone hinted FreeBSD..


FreeBSD 13 Just Released

FreeBSD The best operating system for serve WEB and FTP has just announced yesterday, that the newest version is ready for production. One of the..


MVCP 2.0 is our biggest thing ever

We promised to be released back in 2020 but COVID make us busy too.MVCP is our "Webhosting" packed into a single appliance top on the WORLD..


What is R3 as Certificate Issuer?

Don't panic, it is still Let's Encrypt. Let's Encrypt is a free SSL Certificate provider, issuing certificates automatically but only for 3..


Happy New Year, 2021

Thank you, we are happy to see you here again! nPulse.net site and it's services are performed better by more than 50% overall in 2020 compared..


Seems Google have serious problems with gmail.com

It started about a week ago, gmail.com started an agressive rate limiting (DEFER), seems gmail.com have serious problems regarding to all of our..


System Upgrade, PHP 8.0 Failures

So today we had a little downtime partially due to security upgrades, and major version upgrades.nPulse.net is linked to many services, most of..


PayPal going to support crypto currencies

According to the latest news we can confirm that PayPal has entered the cryptocurrency market allowing for their customers to buy and sell..


Evolving. Trusted. Doing Better.

We put a many efforts to make our infrastucture stable, green and fast.And we see that you are appreciate that, because our numbers..

All rights reserved nPulse.net 2009 - 2021
Powered by: MVCP 2.0-RC / ASPF / PHP 7.4 / NGINX / FreeBSD