最近在做rac,在环境检查的时候发现swap空间检查不通过,所以我们第一想到的是对swap进行扩容,那么swap扩容有哪些方法呢?这里主要介绍两种方法,一通过添加额外磁盘,扩展swap分区,二是通过本地多余空间的方式扩展swap分区。

一、现象描述

Check: Swap space
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac02 10GB (1.0485756E7KB) 15.7037GB (1.6466544E7KB) failed
rac01 10GB (1.0485756E7KB) 15.7032GB (1.6466E7KB) failed

查看内容使用情况:

[root@rac01 ~]# free -g
total used free shared buffers cached
Mem: 15 8 7 0 0 8
-/+ buffers/cache: 0 15
Swap: 9 0 9

查看磁盘分区挂在情况:

[root@rac01 ~]# cat /etc/fstab
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=ea4095fa-f040-1234-b0b5-abcd1532d332 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/shm /tmp tmpfs defaults 0 0
[root@rac01 ~]# fdisk -l /dev/mapper/VolGroup-lv_swap

Disk /dev/mapper/VolGroup-lv_swap: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

这里看到swap空间为10.7GB,而我们系统内存时16GB,所以至少要扩展6GB才能达到rac检查的要求

二、swap扩容

1、通过添加磁盘扩容

本系统看到是通过逻辑卷做的swap分区,那么我们可以考虑通过逻辑卷扩展的方式扩容swap分区,如果逻辑卷组空间有富余最好,如果没有富余而我们磁盘添加允许的情况下可以通过添加额外的磁盘来扩展逻辑卷组,进而扩展逻辑卷,再到swap分区。本系统是虚拟机,所以扩展磁盘还是比较方便的,具体操作步骤如下:

查看逻辑卷——>查看逻辑卷组——>逻辑卷组扩展(空间不足的情况下)——>卸载逻辑卷——>逻辑卷扩展——>格式化逻辑卷——>重新挂载

1)查看逻辑卷和逻辑卷组

[root@rac01 ~]# lvdisplay    /dev/VolGroup/lv_swap
--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID 4K2GGg-An39-9Vim-RdQW-U0es-BU9R-gwKoBb
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-10-11 14:42:02 +0800
LV Status available
# open 1
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
[root@rac01 ~]# vgdisplay  VolGroup
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 49.51 GiB
PE Size 4.00 MiB
Total PE 12674
Alloc PE / Size 7680 / 30.00 GiB
Free PE / Size 4994 / 19.51 GiB
VG UUID HYL3bE-tccs-SUil-i75E-qUqG-d6dD-6jzj2u

这里看到swap对应的逻辑卷组还有多余的19G空间,所以我们可以直接扩容swap分区

2)卸载swap分区

[root@rac01 ~]# swapoff  /dev/mapper/VolGroup-lv_swap

3)扩展swap逻辑卷

[root@rac01 ~]# lvextend  -L +6GB  /dev/mapper/VolGroup-lv_swap
Size of logical volume VolGroup/lv_swap changed from 10.00 GiB (2560 extents) to 16.00 GiB (4096 extents).
Logical volume lv_swap successfully resized.
[root@rac01 ~]# fdisk -l  /dev/mapper/VolGroup-lv_swap

Disk /dev/mapper/VolGroup-lv_swap: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

4)格式化新swap分区

[root@rac01 ~]# mkswap  /dev/mapper/VolGroup-lv_swap
mkswap: /dev/mapper/VolGroup-lv_swap: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 16777212 KiB
no label, UUID=5cef886d-5537-4aa0-88d8-f4ce92e01698

5)重新挂在swap分区

[root@rac01 ~]# swapon /dev/mapper/VolGroup-lv_swap
[root@rac01 ~]# free -g
total used free shared buffers cached
Mem: 15 8 7 0 0 8
-/+ buffers/cache: 0 15
Swap: 15 0 15

至此swap分区扩容完毕,但如果我们卷组容量不够的情况下如何扩展呢?首先肯定是扩展卷组,然后再重复上面的步骤。下面将扩展卷组的方法在下面补充

磁盘添加

[root@rac02 ~]# fdisk -l |grep sd
Disk /dev/sda: 53.7 GB, 53687091200 bytes
/dev/sda1 * 1 64 512000 83 Linux
/dev/sda2 64 6528 51915776 8e Linux LVM
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
Disk /dev/sdc: 8589 MB, 8589934592 bytes
Disk /dev/sdd: 5368 MB, 5368709120 bytes
/dev/sdd1 1 652 5237158+ 83 Linux
Disk /dev/sdf: 107.4 GB, 107374182400 bytes
/dev/sdf1 1 13054 104856223+ 83 Linux
Disk /dev/sde: 5368 MB, 5368709120 bytes
/dev/sde1 1 652 5237158+ 83 Linux
Disk /dev/sdg: 10.7 GB, 10737418240 bytes
/dev/sdg1 1 1305 10482381 83 Linux

6)创建新的物理卷

[root@rac02 ~]# pvcreate  /dev/sdc
Physical volume "/dev/sdc" successfully created

7)扩展逻辑卷组

[root@rac02 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 49.51 GiB
PE Size 4.00 MiB
Total PE 12674
Alloc PE / Size 7680 / 30.00 GiB
Free PE / Size 4994 / 19.51 GiB
VG UUID HYL3bE-tccs-SUil-i75E-qUqG-d6dD-6jzj2u
[root@rac02 ~]# vgextend VolGroup /dev/sdc
Volume group "VolGroup" successfully extended
[root@rac02 ~]# vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
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 57.50 GiB
PE Size 4.00 MiB
Total PE 14721
Alloc PE / Size 7680 / 30.00 GiB
Free PE / Size 7041 / 27.50 GiB
VG UUID HYL3bE-tccs-SUil-i75E-qUqG-d6dD-6jzj2u

这里逻辑卷组扩容完毕,后面可以重复1——5步骤完成swap扩容。

正常数据库扩容后需要执行以下命令才能看到扩容后的磁盘容量:

e2fsck -f /dev/vgtest/vgtest-lv

resize2fs  /dev/vgtest/vgtest-lv

2、通过本身磁盘剩余空间扩容

1)创建大的swap文件

