ZFS degraded, drive not recognized as part of pool

I've been searching for an answer largely on this forum and other forums for a long time and I've finally decided to post my problem.

I'm running FreeBSD 9.2.
I had a RAIDZ1 array. It was originally 6 drives x 1TB. I planned to upgrade my array by swapping out all of the 1TB drives and replacing them with a 3TB drive (6 drives x 3TB). I was pulling a drive from the array and then adding a 3TB to resilver. I kept the 1TB drive to act as a "backup" in case a resilvering failed I could plug the old drive back in. Of course, during the resilvering of the last drive, the first drive failed and the last drive.

The resilvering was incomplete and the array did not grow in size. I replaced the failed drives with new 3TB drives and copied the contents, using the recoverydisk command, from the failed 3TB to the new 3TB drives. The first failed 3TB drive's data was largely unrecoverable. The data from the failed last drive was incomplete anyway. If I put the new 3TB drives in the array, the array is complete but during resilvering, there are ton's of missing data because the tons of the data on the first drive was not completely recovered. If I put the old 1TB, instead of the new 3TB drive, to keep the array intact, the drive is not being detected as a part of the array, the array is marked degraded, and the drives are listed as unavailable.


If I put all of the old 1TB drives together to simply use the old array, only one of the drives is detected as part of the array and the other 5 drives are not detected and deemed unavailable and cannot be imported by ZFS.

Does anyone have any idea on how to get the old array of 1TB drives up and running or a way to get my new 3TB array to detect one of the old 1TB drives to be a complete array again?


I'll take any follow up questions to help clarify the problem.

Thank you very much.
 
It all depends on how you "removed" the old drives from the pool.

Did you just physically remove them?

Did you use the "zpool offline" command on them before physically removing them?

Did you just use the "zpool replace" command on them?

Something else?
 
yeah...I just shutdown the machine and physically removed the drive then added the new drive and ran resilver. No offline or replace :(
I'm a little wiser now reading up on ZFS after this problem arose.
 
Ah. You might be hooped, then.

You might be able to work around it by connecting the original 1 TB drive and the replacement 3 TB drive at the same time, and using "zpool online" on the 1 TB, and "zpool offline"/"zpool remove" on the 3 TB. That might switch things back to using the 1 TB drive. However, that will depend on how much time has passed since the 1 TB drive was removed from the pool, and how much data has changed in the pool. Too long or too much changed data and the 1 TB disk will be too out-of-sync to be added back to the pool.
 
Thanks, I'll give that a shot. The data shouldn't have changed much at all. I tried to keep the data static during the upgrade for that reason.
 
Back
Top