ext4 文件系统扩容、缩容操作
扩容系统根分区
根文件系统在 /dev/VolGroup/lv_root 逻辑卷上,文件系统类型为ext4,大小为10G,现在要将其扩容成20G。
给空闲空间分区# 调整分区类型为LVM,也就是8e类型 fdisk /dev/sdb# 选定分区后使用 t 选项,然后选择8e类型# 通知内核重读分区表 partx -a /dev/sdb# 查看 cat /proc/partitionslsblk
扩容操作# 1. 创建pv pvcreate /dev/sdb7# 2. 对根 / 所在的vg进行扩容,将/dev/sdb7这个pv添加到VolGroup这个vg中去 vgextend VolGroup /dev/sdb7# 3. 对根 / 所在的lv进行扩容 # 先通过vgdisplay命令查看对应vg中空闲的pe数量,然后再将这些空闲的pe添加到lv中去 lvextend -l +2194 /dev/VolGroup/lv_root # 4. 扩容文件系统 resize2fs /dev/VolGroup/lv_root # 自动扩容,将可分配的空间全部分配完 # 或者扩容成指定的大小 resize2fs /dev/VolGroup/lv_root 15G# 5. 查看是否扩容成功 df -hT
- 注意:LV扩容前最好先卸载挂载的设备,然后再使用 lvextend 进行扩容,这里因为是对根文件系统进行扩容,故而没有卸载
缩容
/dev/sdb6 和 /dev/sdb4 一共分区大小为5G,分区类型为8e,它们被添加到了卷组VolGroup中,并做成 lv_mnt 逻辑卷挂载在了 /mnt 目录。
现在要将 lv_mnt 缩小成3G,并且不能损坏其数据
# 1. 卸载设备 umount /mnt# 2. 进行磁盘检查 e2fsck -f /dev/VolGroup/lv_mnt# 3. 收缩文件系统 resize2fs /dev/VolGroup/lv_mnt 3G# 4. 收缩LV lvreduce -L -2G /dev/VolGroup/lv_mnt # 5. 将PE移动到空闲的地方 ### 查看哪些PV上有空闲的PE pvdisplay | grep 'PV Name| Free' ### 将PE移动到有空闲PE的PV上 pvmove /dev/sdb6:0-99 /dev/sdb4# 6. 从VG中移除PV vgreduce VolGroup /dev/sdb6# 7. 移除该PV pvremove /dev/sdb6
xfs 文件系统扩容、缩容操作
扩容
# 1. 与CentOS6一样,先要创建一个8e格式磁盘分区 fdisk /dev/sdb# 2. 创建PV pvcreate /dev/sdb5# 3. 将pv添加到根所在的VG中 vgextend centos /dev/sdb5# 4. 扩容LV# 特别注意:在扩容LV之前最好要先卸载设备,这里没有卸载是因为扩容的根文件系统lvextend -l +2048 /dev/centos/root# 5. 扩容xfs文件系统 xfs_growfs /dev/centos/root# 6. 查看是否扩容成功 df -hT
缩容
xfs文件系统只能扩容而无法收缩,如果要想收缩,可以先备份,之后再进行减容重建,再恢复数据。
---------------备份# xfsdump的方式备份 xfsdump -f /data/home.img /home-f 备份保存的位置# cp直接复制文件的方式备份 cp -aR /home /data/home----------------缩容重建# 1. 卸载home目录 umount /home/# 2. 删除 lv_home ### 删除之前要备份或者将PE移动到空闲的PV中 lvremove /dev/centos/home# 3. 扩容根所在的的 lv lvresize -L 20G /dev/centos/root# 4. 扩容根文件系统 xfs_growfs /dev/centos/root# 5. 重建home的LV lvcreate -L 1G -n home centos# 6. 格式化并挂载 mkfs.xfs /dev/centos/home mount /dev/centos/home /home# 7. 还原数据 xfsrestore -f /data/home.img /home
- 注意:尽量避免对重要数据所在的文件系统做收缩操作
lvm逻辑卷管理