# zpool on failed Dell Perc5/i



## mautobu (Oct 16, 2013)

Hello.

I'm in a bit of a precarious data recovery situation at this point. I've got 4x 136 GB 10k rpm drives on a Dell Perc5/i SAS card in a zpool together. The card is pooched, the card's BIOS doesn't come up, drives aren't present, etc.

Is it possible to recover this data from another, possibly different, card? Is there a large issue if the drives are addressed differently? (I.e. ada3, instead of the current da3.)

Cheers.


----------



## Sebulon (Oct 16, 2013)

Hi @mautobu!

The PERC card, is that capable of sending the drives as JBOD (just the raw drives) to the OS? Or were the drives configured as separate RAID 0 volumes, or just one bigger RAID volume that the pool was made out of? If the pool was made from any sort of RAID volume from the card, you would require another card of the same type and model(preferably with the same version firmware as well), since it has written its own RAID metadata on the drives before giving them away to the OS.

This is exactly why ZFS is designed to be used with just the raw devices coming from a "dumb" HBA. If you had followed that principle, you could have just replaced the card with anything and it still would have worked. ZFS writes it's own metadata into the drives, so that it's able to figure out which drive goes where, and doesn't care if it's called "ada" or "da", or whatever.

But since MurphyÂ´s always leaning over our shoulders, one should use labeling on the drives so that the label "disk1" e.g. is always called "disk1" regardless of whether the raw disk gets named "da2" or "ada42" or something.

/Sebulon


----------



## mautobu (Oct 16, 2013)

Drives were mounted as raw devices. No RAID levels were used.

If I plug it into another card, or another computer for that matter, will *Free*BSD pick up the zpool automatically, or is there some recovery command I need to run?

Fingers crossed, it's just a loose capacitor, but I'll find that out later tomorrow.


----------



## SirDice (Oct 16, 2013)

mautobu said:
			
		

> If I plug it into another card, or another computer for that matter, will BSD pick up the zpool automatically, or is there some recovery command I need to run?


You have to import the pool the first time.


----------



## kpa (Oct 16, 2013)

ZFS uses the on disk metadata to detect the devices that are part of a pool, the pool should be picked up automatically and show up in `zpool import` listing.


----------



## mautobu (Oct 16, 2013)

Rad, cheers guys, I'll give it a shot later today.


----------



## Terry_Kennedy (Oct 19, 2013)

mautobu said:
			
		

> Drives were mounted as raw devices. No raid levels were used.
> 
> Fingers crossed, it's just a loose capacitor, but I'll find that out later tomorrow.


PERC controllers generally don't like to let you access the raw underlying disks. For ZFS, you can create a PERC "volume" from an individual physical drive and export that to the OS. That also gives you access to the controller's features (read-ahead, write-behind, non-volatile cache, patrol read, etc.). Even for a single-disk volume, the controller writes metadata to the disk. I don't know offhand if it's at the beginning of the disk (which would confuse other controllers / operating systems), at the end, or somewhere else.

Ideally the best replacement would be another PERC5/i at the same or higher firmware revision. However, both the PERC6 and the PERC H700 (and presumably the H800) have the ability to import configurations from disks previously attached to older PERC controller models. Once imported, however, you can't go back to an older controller model.

Changing PERC controllers (even to one of the same model) will generate a "Foreign configuration found" message during the controller's BIOS disc scan. You can "Import" the configuration, which means the new PERC will try to use the disk configuration from the old controller. Selecting one of the other choices in that menu make render your data inaccessible.


----------



## mautobu (Oct 20, 2013)

Thanks for the feedback. I realized that I don't have another SAS card at all to plug the drives into, so ordered a PERC6 from eBay. It should take ~2 weeks to arrive.


----------



## pillai_hfx (Oct 22, 2013)

PERC H700 and H800 accepts only Dell branded drives by default. I am assuming that you have Dell branded drives. I have read somewhere that late model PERC 6 also exhibits the same behavior as the H700 when it comes to non OEM drives. I have all of the PERC
generations from 4 to H800 still in use. But so far, the only one I have tried non Dell drives is the PERC 5/E and it works. May be somebody in the forum can comment on PERC 6 specifically if you happen to use non Dell branded drives.


----------



## Terry_Kennedy (Oct 22, 2013)

pillai_hfx said:
			
		

> PERC H700 and H800 accepts only Dell branded drives by default. I am assuming that you have Dell branded drives.


That was fixed some time ago. It will log messages at boot (or drive insertion) about a non-certified drive, but it works.



> I have read somewhere that late model PERC 6 also exhibits the same behavior as the H700 when it comes to non OEM drives.


I haven't tested this on the PERC 6. The latest firmware may still be old enough to have the problem.

As a last resort, you can always cross-flash the controller to the generic LSI firmware.


----------

