如何扩容缩减swap分区 一.swap简单介绍 二.通过swap分区文件增加减少swap空间 1.扩展 2.缩减(删除) 三.通过LVM扩容缩减swap空间 1.扩容 2.缩减 一.swap简单介绍 swap交换内存主要是指当物理内存不够用时,系统会启用硬盘的一部分空间来充当服务器内存,而默认情况下swap内存会有一些设置标准,它与物理内存的大小也是有关系的: Ram大小 Swap大小 激活Swap后合计大小 256MB 256MB 512MB 512MB 512MB 1GB 1GB 1GB 2GB 3GB 2GB 5GB 4GB 2GB 6GB 6GB 2GB 8GB 8GB 3GB 11GB 12GB 3GB 15GB 16GB 4GB 20GB 32GB 6GB 38GB 64GB 8GB 72GB 128GB 11GB 139GB 官方官方建议在RAM是2到4.5G时,swap是RAM的2倍;如果RAM大于等于4G则swap等于RAM即可 当预先设置的Swap分区空间不足,这个时候需要增加其大小,今天总结两种增减swap大小的方法。 通过swap分区文件增加swap空间 通过LVM扩容缩减swap空间 话不多说,直接开始。实验用centos7机器。 目标增减swap2G。 二.通过swap分区文件增加减少swap空间 1.扩展 先查看一下当前swap大小 [root@fei-7 ~]# free -h total used free shared buff/cache available Mem: 1.9G 164M 1.3G 7.6M 491M 1.7G Swap: 2.0G 0B 2.0G #当前swap2G 创建一个2G的文件 [root@fei-7 mnt]# dd if=/dev/zero of=/mnt/swap bs=1M count=2048 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 19.3321 s, 111 MB/s [root@fei-7 mnt]# du -h /mnt/swap #查看一下创建的文件 2.0G /mnt/swap 将文件格式化为swap [root@fei-7 mt]# mkswap /mnt/swap Setting up swapspace version 1, size = 2097148 KiB no label, UUID=c44df16e-2eb3-4132-9363-b0d32324c6a8 挂载并查看swap分区 [root@fei-7 mnt]# swapon /mnt/swap #将swap分区文件 swapon: /mnt/swap: insecure permissions 0644, 0600 suggested. [root@fei-7 mnt]# free -h total used free shared buff/cache available Mem: 1.9G 163M 17M 7.5M 1.8G 1.7G Swap: 4.0G 0B 4.0G #此时swap增加为2G 将分区信息写入/etc/fstab,如果不写入文件,则在下次启动后恢复原样。 [root@fei-7 mnt]# vim /etc/fstab [root@fei-7 mnt]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sat Feb 15 17:41:54 2020 # # 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=0362beab-af6c-4573-8907-b3eb62e36a81 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sr0 /media iso9660 defaults 0 0 /mnt/swap swap swap defaults 0 0 #写在了最后一行 完成之后重新启动检查,看是否依然是4G 重启后检查一下swap组成 [root@fei-7 ~]# swapon -s Filename Type Size Used Priority /mnt/swap file 2097148 0 -2 /dev/dm-1 partition 2097148 0 -3 #现在看来很成功 所以以上是通过swap分区文件增加swap空间的具体操作步骤。 2.缩减(删除) 卸载刚才挂载的swap文件。 [root@fei-7 ~]# swapoff /mnt/swap [root@fei-7 ~]# free -h total used free shared buff/cache available Mem: 1.8G 128M 1.5G 9.4M 203M 1.5G Swap: 2.0G 0B 2.0G #卸载后swap分区恢复2G 删除/etc/fstab下添加的挂载信息 [root@fei-7 ~]# vim /etc/fstab [root@fei-7 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sat Feb 15 17:41:54 2020 # # 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=0362beab-af6c-4573-8907-b3eb62e36a81 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sr0 /media iso9660 defaults 0 0 最后将swap文件删除 [root@fei-7 ~# rm -rf /mnt/swap 1 通过swap分区文件增加或者缩减swap空间这种方法较为简单,建议使用这种方法。 三.通过LVM扩容缩减swap空间 查看一下当前系统swap分区情况 [root@fei-7 ~]# free -h total used free shared buff/cache available Mem: 1.8G 138M 1.4G 9.4M 229M 1.4G Swap: 2.0G 0B 2.0G #确认是2G大。 1.扩容 如果对LVM还不熟悉,可以在此先了解一下:linux LVM逻辑卷相关命令及创建,修改过程 先查看一下逻辑卷(lvm)和逻辑卷(vg)组详细情况 [root@fei-7 ~]# lvdisplay /dev/centos/swap #swap文件可以在/etc/fstab或lsblk命令看到 --- Logical volume --- LV Path /dev/centos/swap LV Name swap #当前逻辑卷名称 VG Name centos #找到所属卷组名:centos LV UUID m4d0ur-Iz58-UAfd-tIPd-N5gM-Eqf8-NQvbvv LV Write Access read/write LV Creation host, time xiaoagiao, 2020-02-15 17:41:53 +0800 LV Status available # open 2 LV Size 2.00 GiB #大小 Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 [root@fei-7 ~]# vgdisplay centos --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 108.99 GiB PE Size 4.00 MiB Total PE 27902 Alloc PE / Size 27902 / 108.99 GiB Free PE / Size 0 / 0 #可以看到centos这个逻辑卷组并没有剩余空间了,如果有剩余空间可以直接添加到lv中。此时没有剩余则采取添加硬盘方式扩容。 VG UUID VWTn40-zXfH-77PH-riAc-HC1U-5lqQ-1juay8 此时添加一块硬盘,并查看。
[root@fei-7 ~]# fdisk -l |grep sd Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 41943039 19921920 8e Linux LVM Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors /dev/sdb1 2048 188745727 94371840 83 Linux Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors #新添加的磁盘/dev/sdc 将这个硬盘空间创建为物理卷 [root@fei-7 ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. [root@fei-7 ~]# pvs #查看一下当前物理卷 PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb1 centos lvm2 a-- <90.00g 0 /dev/sdc lvm2 --- 5.00g 5.00g #这就是新建的 接下来扩展centos这个卷组 [root@fei-7 ~]# vgextend centos /dev/sdc Volume group "centos" successfully extended [root@fei-7 ~]# vgdisplay centos --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 3 Act PV 3 VG Size <113.99 GiB PE Size 4.00 MiB Total PE 29181 Alloc PE / Size 27902 / 108.99 GiB Free PE / Size 1279 / <5.00 GiB #刚才剩余0.现在剩余5G VG UUID VWTn40-zXfH-77PH-riAc-HC1U-5lqQ-1juay8 到这一步之前分为两种情况: 如果在第一步查看centos这个卷组时,发现有剩余空间,则直接进行横线下操作。 若没有剩余,和演示的一样,则按照步骤依次进行。 接下来真正进行扩容,分为四步(卸载,扩展,格式化,挂载) 卸载swap分区 [root@fei-7 ~]# swapoff /dev/mapper/centos-swap 1 扩展swap逻辑卷 [root@fei-7 ~]# vgs #先看一下centos这个卷组为5G VG #PV #LV #SN Attr VSize VFree centos 3 2 0 wz--n- <113.99g <5.00g [root@fei-7 ~]# lvextend -L +2G /dev/mapper/centos-swap #给swap这个逻辑卷添加2G Size of logical volume centos/swap changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents). Logical volume centos/swap successfully resized. [root@fei-7 ~]# vgs #现在剩余3G VG #PV #LV #SN Attr VSize VFree centos 3 2 0 wz--n- <113.99g <3.00g [root@fei-7 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 106.99g swap centos -wi-a----- 4.00g #此时逻辑卷swap共4G 格式化新swap分区 [root@fei-7 ~]# mkswap /dev/mapper/centos-swap mkswap: /dev/mapper/centos-swap: warning: wiping old swap signature. Setting up swapspace version 1, size = 4194300 KiB no label, UUID=4be30881-944a-42c2-8d3e-d8fbd183b698 重新挂在swap分区 [root@fei-7 ~]# swapon /dev/mapper/centos-swap #挂载 [root@fei-7 ~]# free -h total used free shared buff/cache available Mem: 1.8G 130M 1.5G 9.4M 168M 1.5G Swap: 4.0G 0B 4.0G 到此处,LVM扩容swap完成 2.缩减 其实就是缩减这个名为swap的逻辑卷 卸载swap分区 缩减逻辑卷 [root@fei-7 ~]# lvreduce -L 2G /dev/mapper/centos-swap WARNING: Reducing active logical volume to 2.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce centos/swap? [y/n]: y Size of logical volume centos/swap changed from 4.00 GiB (1024 extents) to 2.00 GiB (512 extents). Logical volume centos/swap successfully resized. [root@fei-7 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 106.99g swap centos -wi-a----- 2.00g #此时已经变回2G [root@fei-7 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sdb1 centos lvm2 a-- <90.00g 0 /dev/sdc centos lvm2 a-- <5.00g <5.00g #centos卷组变回5G 格式化swap分区 [root@fei-7 ~]# mkswap /dev/mapper/centos-swap mkswap: /dev/mapper/centos-swap: warning: wiping old swap signature. Setting up swapspace version 1, size = 2097148 KiB no label, UUID=e6c3f988-8125-4574-8242-e7f3efcff1f5 重新挂载 [root@fei-7 ~]# swapon /dev/mapper/centos-swap [root@fei-7 ~]# free -h total used free shared buff/cache available Mem: 1.8G 128M 1.5G 9.4M 169M 1.5G Swap: 2.0G 0B 2.0G #重新变回2G – 以上是通过LVM扩容缩减swap空间全过程 – ———————————————— 版权声明:本文为CSDN博主「小萝卜112」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/wdwangye/article/details/109371782