Recovering data from failed NAS units

NAS basics

NAS stands for Network Attached Storage. Generally, NAS is a data storage which can be easily connected to a PC network. NAS units usually are not equipped with a keyboard or monitor and only provide file-based data storage services. These devices can be created either based on the dedicated chips (similar to a hardware RAID) or using drivers of the Linux operating system installed onto a small computer.

Since in terms of data storage NAS unit uses a regular RAID, then it is subject to failures which are typical for RAIDs. However, actions to be taken in case of a NAS failure caused by a storage system failure will differ depending on the NAS implementation type.

How to recover NAS using dedicated hardware

NAS can be run by a dedicated chip and its firmware, rather than a tailored Linux. By the end of 2010, NAS of this type is almost extinct. Still the notes below are provided for the sake of completeness.

Sometimes you can swap the drives to the exactly the same device. You should be especially careful with RAID 5 arrays, because there is a possibility that a controller couldn't recognize the disks and would start to initialize them. If this happens you will lose the data. Another option is to use RAID recovery software which is capable of reconstructing RAID configuration. If this case you need to connect member disks to any PC which has enough ports and start RAID recovery software like ZAR.

How to recover NAS based on Linux/mdraid

Most of the modern NAS units (like those made by QNAP, Synology, or Netgear) are in fact special purpose PCs. They would use an Intel Atom or similar CPU and a specifically tailored installation of Linux to handle the RAID. There are some components not likely to be found in a regular PC, like SATA hot-swap backplanes and indicator LED arrays, but still the entire system is close enough to a regular PC. Smaller scale NAS units (e.g. with two disk bays) may use a system-on-chip design, ARM or PPC processor, but even this is still controlled by Linux.

Choosing Linux as an operating system allows vendors to provide feature-rich system quickly and cheaply by using the existing Linux software (Samba, Apache webserver, BitTorrent clients, whatever). The same choice also naturally determines RAID types in use. A Linux-based NAS unit would likely use:

  • ext3 or ext4 for a filesystem,
  • standard mdraid drivers to provide a RAID capability as required.

Because the standard software is used, the set of disks from the NAS unit can typically be mounted on any Linux system with little effort. Once the disks are connected to a Linux PC, you need to type the command "sudo mdadm --assemble --scan --assume-clean" and see what Linux brings. This provides a quick escape route should the NAS fail.

However, the disks are not supposed to be used outside NAS and hence vendors do not make any specific effort to design a storage system compatible with a regular PC Linux. This sometimes causes difficulties in reading the data. For example, the Netgear ReadyNAS units may use a ext3 filesystem with the block size that cannot be mounted on the Intel x86 CPU (due to the memory page size difference between x86 and ARM processors). Such a system would still require a data recovery to access the data using a PC even if the RAID itself is OK.

If Linux brings nothing useful, you have another option - data recovery software which is capable of processing mdraid records. Linux can read only correct metadata while data recovery software is designed to handle damaged data. So it makes sense to try some of them, for example ZAR data recovery software. Connect all the disks from the failed NAS to a PC and click "Data recovery for Windows and Linux".

If all the above doesn't help, you can try one more option - RAID recovery software which is capable of analyzing data on disks and determining RAID configuration parameters. As in previous cases, you need to connect the disks to a PC, start RAID recovery software and see what it brings. Once again we note that RAID recovery software gives RAID configuration parameters rather than array data.

Continue to Hard drive damage in RAID.