The Linux MD Bad Block List

From Roy's somewhat wise thoughts
Jump to navigation Jump to search

Introduction

In the Linux Software RAID driver, md (as in Multiple Devices) the Bad Block List (BBL) was introduced around 2010 to allow for creating a map of bad sectors on member drives in a RAID. The intention was then to stay away from these sectors to help save your data. Some five years later, a text, The Badblocks controversy, was posted, listing up a number of reasons the BBL is a bad idea in the first place.

Firstly, the BBL attempts to keep a list of sectors that were noted to be unreadable as to avoid these sectors. While this may seem like a good idea, drives have their own microcontrollers, flash memory and so on to keep such lists themselves. This has been around on consumer equipment since the first IDE drives hit the market in the end of the 1980s. The common drives earlier than this, typically MFM drives, didn't have any such drive intelligence and left that to the operating system. A modern drive uses Reed–Solomon errorcorrecion or similar and sorts out bad sectors without bothering the OS about it. At the time you see a bad sector from the OS, the number of bad sectors on the drive is usually a lot higher, since a lot has been relocated by the controller already, and the drive should be replaced. To start mapping out bad sectors at this point, is like wetting yourself to keep warm - not a good idea.

(to be continued…)