我从两个磁盘创建了一个 ZFS 镜像。然后,在不导出创建的池的情况下,我将其中一个磁盘移至另一个系统。如何从另一个系统上的镜像子磁盘中恢复数据?
我使用 zdb 命令获取有关池的信息,以下是输出:
zdb -l sde
------------------------------------
LABEL 0
------------------------------------
version: 5000
name: 'mypool'
state: 2
txg: 121
pool_guid: 12279094248801560314
errata: 0
hostname: 'dse1051'
top_guid: 5698356755932484628
guid: 8107190423262889178
vdev_children: 1
vdev_tree:
type: 'mirror'
id: 0
guid: 5698356755932484628
metaslab_array: 256
metaslab_shift: 27
ashift: 9
asize: 26828341248
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 12590988309290499730
path: '/dev/sde1'
whole_disk: 1
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 8107190423262889178
path: '/dev/sdf1'
whole_disk: 1
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
labels = 0 1 2 3
我使用了命令
zpool import mypool
我也使用了池指南,但我总是得到:no such pool available
也state: 2
意味着游泳池已降级,使用该命令后zpool import -D
我得到了以下输出:
pool: mypool
id: 12279094248801560314
state: DEGRADED (DESTROYED)
status: One or more devices contains corrupted data.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
config:
mypool DEGRADED
mirror-0 DEGRADED
sde FAULTED corrupted data
sde ONLINE
不幸的是,我仍然无法导入该池。
答案1
遗漏的技巧是:使用后,zpool import -D
我们zpool import -D mypool
不应该只使用zpool import mypool