这里写目录标题
- 文件格式介绍
- 问题:当根盘满了过后怎么办?
- 解决方式:
- Xfs文件格式缩容扩容
- 1. 备份
- 2. 卸载home
- 3. 缩容home(home盘为xfs文件格式)
- 4. 扩容 `/`
- 5. 恢复home备份
- Ext4文件格式缩容扩容
- 1. 备份(可选)
- 2. 卸载home目录
- 3. 缩容home(home盘为ext4文件格式)
- 4. 扩容跟xfs一致
文件格式介绍
Linux支持多种磁盘格式,常用的包括ext4、XFS、Btrfs等。
- ext4:是Linux系统中最常用的磁盘格式之一,它是ext文件系统系列的第四个版本,提供了良好的性能和稳定性。ext4支持文件大小高达1EB(1EB=1×10^18字节),并能够处理大容量磁盘的高速写入。同时,它还支持日志的记录,以确保文件系统在意外断电或系统崩溃后能够恢复到一致的状态。
- XFS:是另一个常用的Linux磁盘格式,它是一个高性能的日志文件系统,支持非常大的文件和文件系统,可以用于需要大量存储空间的服务器和桌面环境。XFS使用优化的数据结构,支持在线调整大小,快速文件复制和大文件存储等特性。
- Btrfs:是Linux内核中最新推出的一个日志文件系统,它旨在提供更好的性能和可靠性,以及一些新的特性,如在线文件碎片整理、快照、数据校验等。Btrfs支持快照功能,可以轻松备份整个文件系统或个别文件,而无需进行长时间的复制操作。同时,Btrfs还支持在线数据压缩和空间回收等功能。
问题:当根盘满了过后怎么办?
解决方式:
- 将其他盘空间缩容,将缩出来的空间动态扩容到根盘下。(ext4文件类型不会丢失数据,xfs会丢失数据需要提前备份)
- 将其他盘删除掉,将该盘所有空间都扩容到根下(会丢失其他盘的数据,需提前备份)
- 添加一块新的盘,将新盘空间全都动态扩容到根盘下
如下图,我们可以使用第一种方式将home盘的空间拿一部分给根下。如图可以发现我们 / 盘 只有50G并且是xfs文件格式,而我们home盘有3.6T且文件格式为xfs,并且home下面有很多重要数据,我们使用第一种方式将home下的空间拿出一部分给根,需要提前将home下的数据进行备份。
Xfs文件格式缩容扩容
1. 备份
如果本身账户没有权限,就使用 sudo tar cvf /home/home.tar /home
将home目录进行备份,如果其他盘空间够,可以将备份丢到其他目录下,如果不够,可以拿出到本机进行存储,因为home盘用的xfs后续缩容后需要格式化才能挂载,如果是ext4就不用格式化,数据也不会丢失。
2. 卸载home
卸载后使用 df -Th 可以查看是否卸载成功,如果卸载如图所示则表示有进程占用home盘,则需要先杀死进程后在进行卸载,可以使用 fuser -km /home 进行杀死或者使用 lsof /home查看占用进程,使用kill -9进行杀死进程。
如果一直杀不死则有些外部盘服务可能一直占用home下的文件夹,则需要先停掉服务在进行卸载。
如下图,使用umount时一直提示盘符在忙碌,使用fuser命令后进程还存在,观察进程我发现是vsftpd占用的盘符,然后我就将vsftpd停用后,在查看盘符占用情况就没有了,然后再umount就成功了。
3. 缩容home(home盘为xfs文件格式)
使用 `lvreduce -L 2T /dev/mapper/centos-home`命令(记得Y一下),将home盘空间设置成2T,这样就多出了1.5T剩余空间。如图我将home设置成2T后,使用 `vgdisplay`查看空闲空间就有1.5T了,然后使用mount将home挂回去就失败了,然后我们将home格式化成ext4(便于后续在进行缩容不用格式化)后在进行mount挂载就能成功了。
4. 扩容 /
使用 lvextend -L +500G /dev/centos/root
命令将根盘增加500G,这样的话/盘就变成了550G,可以发现使用命令扩容后,使用df -h后 / 盘空间并没有增加,我们需要先刷新一下,这样就能看到变成了 550G
扩容命令: lvextend -L +500G /dev/centos/root
xsf文件格式的刷新命令:xfs_growfs /dev/centos/root
ext4文件格式刷新命令:resize2fs /dev/centos/home
可以发现后续如果还有需要扩容的盘,我们可以将剩余1T进行扩容,这1T是可以随机分配到任意盘的,看起来有1T其实并没有1T空间,我们如果需要将所有剩余空间都分配到某个盘,可以使用命令
将剩余空间全部分配: lvextend -l +100%FREE /dev/centos/root
5. 恢复home备份
将原来压缩的包传到linux的home目录下,使用 tar -xvf home.tar --strip-components=1
将备份的数据恢复到home下即可。
Ext4文件格式缩容扩容
流程:将home目录下的空间分500M给root
环境:home为ext4文件类型
1. 备份(可选)
将home下的数据备份到根下,前提是根下空间必须足够,否则使用xfs文件格式缩容扩容中的备份进行操作即可。
mkdir /root/home
cp /home/* /root/home
2. 卸载home目录
卸载后使用 df -Th 可以查看是否卸载成功,如果卸载如图所示则表示有进程占用home盘,则需要先杀死进程后在进行卸载,可以使用 fuser -km /home 进行杀死或者使用 lsof /home查看占用进程,使用kill -9进行杀死进程。
如果一直杀不死则有些外部盘服务可能一直占用home下的文件夹,则需要先停掉服务在进行卸载。
参考xfs中的步骤2
3. 缩容home(home盘为ext4文件格式)
操作步骤的命令如下:
查看盘符信息:df -Th
卸载盘符:umount /dev/mapper/centos-home
检查文件系统一致性:e2fsck -f /dev/mapper/centos-home
调整文件系统大小:resize2fs /dev/mapper/centos-home 500M
检查文件系统一致性:fsck /dev/mapper/centos-home
减少逻辑卷大小:lvreduce -L 500M /dev/mapper/centos-home
确定逻辑卷是否减少:resize2fs /dev/mapper/centos-home
最后检查文件系统一致性:fsck /dev/mapper/centos-home
挂载:mount /dev/mapper/centos-home /home
查看卷组详情以及剩余空间:vgdisplay