生产环境
/空间不足,/home空间过大,减小/home容量来增加/容量
通俗来说,从/home下减少一部分容量,给/
安装操作系统时预留root、home、data分区的磁盘空间
[root@xxx ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 25G 1.3G 24G 5% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /media
/dev/sda1 1014M 135M 880M 14% /boot
/dev/mapper/centos-data 10G 33M 10G 1% /data
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 98M 0 98M 0% /run/user/0
xfsdump命令
在减小LVM逻辑卷容量大小的时候,我们无法做到对xfs文件系统的无损缩小
但是,我们可以借助数据备份和数据恢复来实现
利用xfsdump工具的备份功能将数据备份
创建用户,并用该用户下载些文件,来查看xfsdump命令的无损效果
注意:
1、xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
2、xfsdump 必须使用 root才能操作
3、xfsdump 只能备份 XFS 文件系统
4、 xfsrestore 解析
[root@xxx ~]# useradd laox
[root@xxx ~]# su - laox
[laox@xxx ~]$ pwd
/home/laox
[laox@xxx ~]$ rz
[laox@xxx ~]$ ll
总用量 15492
-rw-r--r-- 1 laox laox 15863668 2月 24 21:23 《鸟哥的Linux私房菜-基础篇》第四版.pdf
格式:
xfsdump -f 备份文件名(备份到哪里) 需要备份的文件/目录
注意:此处需要交互写入两个标签名称,统一用home即可
[root@xxx ~]# xfsdump -f /data/home.xfsdump /home
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> home
session label entered: "home"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of xxx:/home
xfsdump: dump date: Thu Apr 23 20:56:37 2020
xfsdump: session id: 6b77cbec-e5f2-4c27-bc6b-c10269fa5321
xfsdump: session label: "home"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 15949312 bytes
xfsdump: /var/lib/xfsdump/inventory created
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> home
media label entered: "home"
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 15901792 bytes
xfsdump: dump size (non-dir files) : 15873144 bytes
xfsdump: dump complete: 90 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /data/home.xfsdump OK (success)
xfsdump: Dump Status: SUCCESS
fuser命令
在生产环境中,为了防止我们在对/home进行操作时,有用户尽在操作,所以我们需要先卸载/home关联停止/home对应文件系统的所有进程
[root@xxx ~]# yum install -y psmisc
[root@xxx ~]# fuser -km /home
lvreduce命令
将/home容量减小
[root@xxx ~]# umount /home/
[root@xxx ~]# lvreduce -L 9G /dev/centos/
/dev/centos/data /dev/centos/home /dev/centos/root /dev/centos/swap
[root@xxx ~]# lvreduce -L 9G /dev/centos/home
WARNING: Reducing active logical volume to 9.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/home? [y/n]: y
Size of logical volume centos/home changed from <18.70 GiB (4786 extents) to 9.00 GiB (2304 extents).
Logical volume centos/home successfully resized.
[root@xxx ~]# mkfs.xfs -f /dev/centos/home
meta-data=/dev/centos/home isize=512 agcount=4, agsize=589824 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2359296, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@xxx ~]# mount /dev/centos/home /home/
[root@xxx /home]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 25G 1.3G 24G 5% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /media
/dev/sda1 1014M 135M 880M 14% /boot
/dev/mapper/centos-data 10G 48M 10G 1% /data
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/centos-home 9.0G 33M 9.0G 1% /home
校验xfsdump命令无损效果
解压命令xfsrestore
格式:
xfsrestore -f 备份文件 备份目标地
[root@xxx /home]# xfsrestore -f /data/home.xfsdump /home
[root@xxx /home]# ll
总用量 0
drwx------ 4 laox laox 172 4月 23 20:55 laox
[root@xxx /home]# ll /home/laox
总用量 15492
-rw-r--r-- 1 laox laox 15863668 2月 24 21:23 《鸟哥的Linux私房菜-基础篇》第四版.pdf
无损效果很好
lvextend命令
把从/home减小出的容量,增加到/里
[root@xxx /home]# lvextend -l +100%FREE //dev/mapper/centos-root
Size of logical volume centos/root changed from 25.00 GiB (6400 extents) to <34.71 GiB (8885 extents).
Logical volume centos/root successfully resized.
[root@xxx /home]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1638400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=6553600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3200, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 6553600 to 9098240
[root@xxx /home]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 35G 1.3G 34G 4% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /media
/dev/sda1 1014M 135M 880M 14% /boot
/dev/mapper/centos-data 10G 48M 10G 1% /data
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/centos-home 9.0G 48M 9.0G 1% /home