Ian Collins
2012-May-14 09:02 UTC
[zfs-discuss] Unexpected error adding a cache device to existing pool
On a Solaris 11 system I have a pool that was originally built with a log a cache device on a single SSD. The SSD died and I realised I should have a mirror log, so I''ve just tried to replace the log a cache with a pair of SSDs. Adding the log was OK: zpool add -f export log mirror c10t3d0s0 c10t4d0s0 But adding the cache fails: zpool add -f export cache c10t3d0s1 c10t4d0s1 invalid vdev specification the following errors must be manually repaired: /dev/dsk/c10t3d0s2 is part of active ZFS pool export. Please see zpool(1M). /dev/dsk/c10t3d0s1 overlaps with /dev/dsk/c10t3d0s2 Now that looks impossible to repair, s2 can''t be removed. The SSD partition table is: Total disk cylinders available: 19932 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 unassigned wm 0 - 2674 16.00GB (2675/0/0) 33555200 1 unassigned wm 2675 - 19931 103.22GB (17257/0/0) 216471808 2 backup wu 0 - 19931 119.22GB (19932/0/0) 250027008 Is there a solution? -- Ian.
Carson Gaspar
2012-May-14 10:32 UTC
[zfs-discuss] Unexpected error adding a cache device to existing pool
On 5/14/12 2:02 AM, Ian Collins wrote:> Adding the log was OK: > > zpool add -f export log mirror c10t3d0s0 c10t4d0s0 > > But adding the cache fails: > > zpool add -f export cache c10t3d0s1 c10t4d0s1 > invalid vdev specification > the following errors must be manually repaired: > /dev/dsk/c10t3d0s2 is part of active ZFS pool export. Please see zpool(1M). > /dev/dsk/c10t3d0s1 overlaps with /dev/dsk/c10t3d0s2The only solution I know of is to get rid of the whole-disk slice s2 from the disk label. I ended up using prtvtoc to dump the table, editing it by hand, and feeding it to fmthard. You could also try making s0 start at cylinder 1 instead of zero, so zpool doesn''t see a magic number on s2, but I don''t know if that will be enough. -- Carson
Ian Collins
2012-May-14 11:02 UTC
[zfs-discuss] Unexpected error adding a cache device to existing pool
On 05/14/12 10:32 PM, Carson Gaspar wrote:> On 5/14/12 2:02 AM, Ian Collins wrote: >> Adding the log was OK: >> >> zpool add -f export log mirror c10t3d0s0 c10t4d0s0 >> >> But adding the cache fails: >> >> zpool add -f export cache c10t3d0s1 c10t4d0s1 >> invalid vdev specification >> the following errors must be manually repaired: >> /dev/dsk/c10t3d0s2 is part of active ZFS pool export. Please see zpool(1M). >> /dev/dsk/c10t3d0s1 overlaps with /dev/dsk/c10t3d0s2 > The only solution I know of is to get rid of the whole-disk slice s2 > from the disk label. I ended up using prtvtoc to dump the table, editing > it by hand, and feeding it to fmthard. > > You could also try making s0 start at cylinder 1 instead of zero, so > zpool doesn''t see a magic number on s2, but I don''t know if that will be > enough. >Thank you for the suggestions Carson. Making s0 start at cylinder 1 did the trick. I''m sure I didn''t have to do that when I originally built the pool, but that was back on Solaris 11 Express. -- Ian.