背景:
在 Linux 早期,磁盘的大小还是MB级的,文件系统的块大小也只是 1KB 到 4KB。而在本文写作的时候,TB级的硬盘虽然在最近涨了一点价,但无碍一个事实——硬盘已经变大太多了,存储在上面的文件也是如此。但 ext4 文件系统仍然以 4KB 为单位来管理数据。其结果就是要管理的块数太多了,相关联的位图大小必然随之增长,管理这些块的开销也就极具增大。
在内核中增加文件系统的块大小会对内存管理、page cache 等产生深远影响,因此是件很恐怖的工作。所以大家都不愿意一下子触及这么多地方,但这并不能阻止文件系统被放在越来越大的磁盘上。在3.2 内核中,ext4 将可以解决这个问题
而且http://kernelnewbies.org/Linux_3.2 中提到:ext4支持现在的块大小高达1 mb的大小,这大大减少花时间做块分配和有较小的碎片。
我们怎么做!
一般情况下: [root@localhost /]# mkfs.ext4 -b 1048576 /dev/sde
mkfs.ext4: 无效的块大小 - 1048576(1m)
另外有文章提到:
“bigalloc”补丁给文件系统引入了一个“块簇(block cluster)”的概念
问题:
ext4 的 block size ,是不是把概念换成 Bigallocle ?
进展情况:
1、centos5.8 不能升级内核到3.2以上。已经换系统centos6.3. 正在升级内核中。。。。
(更新:升级成功!,升到了3.6.9 网上没有例子的,可以看我的下篇文章)
2、目前e2fsporgs 还是自带的1.41,没有达到网上说的1.42;
找到得rpm依赖于glibc-2.14。安装glibc,导致系统所有类库无法加载,系统崩溃!有意见的可以讲,我就是想用ext4的最新特性。