zpool忘记池中的所有数据设备:如何使它们再次联机?

我的Debian服务器在Linux上运行ZFS。 今天,由于软件升级,我不得不重启两次。 第一次重启是因为ZFS从0.6.4-1.2-1更新到0.6.5.2-2-wheezy,当我之后访问我的主目录在池中时,这很好。 最后一次重新启动后,zpool无法导入池:

# zpool import pool: storage id: 4490463110120864267 state: FAULTED status: The pool metadata is corrupted. action: The pool cannot be imported due to damaged devices or data. see: http://zfsonlinux.org/msg/ZFS-8000-72 config: storage FAULTED corrupted data logs sda3 ONLINE # zpool import storage cannot import 'storage': I/O error Destroy and re-create the pool from a backup source. # zpool import -F storage cannot import 'storage': one or more devices is currently unavailable 

我错过了我的完整池,应该这样读:

  storage mirror scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1 scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1 

我如何告诉zpool使用数据分区? 我害怕试图将磁盘附加到这个池或一个新的池,因为我担心磁盘resp。 他们的元数据将被清除。

编辑/更新:

  • 也许很重要:重新读取apt的history.log和wtmp之后,我不确定是否在第一次ZFS更新相关的重新引导之后访问了我的主目录。 同时我试图回到以前的版本,但除了最新的版本,我找不到任何ZFS软件包。
  • 我有两个用于数据(sdb,sdc),GPT分区的HDD,并且使用/ dev / disk / by-id将这两个主分区设置为ZFS上的镜像池。 Device sda是​​一个包含Debian安装和一些VM空间的SSD,在单独的分区/ dev / sda3中是SLOG / ZIL。 所有磁盘都直接连接到主板。
  • 上面的zfsonlinx-URL也提示“zpool clear -F storage”,它回答“没有池可用”。

鉴于事实,在正常的重新启动期间zpool损失发生,我希望至lesszpool出口发生。 即使它已经closures不干净,我更喜欢做副本的救援工作。 所以我给我的系统添加了一个大硬盘(作为设备sdb添加 – 感谢udev),并使用两个与发生故障的驱动器上zfs分区大小相同的分区进行格式化。 因为这是一个镜像池,我将两个旧分区复制到新分区:

 dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1 /dev/sdb1 bs=104800 dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1 /dev/sdb2 bs=104800 

现在我有一个两个相同的镜子系统。

 # zpool import pool: storage id: 4490463110120864267 state: ONLINE status: Some supported features are not enabled on the pool. action: The pool can be imported using its name or numeric identifier, though some features will not be available without an explicit zpool upgrade'. config: storage ONLINE mirror-0 ONLINE sdb1 ONLINE ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T2194187-part1 ONLINE logs sda3 ONLINE # zpool import storage # 

万岁!

我同时备份数据两次,恢复到一个完整的新的zpool进行中。

由于您在原始池创build中指定了/ dev / disk / by-id,池可能无法find您的磁盘。 请注意您的slog设备如何识别的

有一个池导入标志-d ,它允许您将导入过程指向特定的目录以查询设备。 好的build议在这里 。

尝试:

 zpool import -F -d /dev/disk/by-id storage