首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZFS列表与ZFS池

ZFS列表与ZFS池
EN

Stack Overflow用户
提问于 2020-02-15 13:37:52
回答 2查看 986关注 0票数 3

我是软件工程师,最近我构建了我的Linux盒,并想探索更多的sys类型的任务。我已经探索和阅读了很多关于ZFS的内容,但是我变得更加困惑,因为每一篇文章都有不同的描述。

一切正常工作,但我不知道ZFS引擎是如何计算空格和类似命令的,这让我很困惑。

代码语言:javascript
复制
$ 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
代码语言:javascript
复制
$ 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  -
代码语言:javascript
复制
$ zfs list

NAME                     USED  AVAIL     REFER  MOUNTPOINT
mypool        834G  9.42T      145K  /mypool
mypool/data   834G  9.42T      834G  /mypool/data
代码语言:javascript
复制
$ 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存储计算器的答案不同:

EN

回答 2

Stack Overflow用户

发布于 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将尽可能增长,除非您打开配额;即限制这些内部气泡的能力;注意,您也可以移动或移除这个上限)

代码语言:javascript
复制
/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
票数 2
EN

Stack Overflow用户

发布于 2020-06-14 16:16:33

有关zpool listzfs list之间的区别,请参见this answer。现在,进入您的特定池和您正在看到的容量编号。

首先,空间使用的逻辑和物理观点有什么区别?物理视图(zpool list)是最简单的-它告诉您当前有多少字节存储在磁盘上。但是,这很少是您真正想要的数字,因为它没有考虑到管理费用,也没有告诉您数据使用的来源,逻辑视图(zfs list)确实知道这一点。让我们一次一个地把它们分解:

  • 开销:当您创建一个RAIDZ1池时,它大约意味着池中的4个磁盘中的一个被保留用于存储奇偶校验数据,因此如果磁盘死了,您仍然可以在一个新磁盘中使用池/交换池并修复该池。这就是为什么计算器告诉您12 4TiB将在池中可用(在4个磁盘中只有3个可以存储数据;3*4TiB =12 4TiB)。这也是为什么zpool list报告的总容量比zfs list报告的容量大4/3。还有其他一些开销,比如ZFS存储文件系统元数据、使RAID条带的小片不可分配等等,zfs list也知道这些开销,并将它们从“可用”数字中减去。
  • 的用法来自:在您的情况下,这仍然非常容易:mypool/data的所有存储使用也被计算在它的父mypool的使用中。如果您想限制父文件系统下所有文件系统使用的存储空间,这是很有用的,因为您可以在父文件系统上设置一个配额,并且所有子文件系统的总和必须保持较低的水平,但值得注意的是,这也将减少您看到的AVAIL数量(创建一个保留,与配额相反)。当您开始在系统上创建快照和克隆时,这也会变得更加棘手,因为多个文件系统/快照可以同时使用相同的数据。快照使用数据的两个主要视图是“我的快照引用了什么数据?”和“我的快照唯一引用的数据是什么?”我鼓励您阅读zfszfs页面,以获得更多关于ZFS报告容量使用情况的方法的详细信息。

最后,忽略df -h输出-它只是重复ZFS可以向您报告的内容,我永远不记得它是告诉您在逻辑层还是物理层中使用存储。在您的示例中,它似乎告诉您逻辑总空间可用和逻辑引用数据,但正如我前面所说,如果您开始使用更高级的特性,这些值就会变得很棘手,所以最好是将zfs list用于几乎所有目的,这样就可以更清楚地解释给定的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60239260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档