一,基本分区
1,磁盘/硬盘/disk/简介
1.1 类型
按工作原理区分
机械
机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器, 数据转换器,接口, 缓存等几个部分组成。固态
SSD的优势
SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械硬盘的性能瓶颈,
拥有极高的存储性能,被认为是存储技术发展的未来新星。
固态硬盘的全集成电路化、无任何机械运动部件的革命性设计,从根本上解决了在移动办公环境下,对于数据读
写稳定性的需求。全集成电路化设计可以让固态硬盘
做成任何形状。与传统硬盘相比,SSD固态电子盘具有以下优点:
第一,SSD不需要机械结构,完全的半导体化,不存在数据查找时间、延迟时间和磁盘寻道时间,数据存取速度快。
第二,SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能够降到最小。
第三,得益于无机械部件及FLASH闪存芯片,SSD没有任何噪音,功耗低。
第四,质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。同时因其完全半导体化,
无结构限制,可根据实际情况设计成各种不同接口、形状的特殊电子硬盘。
图示
1.2 尺寸
分为3.5寸,2.5寸,1.8寸等1.3 插拔
热插拔,简单 比如说U盘 MP3 摄像头 那些 USB设备在电脑正常运行的时候 你可以 通过删除设备 将他们直接取下来
也可以在电脑正常运行时安装上去。
而非热插拔,也简单 比如说CPU 硬盘 内存。。
你不可能在电脑运行的时候 给他取下来吧...这样
若你直接取下来 电脑 硬件就会烧了的! 只能关机时取下来!
1.4 接口
早期的IDE——现在SATA I/II/III
早期服务器SISC——现在服务器SAS
序列式SCSI(SAS:Serial Attached SCSI)是一种电脑集线的技术,其功能主要是作为周边零件的数据传输,如:硬盘、CD-ROM等设备而设计的界面。序列式SCSI 由并行SCSI物理存储接口演化而来,是由ANSI INCITS T10技术委员会(T10 committee)开发及维护的新的存储接口标准。与并行方式相比,序列方式能提供更快速的通信传输速度以及更简易的配置。此外SAS并支持与序列式ATA(SATA)设备兼容,且两者可以使用相类似的电缆。
其他的还有PCIE FC等。
1.5 转速
转速分为5400rpm,7200rpm,10000rpm,15000rpm
1.6 厂商
硬盘的主要厂商有西部数据,希捷,三星日立金士顿之类。1.7 从存储连接方式(了解)
本地存储
外部存储 scs线 stat线 sas线 FC线
scsi线缆图示
网络存储 以太网(iscsi,glusterFS,ceph) FC网络
1.8术语
盘片 一块硬盘有若干盘片,每个盘片有可以存储数据的上、下两盘面(Side)。这些盘面堆叠在主轴上高速旋转,它们从上至下从“0”开始依次编号。
柱面 所有盘面上的同一磁道构成一个圆柱,称作柱面
扇区 将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时读出或写入。硬盘的第一个扇区,叫做引导扇区。
磁道 每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道;磁道从外向内从0开始顺序编号。
图示
1.9 命名
kernel对不同接口硬盘命名方式OS IDE(并口) SATA(串口) SCSI
RHEL5 /dev/hda /dev/sda /dev/sda
RHEL6 /dev/sda /dev/sda /dev/sda
RHEL7 /dev/sda /dev/sda /dev/sda
KVM /dev/vda(半虚拟化驱动)
KVM增加硬盘
半虚拟化驱动磁盘: online
全虚拟化驱动磁盘: offline
/dev/sda(全虚拟化驱动)
2.0 分区
MBR
MBR <2TB fdisk(4个主分区,扩展分区,逻辑分区)
例如: 3主 + 1扩展(n逻辑)
图示
GPT
GPT > 2TB gdisk(parted) 128个主分区
GUID磁盘分区表(GUID Partition Table,缩写:GPT)
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
2,创建RAID
RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。
RAID10:高可靠性与高效磁盘结构一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。主要用于容量不大,但要求速度和差错控制的数据库中。
RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行。请参考《Linux就该这么学》使用RAID硬盘技术章节。
真实服务器配置RAID : http://www.jb51.net/article/53814.htm
3,管理磁盘
3.1 添加磁盘
KVM增加硬盘
半虚拟化驱动磁盘: online
全虚拟化驱动磁盘: offline
VMWARE增加磁盘
1编辑虚拟机设置
2增加磁盘
3.2 管理磁盘流程三部曲
分区(MBR或者GPT) ---->文件系统 Filesystem ----> 挂载mount
3.3 查看磁盘信息
方法1
注意:kvm虚拟化磁盘vda,真实服务器上sda
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 1月 25 09:35 /dev/sda
brw-rw----. 1 root disk 8, 1 1月 25 09:35 /dev/sda1
brw-rw----. 1 root disk 8, 2 1月 25 09:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 1月 25 09:35 /dev/sdb
brw-rw----. 1 root disk 8, 32 1月 25 09:35 /dev/sdc
brw-rw----. 1 root disk 8, 48 1月 25 09:35 /dev/sdd
/dev/sdb和/dev/sdc相当于购买的新磁盘。
方法2
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
vdc 252:32 0 8G 0 disk
名称 设备类型 序号 是否可移动设备 大小 是否只读 磁盘或分区 挂载点
注意
vmware的磁盘名称/dev/sda
kvm的磁盘名称/dev/vda
3.4 创建分区
fdisk(MBR)
MBR 管理分区
创建分区
[root@localhost ~]# fdisk /dev/sdb
n //创建新分区
p //主分区
1 //1号分区
回车 //起始扇区
+100M //结束大小
w //保存分区设置。
查看分区创建信息
# fdisk -l /dev/sdb
# partprobe /dev/sdb //在有缓存的时候,刷新磁盘分区表。
[root@localhost ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x787eea5e
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
/dev/sdb2 411648 1026047 307200 83 Linux
/dev/sdb3 1026048 1435647 204800 83 Linux
/dev/sdb4 1435648 4194303 1379328 5 Extended
/dev/sdb5 1437696 1847295 204800 83 Linux
/dev/sdb6 1849344 2258943 204800 83 Linux
/dev/sdb7 2260992 4194303 966656 83 Linux
[root@localhost ~]#
不管是ll 还是fdisk,都能看到多个新分区,sdb1~sdb3是主分区,sdb4扩展分区,sdb5~7逻辑分区。
3.4 创建文件系统(格式化)centos7默认使用xfs
文件系统:储物柜;格子柜
方法一:# mkfs.ext4 /dev/sdb1
问题:未挂载的分区,如何查询文件系统
方法二:# mkfs.xfs /dev/sdb2(了解)
文件系统类型XFS和EXT4在后续章节讲解。在此使用哪种都可以。
后续的分区,如果使用,就必须格式化
3.5 挂载mount
方法一:手动挂载(重启失效)
创建挂载点,一个分区一个挂载点
# mkdir /mnt/disk1
# mkdir /mnt/disk2
# mount -t ext4 /dev/sdb1 /mnt/disk1(了解) //手动不推荐
# mount -t xfs /dev/sdb2 /mnt/disk2 //手动不推荐
方法二:自动挂载(重启不失效)
第一步:查看分区的ID
# blkid
第二步:使用UUID来自动挂载分区
# vim /etc/fstab
UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0
UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 defaults 0 0
分区信息 挂载点(文件夹) 文件系统类型 属性(默认) 压缩 检测
第三步:手动刷新
# mount -a
注意/etc/fstab中有固定格式
磁盘 挂载点 文件系统 属性 备份 检测
/dev/vdb1 /mnt/disk1 xfs或者auto default 0 0
3.6 查看挂载信息
方法1 df -hT
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 xfs 197M 48M 150M 24% /mysql_data
分区 文件系统 大小 占用 空闲 占比 挂载点
一般df看的是磁盘分区大小。
方法2 mount
[root@server0 ~]# mount
/dev/sdb1 on /mysql_data type xfs (rw,relatime,seclabel,attr2,inode64,noquoa)
/dev/sdb3 on /mnt/disk1/disk2/disk3/disk4 type ext4 (rw,relatime,seclabel,dta=ordered)
mount 看的是磁盘有没有特殊属性,具体属性在后续讲解。
3.7 磁盘管理方式2gdisk(了解)
本章后续使用的是fdisk 创建分区,gdisk做为了解部分。
====gdisk====
GPT 128个主分区
创建分区
# gdisk -l /dev/vdc
# gdisk /dev/vdc
# partprobe /dev/vdc
# ll /dev/vdc*
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
brw-rw----. 1 root disk 253, 33 Jun 6 17:38 /dev/vdc1
brw-rw----. 1 root disk 253, 34 Jun 6 17:38 /dev/vdc2
格式化(略)
挂载 (略)
parted /dev/sda //分区管理工具
mklabel msdos //将分区转为mbr
mklabel gpt //将分区转为GPT
二,逻辑卷LVM
1, 目的:管理磁盘的一种方式,性质与基本磁盘无异
2, 特点:随意扩张大小,缩减大小,快照备份。
3, 流程
基本分区(MBR|GPT) ----> Filesystem ----> mount
逻辑卷 ----> Filesystem ----> mount
4, 工作原理
名词
PV:物理卷(Physical volume)
VG:卷组(Volume Group)
LV:逻辑卷(Logical Volume)
PE:物理块(Physical Extent)
LE:逻辑块(Logical Extent)
图示(可以放大看)
5,创建LVM
5.1 准备物理磁盘
0. 准备物理磁盘(可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上))
[root@server0 ~]# ll /dev/sd*
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/sdc
brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/sdd
brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/sde
建议使用相同的磁盘名称。
如果再CENTOS6中,千万记得将分区类型更改为8E
5.2 pv
1 将物理磁盘,转换成物理卷-PV
[root@server0 ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
查看PV信息
[root@server0 ~]# pvscan
PV /dev/vdd lvm2 [2.00 GiB]
Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]
[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd lvm2 a-- 2.00g 2.00g
[root@server0 ~]# pvdisplay
5.3 vg
创建卷组-VG
[root@server0 ~]# vgcreate vg1 /dev/sdc
Volume group "vg1" successfully created
查看卷组信息
第一种方法,查看卷组的摘要信息。卷组名,物理卷数量,逻辑卷数量,大小等。
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 0 0 wz--n- 2.00g 2.00g
第二种方法,扫描卷组信息。
[root@server0 ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2
第三种方法。显示卷组详细信息。
[root@server0 ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.00 GiB //重点观察
PE Size 4.00 MiB //重点观察
Total PE 511 //重点观察
Alloc PE / Size 0 / 0
Free PE / Size 511 / 2.00 GiB
VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V
补充:vgcreate -s 10M vg1 /dev/sdb1 //表示创建卷组vg1并指定PE大小为10M
lvcreate -l 5 lv1 vg1 // 创建逻辑卷lv1并指定块大小为5 也就是5个PE大小就是50M
5.4 lv
创建逻辑卷
[root@server0 ~]# lvcreate -L 200M -n lv2 vg1
指定大小,单位M,G
查看LV
[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [400.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [200.00 MiB] inherit
5.5 创建文件系统并挂载
方法一:手动挂载
创建文件系统
[root@server0 ~]# mkfs.ext4 /dev/vg1/lv2
创建挂载点
[root@server0 ~]# mkdir /mnt/lv2
挂载
[root@server0 ~]#mount /dev/vg1/lv2 /lv2
查看挂载结果
[root@server0 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1
/dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2
逻辑卷管理完毕,就可以向挂载点写入数据了。
方法二:自动挂载
vim /etc/fstab
/dev/vg1/lv1 /mysql_data ext4 defaults 0 0
分区 挂载点 文件系统 属性 压缩 检测
mount -a
6,VG管理
6.1 ==扩大VG vgextend==
环境:/dev/vg1 容量由4G 扩容到 6G。
==扩大VG vgextend==
步骤1,创建PV。而后使用第二步,将PV增加到VG中。
[root@server0 ~]# pvcreate /dev/sdd1
步骤2:扩展VG,同时包含方法1.
[root@server0 ~]# vgextend vg1 /dev/sdd1
Volume group "vg1" successfully extended
扩容完成
查看VG
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 3.99g 3.76g
6.2 ==减小VG vgreduce==
警告
==减小VG ,命令虽少。但千万需要注意的是数据迁移。
环境介绍
卷组vg1
物理卷sdc,sdd1和sde(查看物理卷pvs命令)
sdc物理卷中有数据
为了避免vg缩减影响数据,请先将sdd中的数据移动到sde中。
查看当前的VG中PV的使用情况
[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc vg1 lvm2 a-- 2.00g 1.76g
/dev/sdd1 vg1 lvm2 a-- 2.00g 2.00g
/dev/sde vg1 lvm2 a-- 2.00g 2.00g
注意观察,PV的空间。一个是使用过的,一个是满的。
pvmove,会将sdd中的数据,移动到sde中
[root@server0 ~]# pvmove /dev/sdc
/dev/sdc: Moved: 16.7%
/dev/sdc: Moved: 100.0%
可以看到移动过程。
再次查看,空间已经发生变化
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdc vg1 lvm2 a-- <2.00g <2.00g
/dev/sdd1 vg1 lvm2 a-- <2.00g 1.80g
/dev/sde vg1 lvm2 a-- <2.00g <2.00g
vgreduce VG缩减。
[root@server0 ~]# vgreduce vg1 /dev/sdd
Removed "/dev/sdd" from volume group "vg1"
再次观察,VG中少了一个PV
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 2 0 wz--n- 2.00g 1.76g
观察,PV的数量变少了。
7,LV扩容
扩大LV lvextend
1. lv扩容
1.查看VG空间。
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 1.88g 1.00g
请观察,VG是否有剩余空间。
2.扩容LV。
[root@server0 ~]# lvextend -L +200M /dev/vg1/lv2
增加200M空间,给lv2
查看LV
[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [300.00 MiB] inherit
观看LV大小已经发生改变。
如果希望缩减LV,1请注意数据保存。2使用lvreduce
注意
xfs的lvm不支持缩容
Xfs filesystem shrinking is unsupported
2. FS扩容
先观察文件系统当前容量。
[root@server0 ~]# df -Th
/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
. ext2/3/4文件系统扩容
[root@server0 ~]# resize2fs /dev/vg1/lv2
再次观察df -hT 的分区大小。和上一次的对比一下。大小已经发生改变。
查看FS
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
请注意对比,之前的输出结果,文件系统的大小发生改变。
如果您的文件系统,不是EXT4。那请用下列命令来更新XFS文件系统
xfs文件系统扩容请注意,不同的文件系统,扩容指令不同。
[root@server0 ~]# xfs_growfs /dev/vg1/lv1
减小LV lvreduce
减容注意事项(了解)
环境介绍
逻辑卷/dev/vg1/lv2,大小400M,并挂载到/mnt/lv2
需要先将lv卸载(umount),再进行减容操作。
1.首先查看磁盘使用情况
df -hT
注意分区大小400M
/dev/mapper/vg1-lv2 ext4 380M 2.3M 356M 1% /mnt/lv2
2、卸载
umount /dev/vg1/lv2
3、调整分区大小
e2fsck -f /dev/vg1/lv2
resize2fs -p /dev/vg1/lv2 200M
4、设置空闲空间,减容
lvreduce -L 200M /dev/vg1/lv2
5、挂载上/mnt/lv2,查看磁盘使用情况
mount /dev/vg1/lv2 /mnt/lv2/
df -h
看到分区大小已经200M
/dev/mapper/vg1-lv2 ext4 186M 1.6M 171M 1% /mnt
千万注意,不要对已经挂载的LV进行兼容,会损坏文件系统。
千万注意,缩减后的LV大小,要大于存储数据的大小。
(重新格式化才能用)
8, LVM快照snapshot
快照的目的
快速-------备份数据。
快照与备份
备份原理
备份窗口
数据一致性
快照技术
COW
ROW
1. 创建快照 (EXT4)
快照之前准备一些文件
1. 创建快照 卷(EXT4)
[root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
或者这样看呢,创建LV,名字lv2-snap,根据lv2进行快照,大小128M
lvcreate -n lv2-snap -s /dev/vg1/lv2 -L 128M
2 查询快照卷大小。
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos--- 512.00m
lv2-snap vg1 swi-aos--- 128.00m lv2 5.92
实验到这里就结束了。
注意:制作快照限制,受VG大小。
2.挂载快照卷,恢复数据(验证)
3 将快照卷挂载,拷贝出数据。可以用作回复数据使用了。
[root@server0 ~]# mkdir /mnt/lv2-snap
[root@server0 ~]# mount -o ro /dev/vg1/lv2-snap /mnt/lv2-snap/
3. 查看Snapshot
1 查看两个卷的挂载情况。
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
/dev/mapper/vg1-lv2--snap ext4 488M 32M 429M 7% /mnt/lv2-snap
2 查看两个卷的关系
[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
ACTIVE Original '/dev/vg1/lv2' [512.00 MiB] inherit
ACTIVE Snapshot '/dev/vg1/lv2-snap' [128.00 MiB] inherit
3 查看文件内容。根据情况进行使用。
[root@server0 ~]# ls /mnt/lv2
etc lost+found
[root@server0 ~]# ls /mnt/lv2-snap/
etc lost+found
4. 观察Snapshot
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos--- 512.00m
lv2-snap vg1 swi-aos--- 128.00m lv2 30.56
4.提示xfs文件系统快照注意事项
XFS:不识别uuid ,所以需要单独加上一个-o nouuid 来忽略掉。就可以使用xfs的快照了。
[root@server0 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/
挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据
9、命令总结
看帮助,查文档,LVM命令一大堆。头疼记不住。
归类汇总
lvm卸载流程
1.umountFS
2.删除LV。
3.将PV从所在的VG中删除。
4.删除VG。
问题汇总
先删除pv,后删除vg时报错。
Volume group "vg1" not found, is inconsistent or has PVs missing.
vgreduce --removemissing --force vg1
三,交换分区管理Swap
1,简介
1.1 作用
‘提升‘ 内存的容量,防止OOM(Out Of Memory)
1.2 swap大小
推荐
设置交换分区大小为内存的2倍
生产
大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间;
大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间;
大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间。
2,查看当前的交换分区
[root@server0 ~]# free -m
total used free shared buff/cache available
Mem: 489 140 145 4 202 304
Swap: 0 0 0
[root@server0 ~]# swapon -s
当前系统中,没有swap。如果你的系统中有,请观察大小,后续实验会增加swap大小。
3,增加交换分区
类型
可以是分区或者LVM或者File
===分区/LVM===(方法一)
===分区===
1. 准备分区(准备将/dev/sde磁盘,划分为1G分区)
[root@server0 ~]# fdisk /dev/sde (t转换分区的ID 82)
[root@server0 ~]# partprobe /dev/sde
[root@server0 ~]# ll /dev/sde*
brw-rw----. 1 root disk 253, 16 12月 6 10:18 /dev/sde
brw-rw----. 1 root disk 253, 17 12月 6 10:18 /dev/sde1
2.格式化
[root@server0 ~]# mkswap /dev/sde1
3.挂载
[root@server0 ~]# blkid /dev/sde1
/dev/sde1: UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" TYPE="swap"
[root@server0 ~]# vim /etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults 0 0
[root@server0 ~]# swapon -a (读取/etc/fstab)
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 524284 0 -1
===File===(了解 方法二)
===File===
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.3G 6.8G 33% /
[root@server0 ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
或者
[root@server0 ~]# dd </dev/zero >/swap2.img bs=1M count=512
[root@server0 ~]# mkswap /swap2.img
[root@server0 ~]# vim /etc/fstab
/swap2.img swap swap defaults 0 0
由于文件型扩展SWAP会提示权限不够。所以扩大一下权限。
[root@server0 ~]# swapon -a
swapon: /swap2.img: insecure permissions 0644, 0600 suggested.
[root@server0 ~]# chmod 600 /swap2.img
[root@server0 ~]# swapon -a
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 524284 0 -1
/swap2.img file 524284 0 -2
4,对交换分区调整优先级[扩展]
关于swap优先级
swap分区的优先级(Priority)从高到低依次使用,最高32767,最低优先级是0
这样设置使得Linux并行的使用优先级相同的swap分区(Priority = 1的分区),这会大幅的提高对swap的读写。当这些分区满了,就会使用较低优先级swap分区(Priority = 0的分区)
设置swap优先级
多个交换分区分布在不同的磁盘
挂载时,使用相同的优先级
[root@server0 ~]# vim /etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults,pri=1 0 0
UUID="ea5b1c77-e540-465c-9644-0d75457f8b45" swap swap defaults,pri=1 0 0
pri是优先级的意思,设置相同即可。
[root@server0 ~]# swapon -a
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/sdb1 partition 524284 0 1
/dev/sdc1 partition 524284 0 1