Anton Gostev: VP, Product Management, Veeam Platinum sponsors: What is data corruption? Silent data corruption Why does data corruption happen? Where does it happen most commonly? In theory In practice Common corruption patterns Tips and tricks recovering from corrupted Veeam® backup files Is an unintended data change Write Read Unintended data changes are facts of life! Data management systems are designed with corruption in mind Detection algorithms Via parity bit, check summing (CRC32), hashing (MD5) Retransmit on detection Correction algorithms (includes detection) Via error correcting code (ECC), erasure codes, etc. In-place data recovery on detection Both increase data footprint noticeably (performance, not so much) No detection in hardware and software causes SILENT data corruption Most software simply does not implement detection However, most backup software does have detection algorithms built in THIS is why you start seeing lots of corruption dealing with backups It’s NOT because all backup software is bad! RAM and CPU electronics problems (sticky bit) URE (Unrecoverable Read Error) and storage wear Data transfer noise (wireless, Ethernet, FC, SATA) Firmware bugs and “optimizations” (NAS software, NIC, RAID controller) Software bugs OS kernel File system Virtualization Data management applications Not just computers (but also routers, NICs, RAID controllers) Rated BER (Bit Error Rate) from 10-12 (1 error per 100 GB). Still want to save buying non-ECC memory for your servers? Breaks with time due to transistors wear! Normally takes at least 5-7 years, but high operational temperatures speed up the issue Results in: Unbootable system (recent CISCO routers issue) Sticky bit silently corrupting all of your data URE (Unrecoverable Read Error) Type Consumer SATA Enterprise SATA Enterprise SAS Tape (LTO) Tape (Enterprise) BER 10-14 10-15 10-16 10-17 10-19 One error per 10 TB 100 TB 1 PB 10 PB* 1 EB* *Assuming proper handling Consider mechanical wear for tape and classic hard drives, and electronic wear for SSDs (SLC/MLC/TLC) Bit Error Rate (BER) Type 1 Gb Ethernet 10 Gb Ethernet 4 Gb Fibre Channel BER 10-10 10-12 10-12 One error per 1 GB transferred 100 GB transferred 250 GB transferred One error every 10 seconds 1 minute 40 seconds ~ 5 minutes Checksummed and retransmitted* if necessary Wireless uses Symbol Error Rate (SER); is affected by technology, hardware, modulation, distance, collisions, noise, etc. NAS firmware Underlying base OS is usually solid Questionable “optimizations” and tweaks RAID controller firmware Most overlooked component in software patching NIC firmware Poor quality from certain vendors Also rarely patched, aside from performance troubleshooting case OS kernel (Server 2012 “magic 10 bytes” or Linux SLAB bugs) File system (two evils: bad stability vs. bad architecture) Virtualization Too much code in between apps and hardware Too many moving pieces (hard to test) Data management applications Algorithmic bugs (e.g., incremental without full) Non-transactional I/O handling (common for immature software) Data corruption bugs are extremely rare (hard to make, easy to catch) Corruption statistics in our support Over six years and 120,000 customers Through my prism of perception! Disclaimer There are three types of people: 1. People who trust statistics 2. People who do not trust statistics 3. People who make up their own statistics Network shares Windows SMB client issues Low-end NAS and various appliances Corrupted network traffic Bad NIC firmware Vendor ignoring TCP/IP reference Storage-level corruption RAID controllers writing rubbish Corruptions from storage-side data processing (e.g., dedupe) Network shares? Avoid SMB backup targets Use internal, DAS or block storage Corrupt network traffic? Network traffic verification (6.5 and later) Requires locally attached storage! Storage-level corruption? SureBackup® with full scan option (or script backup verifier) Copy your backups, remember 3-2-1 rule! Single/Double Bit Errors Bad memory (RAM, cache) Magic 10 bytes Windows Server 2012 kernel bug 2n sized chunks Linux SLAB bug 64KB chunks RAID controller misbehaving See “Silent Corruptions” CERN research by Peter Kelemen for more info Simple bit flip in a byte Usually persistent issue (caused by hardware) Typically caused by bad memory 1>0 transitions are more frequent than 0>1* 00000000 * 35285650 35285660 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 |3333333333333333| 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 22 33 33 33 33 33 33 33 33 33 |33333333333333"3| |3333333333333333| 0x33 = 00110011b 0x22 = 00100010b Random 10 bytes get random content Specific to Windows Server 2012 and above Usually persistent for hours/days (until environment change) Typically surfaces on heavy non-sequential I/O (copying large files) Timing is critical (possible race condition): reduced system load or debug tools installation makes it go away Recent occurrence points at system cache corrupting the data before or during flush 128-512 bytes chunks of data Usually transient Sometimes contain identifiable user data Typically observed in vicinity of Out of Memory Specific to Linux backup repository Possible corruption in SLAB (so may impact other Unix-based OS) Multiple large chunks of 64 KB containing “old” data from previous cycles (can be a few cycles old) or data from another location on disk: Usually persistent; comes in bursts Typically associated with I/O command timeouts Size often matches RAID stripe size (64 KB is a common default) RAID controller is the primary suspect Accept and be prepared for corruptions! Avoid detecting them at restore time: Use file systems with built-in end-to-end checksumming, data scrubbing and integrity checking (ZFS, ReFS) Scrub your RAID arrays regularly Re-read your tapes Infamous LZ4/ZLIB/RLE decompression error Restore job failed Error: Client error: Zlib decompression error: [-3]. Windows Event Log: The device … has a bad block (Disk Event 7) This is actually good news! Indicates point corruption of backup file (usually, a single block) File-level restore is still possible (unless MFT blocks are hit) Full VM restore will fail, but still possible with support tools This is bad news: All instances of storage metadata are corrupted. Failed to load metastore: Failed to load metadata partition. This backup file is FUBAR :( Metadata store is redundant (two copies), but still gets corrupted. We have no idea how blocks map to backed up files (or their order) Copy your backups! Extracting data from corrupted backups: Manual process in the early days VeeamRAR support tool (v7) Storage Explorer (v8) Storage Explorer NEW Analyzes impacted VM files Enables image-level restores from corrupt backups Can fix invalid summary.xml Includes support for encrypted backups and cloud repositories SureBackup Verifies BOTH backup file integrity AND recoverability Fully automated (set it and forget it) Available in Enterprise edition (and later) Backup Validator Verifies backup file integrity ONLY Can be scripted to automate integrity checks Backup files must be imported (will not work on standalone file) Available in all product editions Data corruptions are facts of life. Get them before they get you! Test your backup integrity regularly to find corruptions …or find corruptions at restore time, whichever you prefer And last, but not least: Copy your backups! And copy them to a different storage! Storage-based replication between identical storage devices keeps your data in the same fault domain. Gostev @ veeam.com (put “corruption” into the subject) Thank you!
© Copyright 2024