如何扩容缩减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