【问题标题】:can a zfs disk be replaced with an imaged-copy [zol]可以用映像副本替换 zfs 磁盘 [zol]
【发布时间】:2021-09-29 04:51:13
【问题描述】:

如果我有一个理论上的池“坦克”500gb X 4 驱动器作为设备 vd{a,b,c,d}

我可以从系统中提取 vdc,将它(按位克隆)映像到另一个 500gb 磁盘上,然后在主机上安装克隆(我们称之为第五个设备 vde),我可以正常导入这个池吗?

我预计 zfs 可能不喜欢物理设备的更改,或者可能有一些其他“古怪”行为,这可能会使尝试 zpool replace ... 比以前更加困难。


使用一个 raidz 成员的克隆,我发现这些东西不起作用

  • zpool export tank
    zpool import tank
    

    新设备被忽略

  • zpool replace tank vdc /dev/vde
    

    /dev/vde 是活动池的一部分

  • zpool online tank /dev/vde
    

    无法联机 /dev/vde 池中没有这样的设备

  • zpool offline tank vdc
    zpool online tank /dev/vde
    

    无法联机 /dev/vde 池中没有这样的设备

  • zpool attach tank vdc vde
    

    /dev/vde 是活动池低温的一部分

  • zpool online tank vde
    

    无法在线 vde:池中没有这样的设备

【问题讨论】:

  • 这似乎没有出现的原因可能是,这需要使池脱机,并且大多数人更喜欢正常运行而不是快速维护操作。
  • 确保新物理设备的行为与旧设备一样,否则您可能会面临数据丢失的风险。最简单的方法是再次使用相同类型的驱动器。或者购买一个新的 2TByte(消费级大约 50 欧元,企业级大约 100 欧元 - 即 2 TByte Seagate Exos 200MByte/s 读/写)驱动器,然后将旧磁盘送去报废。

标签: zfs


【解决方案1】:

是的,通过使池脱机(导出+导入)

当原始磁盘丢失时,zpool import 会查找新磁盘

注意:zpool offline tank sdc,如果可能,在复制之前,这有助于减少擦洗时间和磨损。 zpool online task sde 导出+导入后。在导出+导入之前,当设备离线时,校验副本以确保没有副本缺陷。

  pool: tank
 state: ONLINE
  scan: resilvered 8K in 0h0m with 0 errors 
config:       
                                                         
        NAME         STATE     READ WRITE CKSUM
        tank         ONLINE       0     0     0
          raidz3-0   ONLINE       0     0     0
            sda      ONLINE       0     0     0
            sdb      ONLINE       0     0     0
            sdc      ONLINE       0     0     0
            sdd      ONLINE       0     0     0
  • (安全)disconnect the old device(先导出池)
    # echo 1 >/sys/block/sdc/device/delete
    
  • 扫描池
    # zpool import -d /dev/disk/by-id/
    
           pool: tank                                                                                                       
          state: ONLINE                                         
           scan: resilvered 8K in 0h0m with 0 errors
         config:                                                                    
    
                 NAME         STATE     READ WRITE CKSUM
                 tank         ONLINE       0     0     0
                   raidz3-0   ONLINE       0     0     0
                     sda      ONLINE       0     0     0
                     sdb      ONLINE       0     0     0
                     sde      ONLINE       0     0     0  # clone detected
                     sdd      ONLINE       0     0     0
    
  • 导入池
    # zpool import -d /dev/disk/by-id/ tank
    
  • scrub 建议,以确保克隆没有丢失任何更改或有任何坏块
    zpool scrub tank
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2016-11-30
    • 2014-04-15
    相关资源
    最近更新 更多