这篇文章主要介绍“GlusterFS文件占用空间大小显示不统一怎么解决”,在日常操作中,相信很多人在GlusterFS文件占用空间大小显示不统一怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”GlusterFS文件占用空间大小显示不统一怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司专注于企业营销型网站、网站重做改版、二道网站定制设计、自适应品牌网站建设、H5响应式网站、商城开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为二道等各大城市提供网站开发制作服务。
测试环境说明:glusterfs 3.6 replica 2
正常情况下,文件占用空间大小和文件系统的块大小密切相关。
如xfs默认的块大小为4K,那么即便创建一个1字节的文件,也会占用4K空间。
客户fuse挂载,创建小文件是以512字节进行计算,因此,在客户端创建100个小于512字节的小文件,就会显示占用50K空间,显示结果如下:
[root@lab23:/mnt/dzq/test]$ls 0 12 16 2 23 27 30 34 38 41 45 49 52 56 6 63 67 70 74 78 81 85 89 92 96 1 13 17 20 24 28 31 35 39 42 46 5 53 57 60 64 68 71 75 79 82 86 9 93 97 10 14 18 21 25 29 32 36 4 43 47 50 54 58 61 65 69 72 76 8 83 87 90 94 98 11 15 19 22 26 3 33 37 40 44 48 51 55 59 62 66 7 73 77 80 84 88 91 95 99 [root@lab23:/mnt/dzq/test]$ls -lh |head total 50K -rw-r--r-- 1 root root 2 Jan 29 15:33 0 -rw-r--r-- 1 root root 2 Jan 29 15:33 1 -rw-r--r-- 1 root root 3 Jan 29 15:33 10 -rw-r--r-- 1 root root 3 Jan 29 15:33 11 -rw-r--r-- 1 root root 3 Jan 29 15:33 12 -rw-r--r-- 1 root root 3 Jan 29 15:33 13 -rw-r--r-- 1 root root 3 Jan 29 15:33 14 -rw-r--r-- 1 root root 3 Jan 29 15:33 15 -rw-r--r-- 1 root root 3 Jan 29 15:33 16 |
而实际上,其占用的空间并没有这么少,应该按照后台服务器的为准,后台显示结果如下:
[root@lab21:/letv/disk3/test]$ls 0 12 16 2 23 27 30 34 38 41 45 49 52 56 6 63 67 70 74 78 81 85 89 92 96 1 13 17 20 24 28 31 35 39 42 46 5 53 57 60 64 68 71 75 79 82 86 9 93 97 10 14 18 21 25 29 32 36 4 43 47 50 54 58 61 65 69 72 76 8 83 87 90 94 98 11 15 19 22 26 3 33 37 40 44 48 51 55 59 62 66 7 73 77 80 84 88 91 95 99 [root@lab21:/letv/disk3/test]$ls -lh |head total 400K -rw-r--r-- 2 root root 2 Jan 29 15:33 0 -rw-r--r-- 2 root root 2 Jan 29 15:33 1 -rw-r--r-- 2 root root 3 Jan 29 15:33 10 -rw-r--r-- 2 root root 3 Jan 29 15:33 11 -rw-r--r-- 2 root root 3 Jan 29 15:33 12 -rw-r--r-- 2 root root 3 Jan 29 15:33 13 -rw-r--r-- 2 root root 3 Jan 29 15:33 14 -rw-r--r-- 2 root root 3 Jan 29 15:33 15 -rw-r--r-- 2 root root 3 Jan 29 15:33 16 |
原因在于,后的是xfs文件系统,默认块大小为4K,所以客户端创建一个小于4K的小文件,都会占用4K空间。
[root@lab21:/letv/disk3/test]$stat -f /letv/disk3/test/ File: "/letv/disk3/test/" ID: fd0200000000 Namelen: 255 Type: xfs Block size: 4096 Fundamental block size: 4096 Blocks: Total: 238263636 Free: 216480157 Available: 216480157 Inodes: Total: 953520128 Free: 953175313 |
客户端按照512Byte进行计算,服务器使用4K进行计算,对比如下:
客户端:
[root@lab23:/mnt/dzq/new]$ls -lh total 1.5K -rw-r--r-- 1 root root 513 Jan 29 17:04 a -rw-r--r-- 1 root root 55 Jan 29 15:51 b |
服务器端:
[root@lab21:/letv/disk3/new]$ls -lh total 8.0K -rw-r--r-- 2 root root 513 Jan 29 17:04 a -rw-r--r-- 2 root root 55 Jan 29 15:51 b |
从客户端看到的块大小是128K,但实际上却是按照512进行计算,这个需要进一步分析原因:
[root@lab23:/mnt/dzq/new]$stat -f /mnt/dzq/test/ File: "/mnt/dzq/test/" ID: 0 Namelen: 255 Type: fuseblk Block size: 131072 Fundamental block size: 131072 Blocks: Total: 7445738 Free: 6765004 Available: 6765004 Inodes: Total: 953520128 Free: 953175312 |
确实应该没有受客户端文件系统影响,客户端文件系统块大小如下:
[root@lab23:/mnt/dzq/new]$stat -f /mnt/ File: "/mnt/" ID: 3af66a85b8161ce8 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 2015852 Free: 169897 Available: 67497 Inodes: Total: 512064 Free: 364916 |
遗留问题:
为什么客户显示块大小为128k,但统计文件所占空间大小时,用的却是512字节?
fuse以128K进行数据传输,从应用场景出发,可以考虑增大后台xfs块大小,来提供小文件性能,待验证。
到此,关于“GlusterFS文件占用空间大小显示不统一怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!