经常会遇到服务用着用着发现空间不够啦!怎么办呢?
备份数据=》使用更大的磁盘重新安装系统 =》转移数据。这样太麻烦了,如果是生产环境,还要停机。
增加新的磁盘。
这里我选择方法 2
空间不足时,需要挂载新的磁盘扩容。如何操作呢?我把我的操作过程记录下来。
友情提醒:
数据无价,谨慎操作。
本教程,只是记录了我的操作过程,仅供参考,操作前请自行备份好数据。 出现任何数据问题,本文不负责。
本文是自己摸索的结果,不一定是最佳的方案。仅供参考。推荐自己在虚拟机中测试后,符合自己的需求在尝试。
我在自己虚拟机中操作。
CentOS Linux release 7.9.2009 (Core)
挂载新磁盘前的分区结构:
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 575M 0 575M 0% /dev
tmpfs 586M 0 586M 0% /dev/shm
tmpfs 586M 9.0M 577M 2% /run
tmpfs 586M 0 586M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.4G 16G 9% /
/dev/sda2 1014M 160M 855M 16% /boot
/dev/sda1 200M 12M 189M 6% /boot/efi
tmpfs 118M 0 118M 0% /run/user/0
把虚拟机关机
fdisk -l
mkfs.ext3 /dev/sdb
执行日志如下:
[root@localhost ~]# mkfs.ext3 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
786432 inodes, 3145728 blocks
157286 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=3221225472
96 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
以下操作没有特殊说明都是使用root权限操作的。
mkdir /media/home
/dev/sdb
挂载到/media/home
mount /dev/sdb /media/home
使用cp也行,只要能备份好数据就行。
同步时间根据数据量大小决定,建议在系统空闲时操作。
yum install rsync
rsync -aXS /home/. /media/home/.
umount /media/home/
mount /dev/sdb /home
现在我们在来查看一下分区情况
[root@localhost home]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 575M 0 575M 0% /dev
tmpfs 586M 0 586M 0% /dev/shm
tmpfs 586M 9.0M 577M 2% /run
tmpfs 586M 0 586M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.5G 16G 9% /
/dev/sda2 1014M 160M 855M 16% /boot
/dev/sda1 200M 12M 189M 6% /boot/efi
tmpfs 118M 0 118M 0% /run/user/0
/dev/sdb 12G 31M 12G 1% /home
发现新的磁盘已经成功的挂载到了/home
/dev/sdb 12G 31M 12G 1% /home
这个时候还没有完全成功,因为当系统重启和,挂载点就会消失。我们要配置开机自动挂载。
比如我现在重新后,分区信息如下:
[root@localhost home]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 575M 0 575M 0% /dev
tmpfs 586M 0 586M 0% /dev/shm
tmpfs 586M 8.9M 578M 2% /run
tmpfs 586M 0 586M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.5G 16G 9% /
/dev/sda2 1014M 160M 855M 16% /boot
/dev/sda1 200M 12M 189M 6% /boot/efi
tmpfs 118M 0 118M 0% /run/user/0
因为mount命令会在重启服务器后失效,所以要将分区信息写到/etc/fstab文件中让它永久挂载:
sudo vi /etc/fstab
增加如下一行:
/dev/sdb /home ext3 defaults 0 0
第1列是设备名或者卷标
第2列是挂载点(也就是挂载目录)
第3列是所要挂载设备的文件系统或者文件系统类型
第4列是挂载选项,通常使用defaults就可以
第5列设置是否使用dump备份,置0为不备份,置1,2为备份,但2的备份重要性比1小
第6列设置是否开机的时候使用fsck检验所挂载的磁盘,置0为不检验,置1,2为检验,但置2盘比置1的盘晚检验。
当前的配置文件全部内容如下:
#
# /etc/fstab
# Created by anaconda on Fri Jan 15 21:11:57 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=b35b2005-ebc2-4f8d-bde2-783ee0f560db /boot xfs defaults 0 0
UUID=49C9-E843 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb /home ext3 defaults 0 0
这时就算重启机器,分区也是正常的。
本文结束。
https://blog.csdn.net/lxyoucan/article/details/113697472
https://zhuanlan.zhihu.com/p/307657410