对ext4文件系统进行磁盘扩容后执行resize2fs需要确保如下两点:
1.停掉所有调用到扩容磁盘挂载点的应用或服务,比如nginx,nfs
2.卸载掉挂载点
以上两点如果都做了,那扩容基本上没有什么问题
真实案例:同事对centos7服务器上的lvm进行了扩容(ext4系统),扩容后lv成功扩容,但挂载点无法同步扩容,执行resize2fs /dev/mapper/lv,提示resize2fs: Permission denied to resize filesystem
处理流程:
1遇到这种情况,一般是因为磁盘或者lv还在挂载中,需要先卸载掉挂载点(umount),考虑到本台服务器也是nfs server于是就先停掉nfs,然后再卸载挂载点
2.再执行resize2fs,报lv is in use, 可能超级块有损坏之类,重点就是这个lv is in use,当时觉得挂载点都已经强制卸载掉了(umount -l /data),怎么可能还会有其他服务或程序在使用这个lv,一时没有思路,就将服务器重启了,发现重复以上流程还是报lv is in use,于是就想还会有什么服务可能会用到这个挂载点,最后想到了nginx,于是把nginx也给停了,确定没了其他服务,就再次执行resize2fs,系统自动提示需要对lv执行e2fsck,执行期间,交互命令全部输入y,如下所示