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, 4096, or 8192 bytes per sector (ashift=9, ashift=12, and ashift=13).
  • Supprted compression algorithms are LZ4, LZJB, and ZLE. If you need GZIP, send a support request and I'll look into it.
  • Only supports Fletcher4 (FL4) and SHA256 checksums.
  • Automatic detection of pool layout. Autodetect 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. Once the set of disks is identified as two-way or three-way mirrors, all disks will be used to attempt to retrieve the correct data.
  • RAIDZ, RAIDZ2, and RAIDZ3. ZFS Recovery supports RAIDZ with one, RAIDZ2 with two, and RAIDZ3 with three missing or corrupt drives, in any combination.

Compatibility

Klennet ZFS Recovery was so far tested with

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

System requirements

  • Windows 7 and up, .NET 4.5. Despite the fact that ZFS is Linux or FreeBSD filesystem, ZFS Recovery runs on Windows. You need to do one of the following:
    • bring drives (or clones of the drives) to a Windows machine,
    • install Windows on a spare hard drive, SSD, or even a big USB stick, and bring it to the Linux machine,
    • install Windows in a virtual machine and pass the drives through into that virtual machine.
    No matter what, never initialize or format the drives if Windows prompts you to.
  • The amount of RAM required is proportional to number of files/directories in the pool. 32 GB or 64 GB should be enough for most cases.
  • 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.

What is limited in the evaluation version?

Evaluation will not actually copy files out.

It will show you what files it can see, will show you if checksums are good on these files (unless you cancel checksum verification), but evaluation will not copy files. Other than that, there is no difference.

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.