背景: 公司有一批自己组建的服务器用于存储实验数据,约有 30~40 台左右的工作站会通过挂载 nfs 共享来读写上面的文件( nfs 挂载参数: hard , rw , sync )。数据大多是海量的小文件(文件类型 json 、 jpg ,数据量甚至大的时候会把 inode 用光),每台服务器的 RAID 阵列上是单个 ext4 文件系统,容量从 20TB 到 40TB 都有。
硬件环境: Supermicro X10 系列主板, E3-1231v3 , 16GB ECC RAM LSI 9260-8i 阵列卡, 12x 4TB WD RE 系列企业级 SATA 硬盘, RAID5+HotSpare 或者 RAID6 。
软件环境: Ubuntu 12.04 LTS , Linux 3.5.0-23-generic
————————
现在碰到的非常棘手的问题就是,服务器搭起来后,存了一二十 TB 数据,然后就开始大面积出现文件系统错误。比如 df -lh 会看到已用空间和可用空间不正常:
admin@nas1:~$ df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 205G 31G 164G 16% /
/dev/sdb1 40T -308T 346T - /mnt/nas1
在 dmesg 里也有大量关于文件系统的错误:
[60467.013963] EXT4-fs error (device sdb1): ext4_mb_generate_buddy:741: group 12736, 0 clusters in bitmap, 4294955217 in gd
[60467.014350] EXT4-fs error (device sdb1): ext4_mb_generate_buddy:741: group 12739, 0 clusters in bitmap, 4294955232 in gd
[60467.192619] EXT4-fs error (device sdb1): ext4_mb_generate_buddy:741: group 12752, 10889 clusters in bitmap, 4294958419 in gd
以及,研发会报告说部分文件夹变成了文件,或者读写文件时报错提示 Input/Output Error 。
————————
我们在工作站上对单盘也有同样的使用方式( 2TB 或者 3TB ,格式化成 ext4 ,开 NFS 共享给其他几十台机器),但很少碰到类似情况。现在不知道是因为单个文件系统太大,还是 RAID 卡的原因,还是因为大量小文件被多机器同时读写?
不知道有没有相关经验的童鞋指点一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.