Linux文件系统在线扩容(操作示范)
?
Linux文件系统能在线扩容吗?!
文件系统扩容必须重新挂载?!
工具,给大家展示一种文件系统在线扩容办法,无需重启服务器,无需重新挂在文件系统,应用也无需做任何更改。
实验环境
操作系统:Red Hat Enterprise Linux Server release 6.0 (Santiago) - 64bit
文件系统:ext4
工具:e2fsprogs-1.41.12-3.el6.x86_64
?
逻辑卷管理(LVM)概念
已经有工程师对LVM相关概念做了详细介绍,本章就不再介绍。有兴趣可以参考:
AIX主机逻辑卷管理器(LVM)概念详解:卷组、物理/逻辑卷、分区
Linux逻辑卷管理LVM功能详解及应用实例
?
LVM逻辑架构
?
扩容实际操作分享
根据上面架构图可以发现,基于LVM的Linux文件系统扩容主要有三个步骤:
1、卷组扩容;
2、逻辑卷扩容;
3、文件系统在线调整。
注意:操作严格按照1,2,3顺序依次来进行。
?
?
1、?
1.1、???确认需要扩容的卷组
?
1.2、???将/dev/loop1制作成物理卷
?
?????????????
1.3、???test_vg卷组扩容
?
?????????????
2、?
??????????
?
?
3、?
??????????
?
故障排除:
1、??????resize2fs命令出现这个错误“resize2fs: Operation not permitted While trying to add group #6656”,并且在/var/log/message里面出现以下错误“Jul 30 15:37:53 localhost kernel: EXT4-fs warning (device dm-2): ext4_group_add: No reserved GDT blocks, can't resize”
这个问题是由于文件系统预留的Journal size太小导致,可以通过dumpe2fs /dev/test_vg/lvol0 |grep -i Journal查看。(Journal size大小默认由e2fsprogs工具自动根据文件系统大小来计算,也可以认为指定。越大Journal size,对文件系统性能越好,Ext4最大Journal size是400M。)
解决办法:
删除现有Journal空间,重新创建一个新的Journal来解决这个问题。
解决步骤:
$ e2fsck -C 0 /dev/os/test
e2fsck 1.40.2 (12-Jul-2007)
/dev/os/test: clean, 11/524288 files, 24822/524288 blocks
?
$ tune2fs -O ^has_journal /dev/os/test –?删除原来的空间
tune2fs 1.40.2 (12-Jul-2007)
?
$ tune2fs -j /dev/os/test –?自动生成新的
tune2fs 1.40.2 (12-Jul-2007)
Creating journal inode: done
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.? Use tune2fs -c or -i to override.
?
$ e2fsck -C 0 /dev/os/test
e2fsck 1.40.2 (12-Jul-2007)
/dev/os/test: clean, 11/524288 files, 24822/524288 blocks
?
注意:这个过程要求卸载文件系统,严格按照上述顺序来操作。
如需在生产系统操作,请务必做好测试和备份工作。
?
?????????/t5/System-Administration/Online-resize2fs-Operation-not-permitted-While-trying-to-add/td-p/4680934
?????????/show_bug.cgi?id=160612
应用于
?
?????????Red Hat Enterprise Linux
?