磁盘替换破坏了 zpool 中的磁盘命名约定

磁盘替换破坏了 zpool 中的磁盘命名约定

在我的 RAID-Z2 池中更换两个损坏的磁盘后,输出zpool status看起来很奇怪。磁盘使用其完整路径寻址,并且似乎包含“切片”,而所有其他磁盘都没有。

我输入了这些命令来更换损坏的磁盘(这也许可以解释奇怪的命名,但不能解释切片):

zpool replace bashpool c2t6d0 /dev/rdsk/c2t6d0
zpool replace bashpool c2t7d0 /dev/rdsk/c2t7d0

zpool status 的输出现在报告为:

~$ zpool status -v bashpool 
pool: bashpool
state: ONLINE
scan: resilvered 1.01T in 39h31m with 0 errors on Fri Feb 22 10:50:20 2013
config:

    NAME                    STATE     READ WRITE CKSUM
    bashpool                ONLINE       0     0     0
      raidz2-0              ONLINE       0     0     0
        c2t0d0              ONLINE       0     0     0
        c2t1d0              ONLINE       0     0     0
        c2t2d0              ONLINE       0     0     0
        c2t3d0              ONLINE       0     0     0
        c2t4d0              ONLINE       0     0     0
        c2t5d0              ONLINE       0     0     0
        /dev/rdsk/c2t6d0s0  ONLINE       0     0     0
        /dev/rdsk/c2t7d0s0  ONLINE       0     0     0
        c3t4d0              ONLINE       0     0     0
        c3t5d0              ONLINE       0     0     0
        c3t6d0              ONLINE       0     0     0
        c3t7d0              ONLINE       0     0     0
        c3t1d0              ONLINE       0     0     0
        c3t3d0              ONLINE       0     0     0
        c3t2d0              ONLINE       0     0     0
    spares
      c3t0d0                AVAIL
errors: No known data errors

我的问题是:

  • 我做错了什么吗?池似乎没问题,但由于我对 Solaris 不太熟悉,所以我真的说不准。如果是这样,我该如何补救这种情况?
  • zpool 中的磁盘名称可以更改吗?
  • 为什么新磁盘似乎有切片,而其他所有磁盘都没有?我没有格式化它们,只是将新的原始磁盘安装到服务器中并运行了替换命令。

更新2013-02-25:现在我似乎无法再控制这两个设备;任何zpool命令似乎都会失败,并出现错误“池中没有这样的设备”:

~# zpool detach bashpool /dev/dsk/c2t6d0s0
   cannot detach /dev/dsk/c2t6d0s0: no such device in pool

~# zpool detach bashpool c2t6d0s0
   cannot detach /dev/dsk/c2t6d0s0: no such device in pool

更奇怪的是:我可以通过 GUID 来寻址设备(通过 找到zdb -C <zpool>),但zpool offline似乎只有效:

~# zpool offline bashpool '683230688581832563'
~# zpool status
  pool: bashpool
  state: DEGRADED
  status: One or more devices has been taken offline by the administrator.
    Sufficient replicas exist for the pool to continue functioning in a
    degraded state.
  action: Online the device using 'zpool online' or replace the device with
    'zpool replace'.
  scan: resilvered 1.01T in 39h31m with 0 errors on Fri Feb 22 10:50:20 2013
  config:

    NAME                    STATE     READ WRITE CKSUM
    bashpool                DEGRADED     0     0     0
      raidz2-0              DEGRADED     0     0     0
        c2t0d0              ONLINE       0     0     0
        c2t1d0              ONLINE       0     0     0
        c2t2d0              ONLINE       0     0     0
        c2t3d0              ONLINE       0     0     0
        c2t4d0              ONLINE       0     0     0
        c2t5d0              ONLINE       0     0     0
        /dev/rdsk/c2t6d0s0  OFFLINE      0     0     0
        /dev/rdsk/c2t7d0s0  ONLINE       0     0     0
        c3t4d0              ONLINE       0     0     0
        c3t5d0              ONLINE       0     0     0
        c3t6d0              ONLINE       0     0     0
        c3t7d0              ONLINE       0     0     0
        c3t1d0              ONLINE       0     0     0
        c3t3d0              ONLINE       0     0     0
        c3t2d0              ONLINE       0     0     0
    spares
      c3t0d0                AVAIL   

errors: No known data errors

之后我可以联机该设备,但似乎无法对该设备执行任何其他操作。其他所有命令都返回错误“池中没有此设备”。有人知道控制 zpool 设备的其他方法吗?

答案1

切片可见性发生在重新同步操作期间。完成后,通常会恢复正常的设备名称。

至于您的zpool replace操作,您只需要使用设备名称。 而不是完整路径。

(顺便说一句,这是一个超大的 raidz2 池!!)

相关内容