Debian

ZFS 池報告缺少設備,但並未失去

  • January 9, 2020

我在 linux 上執行最新的 Debian 7.7 x86 和 ZFS

把我的電腦搬到另一個房間後。如果我做一個 zpool status 我得到這個狀態:

 pool: solaris
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid.  Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: none requested
config:

NAME                                            STATE     READ WRITE CKSUM
solaris                                         DEGRADED     0     0     0
 raidz1-0                                      DEGRADED     0     0     0
   11552884637030026506                        UNAVAIL      0     0     0  was /dev/disk/by-id/ata-Hitachi_HDS723020BLA642_MN1221F308BR3D-part1
   ata-Hitachi_HDS723020BLA642_MN1221F308D55D  ONLINE       0     0     0
   ata-Hitachi_HDS723020BLA642_MN1220F30N4JED  ONLINE       0     0     0
   ata-Hitachi_HDS723020BLA642_MN1220F30N4B2D  ONLINE       0     0     0
   ata-Hitachi_HDS723020BLA642_MN1220F30JBJ8D  ONLINE       0     0     0

它說不可用的磁碟是 /dev/sdb1 經過一番調查,我發現 ata-Hitachi_HDS723020BLA642_MN1221F308BR3D-part1 只是對 /dev/sdb1 微笑,它確實存在:

lrwxrwxrwx 1 root root 10 Jan  3 14:49 /dev/disk/by-id/ata-Hitachi_HDS723020BLA642_MN1221F308BR3D-part1 -> ../../sdb1

如果我檢查智能狀態,例如:

# smartctl -H /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-4-amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

磁碟在那裡。我可以在它上面做 fdisk ,以及其他一切。

如果我嘗試將其分離,例如:

zpool detach solaris 11552884637030026506
cannot detach 11552884637030026506: only applicable to mirror and replacing vdevs

我還嘗試了 /dev/sdb /dev/sdb1 和長的 ID 名稱。一直都是同樣的錯誤。

我也無法替換它,或者其他任何東西。我什至嘗試關閉並再次打開電腦,但無濟於事。

除非我真的自己更換硬碟,否則我看不到任何解決此問題的方法。

想法?

$$ update $$猶豫不決

# blkid 
/dev/mapper/q-swap_1: UUID="9e611158-5cbe-45d7-9abb-11f3ea6c7c15" TYPE="swap" 
/dev/sda5: UUID="OeR8Fg-sj0s-H8Yb-32oy-8nKP-c7Ga-u3lOAf" TYPE="LVM2_member" 
/dev/sdb1: UUID="a515e58f-1e03-46c7-767a-e8328ac945a1" UUID_SUB="7ceeedea-aaee-77f4-d66d-4be020930684" LABEL="q.heima.net:0" TYPE="linux_raid_member" 
/dev/sdf1: LABEL="solaris" UUID="2024677860951158806" UUID_SUB="9314525646988684217" TYPE="zfs_member" 
/dev/sda1: UUID="6dfd5546-00ca-43e1-bdb7-b8deff84c108" TYPE="ext2" 
/dev/sdd1: LABEL="solaris" UUID="2024677860951158806" UUID_SUB="1776290389972032936" TYPE="zfs_member" 
/dev/sdc1: LABEL="solaris" UUID="2024677860951158806" UUID_SUB="2569788348225190974" TYPE="zfs_member" 
/dev/sde1: LABEL="solaris" UUID="2024677860951158806" UUID_SUB="10515322564962014006" TYPE="zfs_member" 
/dev/mapper/q-root: UUID="07ebd258-840d-4bc2-9540-657074874067" TYPE="ext4" 

禁用 mdadm 並重新啟動後,此問題又回來了不確定為什麼 sdb 被標記為 linux_raid_member。如何清除?

只需執行zpool clear solaris然後發布結果zpool status -v

很高興知道所涉及的硬體以及您正在使用的控制器。


編輯

查看您的blkid輸出,您有以前的 Linux 軟體 RAID 的殘餘物。你需要mdadm --zero-superblock /dev/sdb1清除它。

在搜尋了一天多的網際網路和伺服器故障和堆棧溢出後,沒有找到任何東西。我問了這個問題,答案出現在右側的相關問題中。所以我在這個問題上找到了答案:

升級的 Ubuntu,一個 zpool 中的所有驅動器都標記為不可用

由於某種原因,madam 在 start 中執行,並啟動 md0,即使 md0 不包含任何磁碟(如錯誤所示),它確實會導致此錯誤。

所以一個簡單的

mdadm --stop /dev/md0

成功了,現在我的磁碟正在重新同步。結案。

引用自:https://serverfault.com/questions/656073