无法 zpool 驱动器:正在使用且包含未知文件系统

无法 zpool 驱动器:正在使用且包含未知文件系统

在 CentOS8 上创建了 raidz1 驱动器阵列。五个驱动器,重启后 zpool 无法加载。

执行了 zpool import -a,以导入 zpool 和数据集。我丢失了一个驱动器,这让我很烦恼,但毫无用处,我使用 ZFS 已经有一段时间了,并且总是使用 /dev/disk/by-id 名称。我尝试使用 zpool replace 将驱动器替换为相同的驱动器,结果发现该驱动器正在使用中并且包含未知的文件系统。该驱动器可通过 dev/disk/by-id 名称和 /dev 名称获得。

我使用 wipefs --all 擦除了驱动器。我使用 gdisk 删除了分区,但仍然收到错误。

而且,我用另一个驱动器物理替换了该驱动器,但仍然收到该错误。

我怎样才能将该驱动器放回 zpool 中?

我已经附加了 zpool status 和 lsblk。

[root@beast by-id]# lsblk

NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                             8:0    0 931.5G  0 disk  
└─ST91000640NS_00AJ142_00AJ145IBM_9XG9WE5R    253:2    0 931.5G  0 mpath 
  ├─ST91000640NS_00AJ142_00AJ145IBM_9XG9WE5R1 253:5    0 931.5G  0 part  
  └─ST91000640NS_00AJ142_00AJ145IBM_9XG9WE5R9 253:7    0     8M  0 part  
sdb                                             8:16   0 931.5G  0 disk  
└─ST91000640NS_9XG6KFS5                       253:3    0 931.5G  0 mpath 
  ├─ST91000640NS_9XG6KFS5p1                   253:11   0 931.5G  0 part  
  └─ST91000640NS_9XG6KFS5p9                   253:12   0     8M  0 part  
sdc                                             8:32   0 931.5G  0 disk  
└─ST1000NX0423_S4702HQ1                       253:4    0 931.5G  0 mpath 
  ├─ST1000NX0423_S4702HQ1p1                   253:8    0 931.5G  0 part  
  └─ST1000NX0423_S4702HQ1p9                   253:9    0     8M  0 part  
sdd                                             8:48   0 931.5G  0 disk  
└─ST91000640NS_9XG916G1                       253:6    0 931.5G  0 mpath 
sde                                             8:64   0 931.5G  0 disk  
└─ST1000NX0313_S4714LHN                       253:10   0 931.5G  0 mpath 
  ├─ST1000NX0313_S4714LHN1                    253:13   0 931.5G  0 part  
  └─ST1000NX0313_S4714LHN9                    253:14   0     8M  0 part  
sdf                                             8:80   0 931.5G  0 disk  
├─sdf1                                          8:81   0     4G  0 part  /boot
└─sdf2                                          8:82   0   916G  0 part  
  ├─cl-root                                   253:0    0   900G  0 lvm   /
  └─cl-swap                                   253:1    0    16G  0 lvm   [SWAP]
[root@beast by-id]# 

[root@beast by-id]# zpool status
  pool: data
 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: none requested
config:

    NAME                                           STATE     READ WRITE CKSUM
    data                                           DEGRADED     0     0     0
      raidz1-0                                     DEGRADED     0     0     0
        ST91000640NS_00AJ142_00AJ145IBM_9XG9WE5R1  ONLINE       0     0     0
        ST91000640NS_9XG6KFS5                      ONLINE       0     0     0
        ST1000NX0423_S4702HQ1                      ONLINE       0     0     0
        7469149506902765747                        OFFLINE      0     0     0  was /dev/disk/by-id/ata-ST91000640NS_9XG4167A-part1
        ST1000NX0313_S4714LHN1                     ONLINE       0     0     0

errors: No known data errors
[root@beast by-id]# 


答案1

我可以通过删除多路径签名来添加驱动器。

我执行了“multipath -ll”来获取所有签名的列表,然后执行了 multipath -f {MULTIPATH NAME}”,然后能够执行 zpool replace 将驱动器添加回 zpool。

答案2

回答晚了,但也许对其他人有用......

当 ZFS 报告“驱动器正在使用中”时,这意味着 ZFS 无法独占打开所需的块设备。它通常取决于内核是否为另一个存储组件打开了驱动器/块设备,例如(但不限于):

  • 姆拉伊德
  • 多路径
  • lvm

由于这些内置组件在启动阶段早期被激活(通常在预根环境等中dracut),当插入 ZFS 内核模块并导入池时,他们发现驱动器/blockdev 已经很忙 - 因此出现错误消息。

要解决这个问题,通常必须停用有问题的服务或将设备列入黑名单。有时还需要删除任何旧签名(即:跳过 mdraid 自动激活)。

相关内容