Need to recover RAID 6 array
By definition
RAID 6 is an array of independent hard drives equipped with two independent and distributed checksum schemes
Does that mean I can recover each of the hard drives one by one using normal (not RAID) recovery software?
If no, is there any free and reliable RAID recovery software available? With a quick google search I found ReclaiMe Free RAID Recovery software. But I am not sure about its reputation.
Solution 1:
Recovering individual disks will only get you partial data. The "independent" means that the disk drives are not aware of each other, and can be exchanged separately.
The best way to recover data from a RAID is to use the software or hardware that was used to build it, and if that is not an option, a tool that understands the superblock format because in order to make sense of the data contained on the individual disks, you also need some extra parameters like the block size used.
RAID 6 is standardized only in the way it works, but individual vendors have slight differences in implementation.
Solution 2:
As others said, to recover any significant amount of data from a RAID-6 array you need at least N-2 drives from the array (N being the total number of drives used in the array). From single drives you may only recover files that are smaller than the array stripe unit size (generally 64 to 256 KiB).
There is an excellent program that allows to re-assemble failed arrays even without the hardware/software setup (RAID controller, OS) that was used in the first place: UFS explorer. Notice that I have absolutely no relationship with this, but I've used the software in the past and it worked surprisingly well. Plus the free version allows you to check that it can access your data before buying a license for a complete recovery.
Notice that whatever you're about to do, you'll need some storage space to copy whatever you recover from your failed array.
Solution 3:
They are independent hardware, but the data structure on them is not independent. This means that you will only get partial data if you only have parts of the array.
However, RAID 6 is very fault tolerant, and is therefore my go-to choice for RAID setups. In addition to having data redundancy, metadata is also striped across several drives.
I have a cluster with several RAID 6 volumes in it, each consisting of 12 drives. As long as no more than 2 drives fail in the same RAID volume, the data can be recovered.
I use storcli
for most RAID operations. The below is an example where drive #7 in the first enclosure, on the first RAID controller has failed:
# Turn on the locator light to make sure the right drive is replaced
storcli /c0/e0/s6 start locate
# This is where I pull the bad drive and replace it with a good one
# Sometimes it needs to be inserted into the RAID, such as if you want to bring in a different available drive.
storcli /c0/e0/s6 insert dg=2 array=0 row=3
# Now that the drive is registered as part of the ARRAY, you can start the rebuild
storcli /c0/e0/s6 start rebuild
# Check up on the rebuild status
storcli /c0/e0/s6 show rebuild
# Turn of the locator light. We don't need that anymore
storcli /c0/e0/s6 stop locate