Zfs
儘管剩餘空間足夠,但由於“空間不足”而無法創建 zvol
在我的一台伺服器上,我正在執行 ZFS - 兩年內沒有任何問題。但是,今天我想創建一個額外的 zvol,這只會導致一條錯誤消息,指出我們“空間不足”。奇怪的是,絕對有足夠的空間:
root@cerberus:/vm-images# zfs list -r -t all NAME USED AVAIL REFER MOUNTPOINT rpool 956G 842G 96K none rpool/stretch 926G 842G 926G / rpool/swap 29.8G 869G 2.82G - root@cerberus:/vm-images# zfs create -b 512 -o checksum=on -o compression=off -o primarycache=none -o redundant_metadata=all -o secondarycache=none -o logbias=latency -o snapdev=hidden -o sync=standard -V 600G rpool/vm-garak cannot create 'rpool/vm-garak': out of space
所以我們有 842 GB 的可用空間,但它拒絕創建大小為 600 GB 的 zvol。
知道我做錯了什麼嗎?
編輯1(根據@Jim L.的要求):
沒有使用保留:
root@cerberus:/vm-images# zfs list -o name,reservation -r NAME RESERV rpool none rpool/stretch none rpool/swap none
使用該
-b
選項似乎會增加 ZVOL 佔用的空間,與指定的塊大小成反比。在-b 512
我看到大約 50% 的大小膨脹,所以你的 600G ZVOL 需要大約。900G 可用空間。我將在我的筆記型電腦上使用一個較小的範例,它的可用空間要少得多,但比率相似
-b 512
:# zfs list NAME USED AVAIL REFER MOUNTPOINT tank 191G 38.0G 88K none (...snip...) # zfs create -b 512 -V 30g tank/zvol cannot create 'tank/zvol': out of space # zfs create -b 512 -V 24g tank/zvol # zfs list tank/zvol NAME USED AVAIL REFER MOUNTPOINT tank/zvol 36.0G 38.0G 56K -
ZVOL
-b 512
佔用的空間比它提供的儲存空間多 50%。但-b 128k
例如,成本要低得多:# zfs destroy tank/zvol # zfs create -b 128k -V 36g tank/zvol # zfs list tank/zvol NAME USED AVAIL REFER MOUNTPOINT tank/zvol 36.1G 38.0G 56K -