Another area we have been working on in
Hetman RAID Recovery is support for software NAS platforms that can turn an ordinary PC or server into network-attached storage. In an earlier post, I described our work with physical NAS, DAS and SAN systems. This time I would like to focus on platforms where the storage architecture is defined mainly by the operating system and the storage technologies it uses rather than by a specific NAS controller.
From a recovery perspective, these systems are quite different. TrueNAS is built around ZFS, OpenMediaVault commonly uses Linux MD/mdadm for software RAID, Rockstor is based on multi-device Btrfs, while Unraid uses its own architecture with independent data disks and parity.
TrueNASTrueNAS uses
ZFS as its primary storage technology. In this test, we worked with
RAIDZ1, RAIDZ2, RAIDZ3 and Stripe, automatic ZFS pool reconstruction, missing drives and deleted data:
https://www.youtube.com/watch?v=x39jwpLwe4oIn another test, we focused on higher-level ZFS objects, including
Datasets, ZVOLs and Snapshots, as well as virtual disks stored inside a ZFS pool:
https://www.youtube.com/watch?v=vMw3zFfzBwQA ZVOL is a block device provided by ZFS, while datasets provide filesystem-level storage. Snapshots can be associated with these ZFS objects and represent another source of recoverable data. For recovery, this means that reconstructing the RAIDZ layout is only one part of the task. The software also has to recognize the ZFS pool and the objects stored inside it.
A simplified view is:
physical disks -> ZFS pool / RAIDZ -> datasets or ZVOLs -> datawith snapshots associated with the corresponding ZFS objects.
OpenMediaVaultIn this test with OpenMediaVault 8.2.8, we worked with
mdadm RAID 0, RAID 5 and RAID 6:
https://www.youtube.com/watch?v=xz3rfgPD2J4Hetman RAID Recovery reads Linux MD metadata from the member disks and can use it to reconstruct the array automatically. We also tested manual RAID reconstruction for cases where the available metadata is incomplete or the array parameters need to be specified manually. After the MD array has been reconstructed, the software can continue analyzing the storage layers above it, such as partitions, volume structures and filesystems.
A simplified structure is:
physical disks -> Linux MD/mdadm RAID -> volume/filesystem -> dataRockstorRockstor takes a different approach. Its storage is built around Btrfs, where filesystem and multi-device storage management are closely integrated. In this test with Rockstor 5.1, we worked with
Btrfs RAID 0, RAID 5 and RAID 6 profiles:
https://www.youtube.com/watch?v=MN2dgOMJ3IYHetman RAID Recovery automatically detected the multi-device Btrfs layout. We also tested recovery from
Btrfs snapshots and analysis after deletion of a Btrfs pool. Unlike a traditional mdadm-based stack, there is no mandatory separate RAID layer here. Information about how data is distributed across the devices is part of Btrfs itself.
A simplified structure is:
physical disks -> Btrfs multi-device filesystem -> subvolumes / snapshots -> dataUnraidUnraid uses a substantially different storage model. Unlike traditional striped RAID, complete files are stored on individual data disks, while one or two dedicated parity disks provide protection against disk failure. In this test, we worked with
Unraid Single Parity and Dual Parity:
https://www.youtube.com/watch?v=hkCEM_dciYYHetman RAID Recovery can analyze the available XFS data disks individually, determine the original disk order and filesystem offset, and virtually reconstruct missing data using parity information. In our tests, we reconstructed one missing data disk in a Single Parity array and two missing data disks in a Dual Parity array. For this reason, an Unraid array should not be treated simply as another variation of RAID 5 or RAID 6.
A simplified view is:
independent data disks + parity disk(s) -> individual filesystems -> dataFor Hetman RAID Recovery, supporting these platforms is therefore not just a matter of reading a particular filesystem. The software has to understand the relationship between physical disks, RAID or pool metadata, volume structures, filesystems, snapshots and block-level objects, and reconstruct the available storage layers before filesystem recovery can begin.
I would be interested to hear from people who work with software NAS systems in real recovery cases: which platforms or storage layouts would be useful for us to test next - complex ZFS pools, Btrfs configurations with missing devices, mdadm/LVM stacks, unusual Unraid arrays, or other NAS operating systems?
_________________
Michael Miroshnichenko — Data Recovery Software Developer at Hetman Software
RAID • NAS • File Systems • Virtual Disks •
https://hetmanrecovery.com/