Solved Rescuing Unavailable Pool

Hey folks -

First: I have the pertinent data backed up onto another server, so if all is lost, that's fine. Obnoxious and awful because it'll take 24 hours to put it back. But, whatever.

I had two FreeBSD servers and I decided to try and merge them. The first server is my login/email/web/etc one: dual Xeon, lots of memory, not a whole lot of storage. The second: my NAS with 8 x 4TB drives in a ZFS version of RAID10 pool. The goal: move the first server's motherboard over to the chassis of the second, and connect the drives up. With any luck, I'd be fat, dumb, and happy, and all would work.

The challenge is that I had a pool on Server 1 called "local". The pool on the NAS is also called local, and I was a bit concerned there'd be some name collision. I tried to zpool export local on Server 1, hoping it would "forget" about that pool. But I guess that wasn't enough. Shows my ignorance. Upon booting after the swap and merge, the "new" server is unhappy:

Code:
arkham#    zpool status local
  pool: local
state: UNAVAIL
status: One or more devices could not be opened.  There are insufficient
    replicas for the pool to continue functioning.
action: Attach the missing device and online it using 'zpool online'.
   see: http://illumos.org/msg/ZFS-8000-3C
  scan: none requested
config:

    NAME                      STATE     READ WRITE CKSUM
    local                     UNAVAIL      0     0     0
      mirror-0                UNAVAIL      0     0     0
        2440557950419120305   UNAVAIL      0     0     0  was /dev/ada2
        16238227418067990627  UNAVAIL      0     0     0  was /dev/ada3
      mirror-1                UNAVAIL      0     0     0
        8029751195750855597   UNAVAIL      0     0     0  was /dev/ada4
        12594972150827200400  UNAVAIL      0     0     0  was /dev/ada5

As far as I can tell, the 8 drives that were originally in the NAS are all fine. They each respond to camcontrol commands, they just have different device numbers than before.

Can I do something to the server to first get it to forget about this local entirely, and then import the bigger one? Or is there something else I need to do?

Thanks for any guidance!
 
Last edited:
Looks like I might have done it:

zpool destroy local
zpool import local


Code:
arkham#    zpool status local
  pool: local
state: ONLINE
  scan: resilvered 1.49T in 0 days 05:00:12 with 0 errors on Thu Sep 10 16:06:32 2020
config:

    NAME                          STATE     READ WRITE CKSUM
    local                         ONLINE       0     0     0
      mirror-0                    ONLINE       0     0     0
        diskid/DISK-WOL240296723  ONLINE       0     0     0
        diskid/DISK-WOL240299242  ONLINE       0     0     0
      mirror-1                    ONLINE       0     0     0
        ada3                      ONLINE       0     0     0
        diskid/DISK-69Q0A0HUF6BG  ONLINE       0     0     0
      mirror-2                    ONLINE       0     0     0
        diskid/DISK-WOL240299299  ONLINE       0     0     0
        diskid/DISK-WOL240299261  ONLINE       0     0     0
      mirror-3                    ONLINE       0     0     0
        ada7                      ONLINE       0     0     0
        diskid/DISK-WOL240296704  ONLINE       0     0     0

errors: No known data errors

Six of the eight drives did get re-numbered. Will they ever show up in the status table with their new device IDs? Or is there something I can do to force it?

Edited:
The only way I could figure out to force it is to offline each drive and then zpool replace them individually with their respective "adaXX" device name.
 
Last edited:
Back
Top