tan*_*ngo 4 zfs zpool zfsonlinux
我有一个 zpool 现在在断电重新启动服务器和设备名称后显示为 FAULTED 状态。我知道我通过按设备名称添加 vdevs 搞砸了,但不知道它可以在创建和填充池后更改。目前,池正在寻找“/dev/sde”(而不是“/dev/sdc”),“/dev/sde”是根 fs 所在的设备,我不知道如何在不进行任何恢复的情况下进行恢复更糟糕。
希望有一种方法可以简单地重新配置 zpool 以使用“sdc”,以便能够使用“by-id”命名导出和重新导入,以避免将来发生这种情况。
root@boxey:~# zpool status
pool: data
state: FAULTED
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
data UNAVAIL 0 0 0 insufficient replicas
raidz1-0 UNAVAIL 0 0 0 insufficient replicas
sda ONLINE 0 0 0
sde UNAVAIL 0 0 0
sdd FAULTED 0 0 0 corrupted data
sdb FAULTED 0 0 0 corrupted data
root@boxey:~# lsblk --output=NAME,FSTYPE,LABEL,SIZE,UUID
NAME FSTYPE LABEL SIZE UUID
sda 2.7T
??sda1 zfs_member data 2.7T 166412156792699288
??sda9 8M
sdb 2.7T
??sdb1 zfs_member data 2.7T 166412156792699288
??sdb9 8M
sdc 2.7T
??sdc1 zfs_member data 2.7T 166412156792699288
??sdc9 8M
sdd 2.7T
??sdd1 zfs_member data 2.7T 166412156792699288
??sdd9 8M
sde 55.9G
??sde1 ext4 53.6G f2d9733a-846d-48c2-bb63-c7f4e0345ad5
??sde2 1K
??sde5 swap 2.3G 6c34cadd-db42-4e14-a647-733e021c018e
root@boxey:~# zpool export -f data
cannot export 'data': one or more devices is currently unavailable
root@boxey:~# zdb
data:
version: 5000
name: 'data'
state: 0
txg: 23300202
pool_guid: 166412156792699288
errata: 0
hostid: 8323329
hostname: 'boxey'
com.delphix:has_per_vdev_zaps
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 166412156792699288
children[0]:
type: 'raidz'
id: 0
guid: 1294813595973345307
nparity: 1
metaslab_array: 34
metaslab_shift: 36
ashift: 12
asize: 12002313371648
is_log: 0
create_txg: 4
com.delphix:vdev_zap_top: 39
children[0]:
type: 'disk'
id: 0
guid: 4873892069497714664
path: '/dev/sda1'
whole_disk: 1
DTL: 101
create_txg: 4
com.delphix:vdev_zap_leaf: 40
children[1]:
type: 'disk'
id: 1
guid: 16241503886070383904
path: '/dev/sde1'
whole_disk: 1
DTL: 100
create_txg: 4
com.delphix:vdev_zap_leaf: 41
children[2]:
type: 'disk'
id: 2
guid: 1910545688695459106
path: '/dev/sdd1'
whole_disk: 1
DTL: 99
create_txg: 4
com.delphix:vdev_zap_leaf: 42
children[3]:
type: 'disk'
id: 3
guid: 2766829802450425996
path: '/dev/sdb1'
whole_disk: 1
DTL: 98
create_txg: 4
com.delphix:vdev_zap_leaf: 43
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
Run Code Online (Sandbox Code Playgroud)
如果问题仅与设备名称有关,您可以通过发出以下命令重新导入具有稳定名称的池:
zpool import data -d /dev/disk/by-id/
但是,您有两个带有 的磁盘FAULTED/corrupted data,这让我认为您对数据本身有些混乱,而不是“仅”使用真实设备名称。
请尝试上面建议的命令并共享任何其他输出。
编辑: OP 评论如下:
zpool import data -d /dev/disks/by-id/ 无法导入“数据”:具有该名称的池已存在,请使用“zpool import <pool | id> ' 给它一个新名字
root@boxey:~# zpool 导入数据 data2 -t 无法导入“数据”:没有这样的池可用
这意味着FAULTED在正常池操作期间(由系统)发现的vdev。请执行以下操作:
/etc/zfs/zpool.cachezpool status 在尝试任何导入之前显示输出zpool status显示未导入池,请尝试发出zpool import data -d /dev/disk/by-id/