如何恢復我的 ZFS 池,它突然離線並報告它“最後被另一個系統使用”?
**tl;博士:**我在具有 16GB ECC 記憶體的伺服器上執行帶有 ZFS 的 FreeBSD 11.2 NAS 伺服器。我發現我的主池消失了。ZFS 可以看到該池,但報告錯誤ZFS-8000-EY和它
cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019
,但是該池從未被另一個系統使用並且nasserver
是目前主機。恐怕我的游泳池已損壞。我應該怎麼做才能嘗試恢復它?我有備份,但它們已經過時了,因為我必須手動進行。我還沒有嘗試跑步zpool import -f tank
,因為我想小心避免讓事情變得更糟。完整問題:
我正在執行帶有 ZFS 的 FreeBSD 11.2 NAS 伺服器。我從假期回來尋找伺服器,但無法訪問 NAS 卷。當我 ssh 進入盒子時,我發現我的人池
tank
不見了:root@nasserver:/home/root # zpool status pool: zroot state: ONLINE status: Some supported features are not enabled on the pool. The pool can still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done, the pool may no longer be accessible by software that does not support the features. See zpool-features(7) for details. scan: scrub repaired 0 in 0h0m with 0 errors on Sat Mar 23 03:01:44 2019 config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 diskid/DISK-XXXXXXXXXXXXXXXXXXX1 ONLINE 0 0 0 diskid/DISK-XXXXXXXXXXXXXXXXXXX2 ONLINE 0 0 0 errors: No known data errors
驅動器似乎可用,我嘗試導入它們,但 ZFS 報告它
cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019
。這很奇怪,因為我從未在另一個系統上使用過這些磁碟,並且報告的主機名是它們所連接的機器的主機名:root@nasserver:/home/root # zpool import pool: tank id: 12345678901234567901 state: ONLINE status: The pool was last accessed by another system. action: The pool can be imported using its name or numeric identifier and the '-f' flag. see: http://illumos.org/msg/ZFS-8000-EY config: tank ONLINE raidz1-0 ONLINE gpt/tank-1 ONLINE gpt/tank-2 ONLINE gpt/tank-3 ONLINE gpt/tank-4 ONLINE root@nasserver:/home/root # zpool import tank cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019 use '-f' to import anyway
恐怕我的游泳池可能已損壞。我有備份,但它們有些過時了。我應該怎麼做才能恢復我的游泳池?
zpool import -f tank
,就像它在錯誤對話框中所說的那樣。這是一個相當少見的錯誤,但我以前見過它發生過(在過去十年中,可能在 100 多台機器上發生過一次或兩次);如果主機名和其他一些魔法似乎
zfs
發生了變化,則不會自動導入池(可能過度)注意這可能不是池所屬的機器。使用-f
來覆蓋這種謹慎,並且噗,這是你的游泳池(它應該在下一次循環中自動導入)。這可能最有可能發生在崩潰或斷電導致系統停機而在停機過程中沒有正確導出池之後。