Klennet Storage Software

Klennet ZFS Recovery

Klennet ZFS Recovery is a software to recover data from damaged ZFS pools.

  • Recovers data from badly damaged pools;
  • automatically figures out filesystem parameters, including disk order;
  • works even if a new blank pool was created over the original one;
  • recovers previous versions of files whenever possible;
  • verifies checksums to see if file data is correct.

Capabilities and limitations

General:

  • Supports pools with 512 or 4096 bytes per sector (ashift=9 or ashift=12).
  • Only supports LZ4 compression. If you need some other compression algorithm, send a support request and I'll look into it.
  • Only supports Fletcher4 (FL4) and SHA256 checksums.
  • Automatic detection of pool layout (type and order of VDEVs1 in the pool, and RAID level and order of drives in each VDEV) even if all the disk labels are damaged.

RAID levels and missing disks:

  • Stripe as such does not exist in ZFS. It is always stripe-over-something. The pool can be striped over single disks, mirrors, or RAIDZ variants. As with usual RAID0, if all the stripe members are readable, the stripe is recoverable. To be technically correct, the data is not striped, it is distributed across multiple VDEVs in relatively large blocks of variable size.
  • Mirrors are not supported in full as of now. If there is a mirror, ZFS Recovery will pick one of the mirrored drives effectively at random and use it. This will be improved at some later point.
  • RAIDZ and RAIDZ2. Both of these are supported in full. RAIDZ with one missing or corrupt drive, and RAIDZ2 with two drives missing or corrupt in any combination. This includes partially overwritten drives.
  • RAIDZ3 is not supported.

Compatibility

Klennet ZFS Recovery was so far tested with

  • FreeNAS-11.1-U6
  • XigmaNAS 11.2.0.4
  • NexentaStor 5.2.0.27

System requirements

  • Windows 7 and up, .NET 4.5
  • RAM requirements are not exactly known at this time. The amount of RAM required is proportional to number of files/directories in the pool. 16 GB to 32 GB should be good for any reasonable size of the filesystem.
  • CPU does not matter that much. Higher frequency is obviously better, but number of cores does not matter much.
  • Always-on or near always-on internet connection.

1 VDEV stands for virtual device. It is a unit of disk layout in ZFS. If you want a bit more detail, read this page.

I have a low volume mailing list, for news and tips, which I send out once or twice a month.
Subscribe if you are interested.