Zfs

是否可以將數據集轉換為稀疏卷(精簡配置)?

  • January 25, 2018

我創建了 ZFS 數據集並在其中安裝了虛擬伺服器。突然間,我的 ZFS 卷可用空間消失了,但並非每個數據集中都使用了所有空間。我想介紹精簡配置(使用 ZFS 稀疏卷)。

是否可以將數據集轉換為稀疏捲而不刪除它們?謝謝。

據我所知,不可能將現有的 zvol 轉換為稀疏的;一開始就必須將它們創建為稀疏的。

但是,您可以創建一個新的稀疏 zvol,並zfs send從舊zfs recv的到新的,然後交換它們的名稱。

我認為接受的答案實際上並不正確,但我沒有足夠的代表發表評論。

假設當 OP 說“數據集”時,它們的意思是“ZFS 卷”(或 ZVOL)。

精簡配置(又名稀疏)ZVOL 和正常 ZVOL 之間的唯一區別是是否通過refreservation屬性保留完整大小,例如

# zfs create -V 10G tank/test_full
# zfs create -s -V 10G tank/test_sparse
# zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full
NAME               USED  USEDDS  USEDREFRESERV  LUSED  LREFER  REFRESERV
tank/test_full    10.3G    136K          10.3G    30K     30K      10.3G
tank/test_sparse   136K    136K              0    30K     30K       none

因此,您可以通過更改現有 ZVOL 將現有 ZVOL 轉換為稀疏,refreservation例如

# zfs set refreservation=none tank/test_full
# zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full
NAME               USED  USEDDS  USEDREFRESERV  LUSED  LREFER  REFRESERV
tank/test_full     136K    136K              0    30K     30K       none
tank/test_sparse   136K    136K              0    30K     30K       none

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