Klennet ZFS Recovery

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

  • Recovers data from badly damaged pools which no longer mount;
  • automatically figures out pool and filesystem parameters, including disk order;
  • works even if a new blank pool was created over the original one;
  • recovers deleted files;
  • 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).
  • Supports all the compression algorithms - LZ4, LZJB, ZLE, and GZIP.
  • Only supports Fletcher4 (FL4) and SHA256 checksums.
  • Automatic detection of pool layout, RAID levels, and order of disks in each VDEV1 - 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,
  • ZFS on Linux 0.7.12-1
  • FreeBSD 9.3p43, 12.0
  • BSDSUniX 1.0p1

If you system is not on this list, ZFS Recovery is still likely to work. It had successfully recovered a FreeNAS system built circa 2011, with some data still left over from back then.

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: one core for every two source drives is perfect, one core for every four drives is good. With large number of soruce dirves (let's say 48 and up), parallel disk scan requires massive amount of CPU processing. The scan can be completed with fewer cores, albeit at slower speed.
  • 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.

How to use Klennet ZFS Recovery?

Please refer to this page for instructions.

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.