注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

博客新家:https://postgres.fun/

 
 
 

日志

 
 

ZFS: 文件系统空间使用率的疑惑  

2014-07-09 17:00:43|  分类: FreeBSD/ZFS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 
      刚开始使用 ZFS 时,对 ZFS 文件系统的使用率比较疑惑, 发现初始时每个已 mount 的 zfs 文件系统的 Size( df -Th 输出 ) 都一样.     
    
      zfs 对文件系统的处理有所不同,  每个数据集(dataset)都能使用整个池子的空间. 每个 dataset  的可使用最大值为所在池子剩余空间大小, 这和 LVM 的理念不同, 下面通过实验测试下:

--1 创建文件

dd if=/dev/zero of=/tmp/file1 bs=1G count=1
dd if=/dev/zero of=/tmp/file2 bs=1G count=1

备注: 预先分配大小的文件也可用来创建 ZFS, 但不推荐使用, 这里仅用来做测试.

--2 创建 zpool

root@francs:~ # zpool create zp1 /tmp/file1 /tmp/file2

root@francs:/data1 # zpool status zp1
  pool: zp1
 state: ONLINE
  scan: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        zp1           ONLINE       0     0     0
          /tmp/file1  ONLINE       0     0     0
          /tmp/file2  ONLINE       0     0     0

备注:创建一个大小为 2.0 GB 的池子.         
          
--3 创建四个 dataset

root@francs:~ # zfs create -o mountpoint=/data1 zp1/data1
root@francs:~ # zfs create -o mountpoint=/data2 zp1/data2
root@francs:~ # zfs create -o mountpoint=/data3 zp1/data3
root@francs:~ # zfs create -o mountpoint=/data4 zp1/data4


--4 查看文件系统

root@francs:~ # df -Th
Filesystem          Type     Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default  zfs       16G    3.4G     12G    22%    /
devfs               devfs    1.0K    1.0K      0B   100%    /dev
zroot/tmp           zfs       12G    704K     12G     0%    /tmp
zroot/usr/home      zfs       12G    156K     12G     0%    /usr/home
zroot/usr/ports     zfs       13G    874M     12G     7%    /usr/ports
zroot/usr/src       zfs       13G    545M     12G     4%    /usr/src
zroot/var           zfs       13G    636M     12G     5%    /var
zroot/var/crash     zfs       12G    148K     12G     0%    /var/crash
zroot/var/log       zfs       12G    384K     12G     0%    /var/log
zroot/var/mail      zfs       12G    152K     12G     0%    /var/mail
zroot/var/tmp       zfs       12G    152K     12G     0%    /var/tmp
zp1                 zfs      2.0G     31K    2.0G     0%    /zp1
zp1/data1           zfs      2.0G     31K    2.0G     0%    /data1
zp1/data2           zfs      2.0G     31K    2.0G     0%    /data2
zp1/data3           zfs      2.0G     31K    2.0G     0%    /data3
zp1/data4           zfs      2.0G     31K    2.0G     0%    /data4

备注: 可以看到 /data1 ,/data2, /data3,/data4 四个已 mount 的目录. 每个目录的 Size 都为 2.0 GB.

--5 向 /data1 目录写入数据

root@francs:/data1 # dd if=/dev/zero of=/data1/file_test.img bs=100M count=3
3+0 records in
3+0 records out
314572800 bytes transferred in 37.706116 secs (8342753 bytes/sec)

备注: 在 /data1 目录里写入一个 300 MB 的文件.

--6 再次查看文件系统使用率

root@francs:/data1 # df -Th
Filesystem          Type     Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default  zfs       16G    3.4G     12G    22%    /
devfs               devfs    1.0K    1.0K      0B   100%    /dev
zroot/tmp           zfs       12G    2.1M     12G     0%    /tmp
zroot/usr/home      zfs       12G    156K     12G     0%    /usr/home
zroot/usr/ports     zfs       13G    874M     12G     7%    /usr/ports
zroot/usr/src       zfs       13G    545M     12G     4%    /usr/src
zroot/var           zfs       13G    636M     12G     5%    /var
zroot/var/crash     zfs       12G    148K     12G     0%    /var/crash
zroot/var/log       zfs       12G    384K     12G     0%    /var/log
zroot/var/mail      zfs       12G    152K     12G     0%    /var/mail
zroot/var/tmp       zfs       12G    152K     12G     0%    /var/tmp
zp1                 zfs      1.7G     31K    1.7G     0%    /zp1
zp1/data1           zfs      2.0G    300M    1.7G    15%    /data1
zp1/data2           zfs      1.7G     31K    1.7G     0%    /data2
zp1/data3           zfs      1.7G     31K    1.7G     0%    /data3
zp1/data4           zfs      1.7G     31K    1.7G     0%    /data4

备注:发现 /data2,/data3,/data4 目录的 SIze 都降为 1.7GB , 说明 zfs 文件目录的最大使用 Size 是会变化的, 每一个 zfs 目录都可以使用整个池子的容量.

--7 接着往 /data2 目录写入一个 200M 的文件

root@francs:/data1 # dd if=/dev/zero of=/data2/file_test.img bs=100M count=2
2+0 records in
2+0 records out
209715200 bytes transferred in 19.487790 secs (10761364 bytes/sec)


--8 再次查看文件系统使用率

root@francs:/data1 # df -Th
Filesystem          Type     Size    Used   Avail Capacity  Mounted on
zroot/ROOT/default  zfs       16G    3.4G     12G    22%    /
devfs               devfs    1.0K    1.0K      0B   100%    /dev
zroot/tmp           zfs       12G    2.8M     12G     0%    /tmp
zroot/usr/home      zfs       12G    156K     12G     0%    /usr/home
zroot/usr/ports     zfs       13G    874M     12G     7%    /usr/ports
zroot/usr/src       zfs       13G    545M     12G     4%    /usr/src
zroot/var           zfs       13G    636M     12G     5%    /var
zroot/var/crash     zfs       12G    148K     12G     0%    /var/crash
zroot/var/log       zfs       12G    384K     12G     0%    /var/log
zroot/var/mail      zfs       12G    152K     12G     0%    /var/mail
zroot/var/tmp       zfs       12G    152K     12G     0%    /var/tmp
zp1                 zfs      1.5G     31K    1.5G     0%    /zp1
zp1/data1           zfs      1.8G    300M    1.5G    17%    /data1
zp1/data2           zfs      1.7G    200M    1.5G    12%    /data2
zp1/data3           zfs      1.5G     31K    1.5G     0%    /data3
zp1/data4           zfs      1.5G     31K    1.5G     0%    /data4

备注: 这时就比较清楚了. 池子好比是公共资源, 同一个池子的每一个目录都能使用这些资源, 先用先得。

--9 查看 ZFS 空间使用

root@francs:~ # zpool iostat -v zp1
                 capacity     operations    bandwidth
pool          alloc   free   read  write   read  write
------------  -----  -----  -----  -----  -----  -----
zp1            501M  1.50G      0      2     21  94.8K
  /tmp/file1   251M   765M      0      1     10  47.5K
  /tmp/file2   250M   766M      0      1     11  47.3K
------------  -----  -----  -----  -----  -----  -----

备注: 数据均匀地写入到了文件 /tmp/file1 和 /tmp/file2。
  评论这张
 
阅读(2169)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018