背景
公司一台重要服务器,3块3TB硬盘配置raid5,搭载了许多服务(前人),安装系统时,未正确分区,导致根目录只有50GB空间,home目录挂载了5.2TB,如图:
这种情况之下如何扩展根分区?
思路
1.打包源服务器根下重要文件(tar包);
2.在新服务器上安装与源服务器同样的配置(3块3TB硬盘做raid5,安装Centos 7.3);
3.扩展根分区;
4.传输并还原tar包。
为什么不直接在旧服务器上扩展根分区?
答:重要服务器,上面时刻跑着重要服务,万一操作失误,恢复不了,岂不是尴了个尬!
步骤
1.安装一台新服务器,保持与源服务器系统版本、磁盘挂载一致
答:因为旧服务器是默认分区(非EFI),新服务器安装系统也一样使用默认分区
2.备份旧服务器
[root@ackh-office-srv /]# su -
Last login: Sat Jan 15 00:44:51 CST 2022 from 10.132.212.2 on pts/0
[root@ackh-office-srv ~]# cd /
[root@ackh-office-srv /]# tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/tmp
说明:
tar 用来压缩打包
cvpzf 是我们给tar加的选项,像“创建一个压缩文档”(这是显然的),“保存权限”(以便使每一个相同的文件有相同的权限),以及“gzip”(缩减大小)
backup.tgz 打包的文件名
–exclude= 剔除,不打包
注:旧服务器空间占用大小约550GB左右,tar过程用了大概10个小时左右,期间服务不会间断,但发现buff/cache一直在暴增(两三个小时98GB的内存就被吃满了)
3.设置定时任务,清除cache缓存
<1>.在opt下新建 vim cleanCache.sh
[root@ackh-office-srv /]# vim cleanCache.sh
添加如下内容:
#!/bin/bash
#每两小时清除一次缓存
echo “开始清除缓存”
sync;sync;sync #写入硬盘,防止数据丢失
sleep 10 #延迟10秒
echo 3 > /proc/sys/vm/drop_caches
<2>.创建定时任务
crontab -e #弹出配置文件,添加如下内容
0 */2 * * * /opt/cleanCache.sh #每两小时执行一次任务
<3>.保证crond启动及开机自启
[root@ackh-office-srv /]# systemctl start crond.service
[root@ackh-office-srv /]# systemctl enable crond.service
<4>.查看定时任务是否被执行
[root@ackh-office-srv /]# cat /var/log/cron | grep cleanCache
Mar 24 10:00:01 ackh-01 CROND[11566]: (root) CMD (/opt/cleanCache.sh)
[root@ackh-office-srv /]# cat /var/spool/mail/root #在邮件中查看任务执行情况
<5>.其他
[root@ackh-office-srv /]# crontab -e #编辑定时任务
[root@ackh-office-srv /]# crontab -l #查看定时任务
[root@ackh-office-srv /]# crontab -r #删除定时任务
4.扩展根目录
<1>.卸载/home目录(新服务器)
umount /home/
<2>.移除/home卷,释放home目录空间
lvremove /dev/mapper/cl-home
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed
<3>.将空闲的空间移动14%到根目录
lvextend -l +14%FREE /dev/centos/root
#扩充到空间
xfs_growfs /dev/mapper/cl-root
<4>.建立home目录
lvcreate -l +100%FREE -n home cl
#创建为xfs格式
mkfs.xfs /dev/mapper/cl-home
#将空间挂载到home
mount /dev/mapper/cl-home /home
<5>.查看磁盘空间
根目录已从50GB扩展到786GB
[root@ackh-office-srv ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 786G 32G 754G 5% /
devtmpfs 48G 0 48G 0% /dev
tmpfs 48G 144K 48G 1% /dev/shm
tmpfs 48G 106M 48G 1% /run
tmpfs 48G 0 48G 0% /sys/fs/cgroup
/dev/mapper/cl-home 4.5T 509G 4.0T 12% /home
/dev/md126p2 1019M 243M 777M 24% /boot
tmpfs 9.5G 20K 9.5G 1% /run/user/0
5.还原
在新服务器上
su root
cd /
scp root@源服务器ip:/backup.tgz /
tar xvpfz backup.tgz -C /
cp /fstab /etc/
cp /grub.cfg /boot/grub2/
restorecon -Rv /
shutdown -r
说明:一定要记得备份/fstab 与/grub.cfg ,它们包含新系统boot启动UUID,不然还原之后系统会起不来(我遇到的情况是一直卡在登录界面打圈);
为防止还原之后网络连接不了,最好也记录一下网卡的UUID
[root@ackh-office-srv /]# nmcli con
NAME UUID TYPE DEVICE
enp1s0 baee9f76-130b-46e8-b21f-fc7c0cbf25ce 802-3-ethernet --