ZFS 池報告缺少設備,但並未失去
我在 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
成功了,現在我的磁碟正在重新同步。結案。