ChrisKim
Do not go gentle into that good night.
颢天

Proxmox VE 磁盘大小规则与换算

在使用 PVE 时我经常发现不同页面显示的磁盘大小相差甚远,并且购买磁盘时标称的大小、磁盘在系统内的实际大小、磁盘格式化后的大小也不尽相同。以前我权当作单位换算问题没有细究,今天突然想起这事研究了下,也再此记录一下我发现的规则吧。

为了避免混乱,本文所有的数据大小单位均区分十进制与二进制(如 MiB 与 MB).

1 厂商标称 和 系统显示

这个知识点想必有计算机基础的都已经知道了,储存厂商的标称大小均为十进制,而系统显示均为二进制。下面举例解释:

  • 对于一块厂商标称的 2TB 硬盘,它使用十进制单位 TB,它能储存 2 × 10¹²B 的数据。
  • 对于操作系统,它使用二进制单位 TiB,2TB = 2 × 10¹²B ≈ 1.82 × 2⁴⁰ = 1.82TiB,因此这块硬盘显示为 1.82TiB.

这个规律 Windows / Linux 通用,我们就用 Windows 进行验证:

https://assets.zouht.com/img/blog/3860-01.webp
https://assets.zouht.com/img/blog/3860-02.webp

但是,除此之外还有一个细节经常被忽略:即使是厂商标称的 2TB 也可能不同。厂商标称的 2TB 有时候指的是 2000GB,而有些时候指的是 2048GB。

这个没有什么具体的规律,不同厂商的标注习惯不同,甚至同一厂商的不同产品也会有区别。例如下面是致钛的 TiPlus7100 2T,它的实际大小是 2048GB,而上面樊想 S790 的 2TB 实际大小是 2000GB.

https://assets.zouht.com/img/blog/3860-03.webp

更加复杂的是,大家仔细观察上面的标称大小会发现它们都不是整数(2000.3GB, 2048.4GB),因为几乎所有厂商的硬盘都不是正好大小的,都多多少少有所余量,底层原因可能和主控的保留策略有关吧。

2 PVE 各页面

这一点挺让人不解的,在 PVE 的不同页面,磁盘大小使用的单位是不同的。在 PVE 里:

  • 使用十进制单位的页面:储存监控图表,节点磁盘列表。
  • 使用二进制单位的页面:与容器、虚拟机有关的任何页面。

但真要仔细看的话,你会发现实际上 PVE 页面的单位还挺规范的。不管是创建磁盘、扩容磁盘还是虚拟机监控,确实标的就是二进制单位 MiB, GiB 等,也没有混用单位。但是我仍然觉得在整个系统里统一使用一套单位会更好。

https://assets.zouht.com/img/blog/3860-04.webp

那么验算一下,我给虚拟机创建了一块 3TiB 的磁盘,这块磁盘会在储存页面里显示为多大?答案是 3.298 ≈ 3.30TB.(就是这点,当时让我很迷惑,还以为是什么 bug 呢)

3 磁盘大小和文件系统容量

平时我们还经常忽略一点,就是各种文件系统实际上都是会牺牲一点容量的,损失的容量一般在 1~5% 这个范围内。

例如,我给 NAS 虚拟机直通了一块标称 1T 实际 1024.2GB 的硬盘,经过计算应该是等于 931.5GiB,但是把 NAS 的 Samba 挂载到 Windows 上一看,怎么只有 915.8GiB 了?这个实际上就是文件系统损失的大小。我这块硬盘使用的 ext4 文件系统,根据计算损失了 1.69% 的空间,符合 ext4 的特性。

实际上每种文件系统都会损失空间,例如我用了 3 块标称 2T 实际 2000.4GB 的硬盘做 RAID-Z1,根据计算这个 zfs 储存池的可用大小应该是 (3 – 1) * 2000.4GB = 4000.8GB ≈ 4TB,但在 PVE 的储存页面却显示这个 zfs 池只可用 3.87TB,损失了 3.2% 的空间,这个就是 zfs 文件系统导致的。

4 总结

对于我这种用 PVE 平台做 NAS 的用户,还使用了 ZFS 做阵列,就会“惊喜”得发现每一层次的磁盘容量都不相同。最后来做一下总结:

  • 硬盘硬件:记得做 GB 到 GiB 的转换,另外注意厂商的 TB 到底是 1000GB 还是 1024GB.
  • ZFS 池:要注意到 zfs 文件系统会损失 1~5% 的容量。
  • PVE 页面:要注意给 NAS 虚拟机加磁盘时用的是 GiB 单位,而磁盘监控页面用的 GB 单位。
  • NAS 虚拟机:要注意把加进来的磁盘格式化为 ext4 文件系统还要损失 1~5% 的容量。
  • Samba 挂载:这一步终于是一致了(但 Windows 的约等于用的是去尾法而不是四舍五入,这点可能会造成 1GB 的显示差异)
本文链接:https://www.zouht.com/3860.html
本文使用:CC BY-NC-SA 4.0 许可
# # # #
首页      随笔      Proxmox VE 磁盘大小规则与换算

发表回复

textsms
account_circle
email

  • 这个我学过!
    才知道GiB和GB不是一个东西哈哈,我一直以为是一样的

    3 天前 回复

颢天

Proxmox VE 磁盘大小规则与换算
在使用 PVE 时我经常发现不同页面显示的磁盘大小相差甚远,并且购买磁盘时标称的大小、磁盘在系统内的实际大小、磁盘格式化后的大小也不尽相同。以前我权当作单位换算问题没有细究,今天…
扫描二维码继续阅读
2024-12-22