Linux Swap扩容
最近在做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扩容的更多相关文章
- Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)
请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...
- linux 系统扩容 VMware Centos---VMware ESXi
用到的命令 df fdisk pvcreate pvdisplay vgdisplay vgextend lvdisplay lvextend resize2fs 0 ...
- Linux Swap交换分区介绍总结
Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RA ...
- 我就是认真:Linux SWAP 深度解读(必须收藏)
我就是认真:Linux SWAP 深度解读(必须收藏) http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660097& ...
- linux swap 分区调控(swap分区 lvm管理)
注:linux swap分区 采用lvm管理,调控可以采用下面的方法 一.查看 swap lv [root@testdb ~]# vgdisplay -v Finding all volume ...
- Linux Swap交换分区探讨
Swap交换分区概念 Linux divides its physical RAM (random access memory) into chucks of memory called pages. ...
- Linux系统盘扩容-物理机非虚拟机
# Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...
- (转)vmware下给linux虚拟机扩容
“Well, here’s another fine mess you’ve gotten me into” Let us pretend that you have an Ubuntu Server ...
- 怎么设置Linux swap分区?方法教程
如何设置Linux swap分区 看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下. 什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其 ...
随机推荐
- 深度学习(十三) R-CNN Fast RCNN
object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题 ...
- Linux环境进程间通信(二): 信号--转载
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html http://www.ibm.com/developerworks ...
- kmp java implement--转
http://cs.nyu.edu/~yap/classes/basic/progs/patternMatching/KMP.java /** * @file KMP.java * @synopsis ...
- Java Stream File & IO
摘录自:http://www.runoob.com/java/java-files-io.html Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需 ...
- JAVA泛型——协变
在上篇<JAVA泛型——基本使用>这篇文章中遗留以下问题,即将子类型Table或者也能添加到父类型Auction的泛型中,要实现这种功能必须借助于协变. 实验准备 现在在<JAVA泛 ...
- hadoop学习笔记(二):简单启动
一.hadoop组件依赖关系 二.hadoop日志格式: 两种日志,分别以out和log结尾: 1 以log结尾的日志:通过log4j日志记录格式进行记录的日志,采用日常滚动文件后缀策略来命名日志文件 ...
- 如何将本地文件通过终端上传到linux服务器或从linux主机下载文件到本地
第一种方式: SecureCRT下上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下.下载文件只需在shell终端仿 ...
- Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据
原文出自:https://blog.csdn.net/seesun2012 package com.seesun2012.com; /** * Java大批量修改.删除数据,按指定标识符分隔字符串 * ...
- 在Asp.Net Core中取得物理路径
在Asp.Net Core中取得物理路径: 从ASP.NET Core RC2开始,可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径,如下所示: ...
- Java学习--使用 Math 类操作数据
使用 Math 类操作数据 Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: M ...