Jill Manfield
2007-Dec-13 17:16 UTC
[zfs-discuss] How to properly tell zfs of new GUID <controller numbers> after a firmware upgrade changes the IDs
My customer''s zfs pools and their 6540 disk array had a firmware
upgrade that changed GUIDs so we need a procedure to let the zfs know it
changed. They are getting errors as if they replaced drives. But I need to make
sure you know they have not "replaced" any drives, and no drives have
failed or are "bad". As such, they have no interest in wiping any
disks clean as indicated in 88130 info doc.
Some background from customer:
We have a large 6540 disk array, on which we have configured a series of
large RAID luns. A few days ago, Sun sent a technician to upgrade the
firmware of this array, which worked fine but which had the deleterious
effect of changing the "Volume IDs" associated with each lun. So, the
resulting luns now appear to our solaris 10 host (under mpxio) as disks in
/dev/rdsk with different ''target'' components than they had
before.
Before the firmware upgrade we took the precaution of creating duplicate
luns on a different 6540 disk array, and using these to mirror each of our
zfs pools (as protection in case the firmware upgrade corrupted our luns).
Now, we simply want to ask zfs to find the devices under their new
targets, recognize that they are existing zpool components, and have it
correct the configuration of each pool. This would be similar to having
Veritas vxvm re-scan all disks with vxconfigd in the event of a
"controller renumbering" event.
The proper zfs method for doing this, I believe, is to simply do:
zpool export mypool
zpool import mypool
Indeed, this has worked fine for me a few times today, and several of our
pools are now back to their original mirrored configuration.
Here is a specific example, for the pool "ospf".
The zpool status after the upgrade:
diamond:root[1105]->zpool status ospf
pool: ospf
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas
exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using ''zpool
online''.
see: http://www.sun.com/msg/ZFS-8000-D3
scrub: resilver completed with 0 errors on Tue Dec 11 18:26:53 2007
config:
NAME STATE READ WRITE CKSUM
ospf DEGRADED 0 0 0
mirror DEGRADED 0 0 0
c27t600A0B8000292B0200004BDC4731A7B8d0 UNAVAIL 0 0 0
cannot open
c27t600A0B800032619A0000093747554A08d0 ONLINE 0 0 0
errors: No known data errors
This is due to the fact that the LUN which used to appear as
c27t600A0B8000292B0200004BDC4731A7B8d0 is now actually
c27t600A0B8000292B0200004D5B475E6E90d0. It''s the same LUN, but since
the
firmware changed the Volume ID, the target portion is different.
Rather than treating this as a "replaced" disk (which would incur an
entire mirror resilvering, and would require the "trick" you sent of
obliterating the disk label so the "in use" safeguard could be
avoided),
we simply want to ask zfs to re-read its configuration to find this disk.
So we do this:
diamond:root[1110]->zpool export -f ospf
diamond:root[1111]->zpool import ospf
and sure enough:
diamond:root[1112]->zpool status ospf
pool: ospf
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress, 0.16% done, 2h53m to go
config:
NAME STATE READ WRITE CKSUM
ospf ONLINE 0 0 0
mirror ONLINE 0 0 0
c27t600A0B8000292B0200004D5B475E6E90d0 ONLINE 0 0 0
c27t600A0B800032619A0000093747554A08d0 ONLINE 0 0 0
errors: No known data errors
(Note that it has self-initiated a resilvering, since in this case the
mirror has been changed by users since the firmware upgrade.)
The problem that Robert had was that when he initiated an export of a pool
(called "bgp") it froze for quite some time. The corresponding
"import"
of the same pool took 12 hours to complete. I have not been able to
replicate this myself, but that was the essence of the problem.
So again, we do NOT want to "zero out" any of our disks, we are not
trying
to forcibly use "replaced" disks. We simply wanted zfs to re-read the
devices under /dev/rdsk and update each pool with the correct disk
targets.
If you can confirm that a simple export/import is the proper procedure for
this (followed by a "clear" once the resulting resilvering finishes),
I
would appreciate it. And, if you can postulate what may have caused the
"freeze" that Robert noticed, that would put our minds at ease.
TIA,
Any assistance on this would be greatly appreciated and or pointers on helpful
documentation.
--
S U N M I C R O S Y S T E M S I N C.
Jill Manfield - TSE-OS Administration Group
email: jill.manfield at sun.com
phone: (800)USA-4SUN (Reference your case number)
address: 1617 Southwood Drive Nashua,NH 03063
mailstop: NSH-01- B287
OS Support Team 9AM to 6PM EST
Manager joel.fontenot at sun.com x74110
Shawn Ferry
2007-Dec-13 17:37 UTC
[zfs-discuss] How to properly tell zfs of new GUID <controller numbers> after a firmware upgrade changes the IDs
Jill, I was recently looking for a similar solution to try and reconnect a renumbered device while the pool was live. e.g. zpool online mypool <old target> <old target at new location> As in zpool replace but with the indication that this isn''t a new device. What I have been doing to deal with the renumbering is exactly the export, import and clear. Although I have been dealing with significantly smaller devices and can''t speak to the delay issues. Shawn On Dec 13, 2007, at 12:16 PM, Jill Manfield wrote:> > My customer''s zfs pools and their 6540 disk array had a firmware > upgrade that changed GUIDs so we need a procedure to let the zfs > know it changed. They are getting errors as if they replaced > drives. But I need to make sure you know they have not "replaced" > any drives, and no drives have failed or are "bad". As such, they > have no interest in wiping any disks clean as indicated in 88130 > info doc. > > Some background from customer: > > We have a large 6540 disk array, on which we have configured a > series of > large RAID luns. A few days ago, Sun sent a technician to upgrade the > firmware of this array, which worked fine but which had the > deleterious > effect of changing the "Volume IDs" associated with each lun. So, the > resulting luns now appear to our solaris 10 host (under mpxio) as > disks in > /dev/rdsk with different ''target'' components than they had before. > > Before the firmware upgrade we took the precaution of creating > duplicate > luns on a different 6540 disk array, and using these to mirror each > of our > zfs pools (as protection in case the firmware upgrade corrupted our > luns). > > Now, we simply want to ask zfs to find the devices under their new > targets, recognize that they are existing zpool components, and have > it > correct the configuration of each pool. This would be similar to > having > Veritas vxvm re-scan all disks with vxconfigd in the event of a > "controller renumbering" event. > > The proper zfs method for doing this, I believe, is to simply do: > > zpool export mypool > zpool import mypool > > Indeed, this has worked fine for me a few times today, and several > of our > pools are now back to their original mirrored configuration. > > Here is a specific example, for the pool "ospf". > > The zpool status after the upgrade: > > diamond:root[1105]->zpool status ospf > pool: ospf > state: DEGRADED > status: One or more devices could not be opened. Sufficient replicas > exist for > the pool to continue functioning in a degraded state. > action: Attach the missing device and online it using ''zpool online''. > see: http://www.sun.com/msg/ZFS-8000-D3 > scrub: resilver completed with 0 errors on Tue Dec 11 18:26:53 2007 > config: > > NAME STATE READ > WRITE CKSUM > ospf DEGRADED > 0 0 0 > mirror DEGRADED > 0 0 0 > c27t600A0B8000292B0200004BDC4731A7B8d0 UNAVAIL > 0 0 0 cannot open > c27t600A0B800032619A0000093747554A08d0 ONLINE > 0 0 0 > > errors: No known data errors > > This is due to the fact that the LUN which used to appear as > c27t600A0B8000292B0200004BDC4731A7B8d0 is now actually > c27t600A0B8000292B0200004D5B475E6E90d0. It''s the same LUN, but > since the > firmware changed the Volume ID, the target portion is different. > > Rather than treating this as a "replaced" disk (which would incur an > entire mirror resilvering, and would require the "trick" you sent of > obliterating the disk label so the "in use" safeguard could be > avoided), > we simply want to ask zfs to re-read its configuration to find this > disk. > > So we do this: > > diamond:root[1110]->zpool export -f ospf > diamond:root[1111]->zpool import ospf > > and sure enough: > > diamond:root[1112]->zpool status ospf > pool: ospf > state: ONLINE > status: One or more devices is currently being resilvered. The pool > will > continue to function, possibly in a degraded state. > action: Wait for the resilver to complete. > scrub: resilver in progress, 0.16% done, 2h53m to go > config: > > NAME STATE READ > WRITE CKSUM > ospf ONLINE > 0 0 0 > mirror ONLINE > 0 0 0 > c27t600A0B8000292B0200004D5B475E6E90d0 ONLINE > 0 0 0 > c27t600A0B800032619A0000093747554A08d0 ONLINE > 0 0 0 > > errors: No known data errors > > (Note that it has self-initiated a resilvering, since in this case the > mirror has been changed by users since the firmware upgrade.) > > The problem that Robert had was that when he initiated an export of > a pool > (called "bgp") it froze for quite some time. The corresponding > "import" > of the same pool took 12 hours to complete. I have not been able to > replicate this myself, but that was the essence of the problem. > > So again, we do NOT want to "zero out" any of our disks, we are not > trying > to forcibly use "replaced" disks. We simply wanted zfs to re-read the > devices under /dev/rdsk and update each pool with the correct disk > targets. > > If you can confirm that a simple export/import is the proper > procedure for > this (followed by a "clear" once the resulting resilvering > finishes), I > would appreciate it. And, if you can postulate what may have caused > the > "freeze" that Robert noticed, that would put our minds at ease. > > > > TIA, > > Any assistance on this would be greatly appreciated and or pointers > on helpful documentation. > > -- > S U N M I C R O S Y S T E M S I N C. > > Jill Manfield - TSE-OS Administration Group > email: jill.manfield at sun.com > phone: (800)USA-4SUN (Reference your case number) > address: 1617 Southwood Drive Nashua,NH 03063 > mailstop: NSH-01- B287 > > OS Support Team 9AM to 6PM EST > Manager joel.fontenot at sun.com x74110 > > _______________________________________________ > zfs-discuss mailing list > zfs-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss-- Shawn Ferry shawn.ferry at sun.com Senior Primary Systems Engineer Sun Managed Operations 571.291.4898