若 /home 目录文件系统类型为 ext4 等不支持动态调整 inode 数量的类型,需要将其格式化为 xfs 类型。格式化步骤如下:
1. 备份 /home 数据
# cp -R /home /tmp
2. 卸载 /home 并删除对应逻辑卷
# umount /home
# lvremove /dev/mapper/centos-home
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed
3. 查看硬盘剩余可用空间
# vgdisplay | grep Alloc
Free PE / Size 10527 / 41.12 GiB # 剩余可用空间为 41.12 GB
4. 新建 /home 逻辑卷并格式化为 xfs
# lvcreate -L 41G -n home centos # 根据剩余可用空间填写创建大小
WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/centos/home.
Logical volume "home" created.
# mkfs.xfs /dev/mapper/centos-home
5. 挂载 /home 并恢复数据
# mount /dev/mapper/centos-home /home
# mv /tmp/home/* /home/
# chown owner /home/owner # 重新赋予 home 目录文件的权限给对应 owner,需要根据用户名自行修改
1.2.2 xfs 文件系统动态调整 inode 数量
若使用 DolphinDB 时出现磁盘空间足够,但因没有可用 inode 导致无法写入文件,可通过增加 inode 数量解决问题,步骤如下:
1. 查看 inode 信息:
# xfs_info /dev/mapper/centos-home | grep imaxpct
data = bsize=4096 blocks=10747904, imaxpct=25 # 即 /dev/mapper/centos-home 的 25% 的空间用于存放 inode
# df -i | grep /dev/mapper/centos-home
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-home 21495808 7 21495801 1% /home
可见配置了 /dev/mapper/centos-home 卷下的 25 % 的空间用于存放 inode,当前可用 inode 数为 21495801 个。
2. 增加 inode 数量:
# xfs_growfs -m 30 /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=2686976 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=10747904, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=5248, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
inode max percent changed from 25 to 30
3. 再次查看 inode 信息
df -i | grep /dev/mapper/centos-home
/dev/mapper/centos-home 25794944 7 25794937 1% /home
可见当前可用 inode 数增加到了 25794937 个。