红联Linux门户
Linux帮助

RedHat/CentOS ext4无法格式化大分区 补充ext4格式化方式

发布时间:2014-11-04 22:03:05来源:linux网站作者:xztjhs

一般情况下,XFS出现丢数据的情况为海量小文件IO场景。在该场景下,inode占用教大。

通过上文的方式进行格式化,inode数量较小。通过大量测试,可以使用如下方法提升mkfs.ext4后文件系统性能。

方法主要内容:在/etc/mke2fs.conf文件,ext4配置中去开启64位功能。


[root@node21 ~]# cat /etc/mke2fs.conf
[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384

[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
auto_64-bit_support = 1      ###新增加行,告诉系统使用64位方式进行格式化。避免mkfs.ext4直接报错。
inode_size = 256
}
ext4dev = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
}
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
floppy = {
blocksize = 1024
inode_size = 128
inode_ratio = 8192
}
news = {
inode_ratio = 4096
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
largefile4 = {
inode_ratio = 4194304
blocksize = -1
}
hurd = {
blocksize = 4096
inode_size = 128
}
[root@node21 ~]#

[root@node21 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3            259G  29G  217G  12% /
tmpfs                  16G    0  16G  0% /dev/shm
/dev/sda1            194M  34M  151M  19% /boot
/dev/sdf1              39T  21T  18T  54% /mnt/source
/dev/md127            5.4T  1.8T  3.4T  35% /public
/dev/sdg1              22T  42G  21T  1% /mnt/public_back
[root@node21 ~]# df -i
Filesystem            Inodes  IUsed  IFree IUse% Mounted on
/dev/sda3            17195008  383263 16811745    3% /
tmpfs                4106354      1 4106353    1% /dev/shm
/dev/sda1              51200      41  51159    1% /boot
/dev/sdf1            8203124224 34192419 8168931805    1% /mnt/source      ###XFS文件系统,40T容量。
/dev/md127          366288896 2338559 363950337    1% /public
/dev/sdg1            1464844288    295 1464843993    1% /mnt/public_back  ###ext4文件系统,22T容量。


红帽/CentOS 6.5的e2fsprogs版本为1.41.12较低,无法创建16TB以上的文件系统。

下载最新的e2fsprogs,编译安装
ftp://ftp.ntu.edu.tw/linux/kernel/people/tytso/e2fsprogs/


tar zxvf e2fsprogs-1.42.10.tar.gz
cd e2fsprogs-1.42.10
mkdir build
cd build/
../configure
make
make install
 
mke2fs -O 64bit,has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize -i 4194304 /dev/sda1

mount /dev/sda1 /mnt


常见故障表现:

[root@localhost ~]# mount /dev/sda1 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/sda1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail  or so

[root@localhost ~]# mkfs.ext4 /dev/sda1
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: Size of device /dev/sda1 too big to be expressed in 32 bits
using a blocksize of 4096.

[root@localhost ~]# mkfs.ext4 -b 8192
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: 8192-byte blocks too big for system (max 4096)
Proceed anyway? (y,n) y
Warning: 8192-byte blocks too big for system (max 4096), forced to continue
Filesystem label=
OS type: Linux
Block size=8192 (log=3)
Fragment size=8192 (log=3)
Stride=0 blocks, Stripe width=0 blocks
1464926208 inodes, 2929459075 blocks
146472953 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4311218176
44706 block groups
65528 blocks per group, 65528 fragments per group
32768 inodes per group
Superblock backups stored on blocks:
65528, 196584, 327640, 458696, 589752, 1638200, 1769256, 3210872,
5307768, 8191000, 15923304, 22476104, 40955000, 47769912, 143309736,
157332728, 204775000, 429929208, 1023875000, 1101329096, 1289787624