我是软件工程师,最近我构建了我的Linux盒,并想探索更多的sys类型的任务。我已经探索和阅读了很多关于ZFS的内容,但是我变得更加困惑,因为每一篇文章都有不同的描述。
一切正常工作,但我不知道ZFS引擎是如何计算空格和类似命令的,这让我很困惑。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 8.0K 16G 1% /dev/shm
tmpfs 16G 122M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/centos_b4--2e--99--49--d4--6d-root 50G 7.8G 43G 16% /
/dev/nvme0n1p2 1014M 189M 826M 19% /boot
/dev/nvme0n1p1 200M 12M 189M 6% /boot/efi
/dev/mapper/centos_b4--2e--99--49--d4--6d-home 399G 122M 399G 1% /home
mypool 9.5T 256K 9.5T 1% /mypool
mypool/data 11T 833G 9.5T 8% /mypool/data
tmpfs 3.2G 0 3.2G 0% /run/user/1000$ zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
mypool 14.5T 1.12T 13.4T - - 0% 7% 1.00x ONLINE -$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
mypool 834G 9.42T 145K /mypool
mypool/data 834G 9.42T 834G /mypool/data$ zpool status mypool
pool: mypool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
mypool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sda ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0更令人困惑的是,与不同的ZFS存储计算器的答案不同:


发布于 2020-04-06 22:29:31
ZPOOL是大气泡,然后ZFS可以是多个内部气泡,或者在您的情况下,可以只是一个气泡。
当/usr/sbin/zfs list列出.6TB池时,它只是报告所有zfs的总和(例如,如果您有第二个zfs,mypool/data 2,并且碰巧使用了.6TB,那么mypool行将显示使用的10 to,mypool /数据仍然使用9.4TB );并且,您的/usr/sbin/zpool list将不受影响,仍然显示14.5T大小。
内部气泡不一定总是与外部气泡大小相同;zfs将尽可能增长,除非您打开配额;即限制这些内部气泡的能力;注意,您也可以移动或移除这个上限)
/usr/sbin/zfs get quota,logicalused mypool/data
sudo zfs set quota=10T mypool/data
sudo zfs set quota=12T mypool/data
sudo zfs set quota=10T mypool/data
/usr/sbin/zfs get quota,logicalused mypool/data
sudo zfs set quota=none mypool/data
/usr/sbin/zfs get quota,logicalused mypool/data发布于 2020-06-14 16:16:33
有关zpool list和zfs list之间的区别,请参见this answer。现在,进入您的特定池和您正在看到的容量编号。
首先,空间使用的逻辑和物理观点有什么区别?物理视图(zpool list)是最简单的-它告诉您当前有多少字节存储在磁盘上。但是,这很少是您真正想要的数字,因为它没有考虑到管理费用,也没有告诉您数据使用的来源,逻辑视图(zfs list)确实知道这一点。让我们一次一个地把它们分解:
zpool list报告的总容量比zfs list报告的容量大4/3。还有其他一些开销,比如ZFS存储文件系统元数据、使RAID条带的小片不可分配等等,zfs list也知道这些开销,并将它们从“可用”数字中减去。mypool/data的所有存储使用也被计算在它的父mypool的使用中。如果您想限制父文件系统下所有文件系统使用的存储空间,这是很有用的,因为您可以在父文件系统上设置一个配额,并且所有子文件系统的总和必须保持较低的水平,但值得注意的是,这也将减少您看到的AVAIL数量(创建一个保留,与配额相反)。当您开始在系统上创建快照和克隆时,这也会变得更加棘手,因为多个文件系统/快照可以同时使用相同的数据。快照使用数据的两个主要视图是“我的快照引用了什么数据?”和“我的快照唯一引用的数据是什么?”我鼓励您阅读zfs的zfs页面,以获得更多关于ZFS报告容量使用情况的方法的详细信息。最后,忽略df -h输出-它只是重复ZFS可以向您报告的内容,我永远不记得它是告诉您在逻辑层还是物理层中使用存储。在您的示例中,它似乎告诉您逻辑总空间可用和逻辑引用数据,但正如我前面所说,如果您开始使用更高级的特性,这些值就会变得很棘手,所以最好是将zfs list用于几乎所有目的,这样就可以更清楚地解释给定的值。
https://stackoverflow.com/questions/60239260
复制相似问题