从而文件占用空间大小显示不统一怎么解决

这篇文章主要介绍“GlusterFS文件占用空间大小显示不统一怎么解决”,在日常操作中,相信很多人在GlusterFS文件占用空间大小显示不统一怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”GlusterFS文件占用空间大小显示不统一怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

测试环境说明: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

遗留问题:

  1. 为什么客户显示块大小为128k,但统计文件所占空间大小时,用的却是512字节?

  2. fuse以128K进行数据传输,从应用场景出发,可以考虑增大后台xfs块大小,来提供小文件性能,待验证。

到此,关于“GlusterFS文件占用空间大小显示不统一怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

从而文件占用空间大小显示不统一怎么解决