X 如何扩容缩减swap分区

如何扩容缩减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
原文地址:https://www.cnblogs.com/chendian0/p/14672185.html