dd if=/dev/zero of=/home/swap bs=1024 count=20971520
2)格式化swap空间

/sbin/mkswap /home/swap

3)关闭旧swap

swapoff /dev/mapper/vg_swap

4)开启新swap

/sbin/swapon /home/swap

5)开机挂载

/home/swap swap                    swap    defaults        0 0

###备注:在线添加硬盘并扩展逻辑分区

以root身份运行echo "scsi add-single-device a b c d" > /proc/scsi/scsi

a是硬盘所在SCSI控制器号(一般机器就一个SCSI控制器,所以就是0);
b是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了);
c是硬盘的SCSI ID号(可以通过具体插入的硬盘插槽来判断);
d是硬盘的lun号(默认情况都是0) root@ubuntu:~# cat /proc/scsi/scsi
root@ubuntu:~# echo "scsi add-single-device 2 0 11 0" > /proc/scsi/scsi
root@ubuntu:~# pvcreate /dev/sdk
root@ubuntu:~# vgextend lhvg /dev/sdk
root@ubuntu:~# lvextend -l + /dev/mapper/vg-lv_data
root@ubuntu:~# resize2fs -p /dev/vg/lv_data
##查看磁盘和卷对应关系
pvscan
lvscan
vgscam

Linux Swap扩容的更多相关文章

  1. Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)

    请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...

  2. linux 系统扩容 VMware Centos---VMware ESXi

    用到的命令 df  fdisk  pvcreate   pvdisplay    vgdisplay    vgextend    lvdisplay    lvextend  resize2fs 0 ...

  3. Linux Swap交换分区介绍总结

    Swap交换分区概念   什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RA ...

  4. 我就是认真:Linux SWAP 深度解读(必须收藏)

    我就是认真:Linux SWAP 深度解读(必须收藏) http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660097& ...

  5. linux swap 分区调控(swap分区 lvm管理)

    注:linux swap分区 采用lvm管理,调控可以采用下面的方法 一.查看 swap    lv [root@testdb ~]# vgdisplay -v Finding all volume ...

  6. Linux Swap交换分区探讨

    Swap交换分区概念 Linux divides its physical RAM (random access memory) into chucks of memory called pages. ...

  7. Linux系统盘扩容-物理机非虚拟机

    # Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...

  8. (转)vmware下给linux虚拟机扩容

    “Well, here’s another fine mess you’ve gotten me into” Let us pretend that you have an Ubuntu Server ...

  9. 怎么设置Linux swap分区?方法教程

    如何设置Linux swap分区 看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下. 什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其 ...

随机推荐

  1. 如何对react进行性能优化

    React本身就非常关注性能,其提供的虚拟DOM搭配上DIff算法,实现对DOM操作最小粒度的改变也是非常高效的,然而其组件的渲染机制,也决定了在对组件更新时还可以进行更细致的优化.  react组件 ...

  2. 浅谈js中的垃圾两种回收机制

    一.标记清除 标记清除的主要思想是先建立各个对象的关联,然后从根节点出发,使用广度优先搜索依次标记所有对象,那些不能被标记的对象就应该作为垃圾回收. 这种方式的主要缺点就是如果某些对象被清理后,内存是 ...

  3. switch表达式、case穿透

    记得第一次学switch的时候那是还是学习c语言的时候,整体的写if-else,switch,现在回想起来已经是很多年前的事了,好了今天让我们再来回顾下简单的switch 语法 switch(n) { ...

  4. Java reflect 反射 3 Class.forname

    Class.forName("xxx.xx.xx") 1 作用:加载类文件Class.forName(xxx.xx.xx) 返回的是一个类 而非对象 作用就是把对象的模板加载到内存 ...

  5. 弗格森&红魔

    本周日曼联对阵斯旺西时,一位名叫皮特-莫利纽克斯的58岁老人,将会举起一张老旧的床单,就如他曾做过的那样.那一次“臭名昭着”的行为要追溯到1989年12月,弗格森当时已经来到了悬崖边上,他的背后是一堵 ...

  6. HTTPS的误解(一)

    大家好,SSL证书越来越受到人们的关注,经常有人会说HTTPS只有登录页才需要,而且会使网站速度下降,易维信(EVTrust)给大家澄清了一些HTTPS协议容易产生误解的地方,增长一些网页加密通信的知 ...

  7. 基于 Annotation 的 Spring AOP 权限验证方法的实现

    1. 配置 applicationContext 在 Spring 中支持 AOP 的配置非常的简单,只需要在 Spring 配置文件 applicationContext.xml 中添加: < ...

  8. select2插件改造之设置自定义选项 源码

    改造特性: 适应业务需要,选项里面包含“其他”其它”,可以点击填写并设置自定义选项 效果图: 具体代码不做阐述,如有类似需求,请私信.主要源码: /* Copyright 2012 Igor Vayn ...

  9. 使用AngularJS 添加行修改、删除表格数据

    https://blog.csdn.net/xin_x1n/article/details/53070144 <html xmlns="http://www.w3.org/1999/x ...

  10. Android Viewpage 滑块

    依赖: implementation 'com.android.support:appcompat-v7:28.0.0' 在主页面layout <android.support.v4.view. ...