13-8
主機重新安裝後 虛擬機存放在 zfs dataset 裡的東西都不見了
主機重新安裝後 虛擬機存放在 zfs dataset 裡的東西都不見了
這幾天
- 重新安裝Proxmxox VE 主機,用比較新的舊機,是UEFI 的主機板,使用 PVE 6安裝, 這一版的可以支援 zfs 在 UEFI 主機板上開機碟安裝。
- 把第2顆硬碟接上後,以 zpool import zfspoolname 後掛載, 並在 UI 界面上設定原來的 Storage。
- 把備份的虛擬機的設定檔 vmid.conf 也放回原來的位置。
- 理論上這時虛擬機可以馬上啟用,但……
一直失敗,無法啟用,連使用 CLI 命令也一樣。
也檢查了設定檔?查看了硬碟是否滿了?……都正常啊……
- 接著就開始亂槍打鳥,在 CLI 界面上開始亂 cd (切換目錄啦),
突然發現,/.../vz/subvol-216-disk-1/ 目錄底下就只剩下 dev 和一個記不起來名稱的目錄。
天啊!哪A安捏???????
- 東西都不見了,唉……算了,就把 虛擬機的目錄刪除(可以刪除?這不是 zfs dataset 嗎?)
那我再從另一台主機以 zfs send | ssh hostip zfs receive 指令將虛擬機直接 copy 過來(果然主機不能只有一台啊)
- 完成後,終於可以啟動了。
- 但是,還是一樣啊。這時又跳回上面步驟4
再看一次,目錄裡也還是空空如也。
這次學聰明一點,先查看一下
zfs list -t snap|grep subvol-216
/.../vz/subvol-216-disk-1@2019-10-28-14-54-43 20.0M - 751M -
有啊,東西都還在啊……
- 那麼,到底是什麼問題啊!所以,(想一下步驟6可以刪除的 zfs dataset)
原來,這時看到的不是真正的 zfs dataset, 而且因某些順序的關係被建立出來的目錄,
因為有這些目錄,所以,再 zpool import 時裡面相同路徑名稱的 dataset 就沒有被載入,
所以以為在 zfs 硬碟上的dataset 不見了,損毀了。
- 處理方式︰
先將 zfs 的 Storage 移除
這些不常常顯示,而且可以被 rmdir 指令刪除的目錄
--->絕對不是 zfs dataset,那就刪吧
刪完後(記得離開 zfs pool 目錄),
zpool export zfspoolname,
zpool import zfspoolname
如果有顯示那些目錄
zpool import poolname
cannot mount '/poolname/vz': directory is not empty
這時 /poolname/vz 這個目錄及 目錄下的目錄全都刪除(先看一下,都確認是空的)
刪完後再重新掛載一次
再將 zfs 的 Storage 加入
- 太讚了,全部都回來了.
- 虛擬機啟用正常。