操作背景:
公司中有一部分主机在开始设计的时候,并未考虑到SWAP的大小,只是分配了物理内存的2倍-4G,导致后期应用部署完成后对系统的SWAP分区要求达不到标准。因此经过部分和领导讨论后,决定在同一块磁盘上来减少根分区的大小,并使用缩减出来的大小去增加swap分区大小的操作,这中间要保障数据的完整和业务应用不丢失。这样做既可以保障数据盘不受影响,也保证应用系统在完成后可以正常使用,也减少了以后的一些风险(比如要使用额外的磁盘来增加swap空间大小需要考虑额外磁盘的稳定等)。
操作分析:
由于根分区和swap在开机运行的时候是处于使用状态,是不能对其进行直接操作的。考虑至此,需要使用到LINUX的救援模式,且该救援模式必须是不能执行chroot /mnt/sysimage。单用户模式和救援模式执行chroot后都不能对根分区进行操作。
LVM原理操作步骤和注意事项回顾:
先回顾下针对LV的扩展或缩小步骤、以及操作方法。
扩展LV
1、卸载LV
命令:umount “挂载目录” 这一步可以不用做,因LVM的2版本支持在线升级扩展空间。
2、扩展LV或先扩展VG
命令:vgextend vgdata100 /dev/sdb1 表示从pv为sdb1的分区中扩展空间到vgdata100的卷组中。
命令:lvextend -L +5G /dev/lv00/lv01 或者 lvresize -L 50G /dev/lv00/lv01
lvextend 表示增加5G,lvresize表示增加到50G,是调整后的容量。
3、检查文件系统
命令:fsck -f /dev/vg00/lv01
4、重建文件系统
命令:resize2fs /dev/lv00/lv01
这一步很关键,重建文件系统,不用担心LV的数据会丢失,以防丢失也可以先备份下LV里的数据。
5、挂载LV
命令:mount /dev/lv001/lv01 /opt 或执行mount -a 这步可以省去
缩小LV
缩小LV需要事先知道LV中的数据容量大小,缩小容量值不应超过剩余空间容量,而且要知道减少LV容量后的新大小。可以通过lvscan来查看LV容量,通过vgdisplay来查看剩余容量。缩小空间的磁盘必须需要卸载下来,不能在线缩小正在使用中的磁盘。
1、卸载LV
命令:umount “挂载目录”
2、检查文件系统
命令:fsck -f /dev/lv00/lv01
3、调整LV大小并重建文件系统
命令:resize2fs /dev/vg00/lv01 2G
4、减小LV容量
命令:lvreduce -L -3G /dev/vg00/lv01
5、挂载LV
命令:mount /dev/lv001/lv01 /opt
实际操作
正式操作之前先在实验环境下进行2-3遍测试后,再进行现实再用的环境下进行操作。
扩展SWAP分区大小的前提条件
1、swap必须和根分区(或者说空间来源)在同一个磁盘; 不要问为什么必须在一个磁盘上
2、swap必须是LVM格式;
3、必须在救援模式模式下完成缩减/根分区的大小。因为lvm只能在线升级,缩小必须处于不使用状态下进行;
扩展SWAP步骤
1、先缩小根分区大小。
a、 插入系统光盘,启动后输入linux rescue进去救援模式,不要配置网络,不要让系统根挂载到/mnt/sysimage上,所以最后的界面选择“skip”
b、检查是否符合条件并做好准备
c、开始缩小根文件系统大小
d、减小LV_根分区大小
先检查大小并计算实际大小。
根据上图显示的信息计算下。此时得出lv-root的LE数量为24525,总的PE数量为25549,大小4M,所以可以减少的大小为 (25549-24525)*4M=1024*4M=4G。
减小根分区大小
e、重启系统,再次查看根分区情况
2、开始增加swap空间大小
可以使用该步骤
1.swapoff -v /dev/centos/swap //关闭swap分区
2. lvresize -L +4G /dev/centos/swap //增加swap卷4G空间
3.resize2fs /dev/centos/swap //让添加的空间生效
4.mkswap /dev/centos/swap //建立swap分区
5.swapon -va /dev/centos/swap //启用swap分区
2. 或以下步骤
本文出自 “菜鸟” 博客,请务必保留此出处http://chier11.blog.51cto.com/4922641/1659781
原文地址:http://chier11.blog.51cto.com/4922641/1659781