查看交换分区: [root@localhost ~]# free -m ---查看交换分区
例:创建分区
[root@localhost ~]# fdisk /dev/sda
Command (m for help): n --- 创建分区
Value out of range.
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p --- 主分区
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +2G
Command (m for help): p ---打印分区信息
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 83 Linux --- 83对应linux类型
Command (m for help): l --- 查看分区类型
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
........
例2:更改分区类型
Command (m for help): t --- 更改分区类型
Selected partition 1 --- 目前只有一个,默认修改一号分区类型
Hex code (type L to list all codes): 82 --- 将分区类型修改为82
Changed type of partition 'Linux' to 'Linux swap / Solaris'. --- 分区类型已成功修改为linux交换分区
Command (m for help): p
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4196351 4194304 2G 82 Linux swap / Solaris
例3:格式化
[root@localhost ~]# mkswap /dev/sda1 --- 格式化
[root@localhost ~]# free -m --- 查看交换分区
total used free shared buff/cache available
Mem: 1806 630 756 9 419 1004
Swap: 2047 0 2047
(4)挂载分类:
<1> 临时挂载:swapon 设备名
[root@localhost ~]# swapon /dev/sda1 --- 临时挂载
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 631 754 9 419 1003
Swap: 4095 0 4095
[root@localhost ~]# swapoff /dev/sda1 --- 去掉临时挂载
<2> 永久挂载:添加进/etc/fstab文件中
实现UUID挂载
[root@localhost ~]# blkid /dev/sda1 --- 查询UUID
/dev/sda1: UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" TYPE="swap" PARTUUID="9468c7dc-01"
[root@localhost ~]# vim /etc/fstab --- 永久挂载
/dev/mapper/rhel-swap swap swap defaults 0 0
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap swap defaults 0 0 --- UUID挂载
[root@localhost ~]# tail -1 /etc/fstab --- 查看
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap swap defaults 0 0
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 632 733 9 439 1001
Swap: 2047 0 2047
[root@localhost ~]# swapon -a --- 相当于激活在/etc/fstab文件中写入的,实现永久挂载
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1806 634 731 9 439 999
Swap: 4095 0 4095
命令 | 功能 |
mkswap 分区设备名
|
将指定的分区格式化为 swap 交换文件系统
|
swapon 交换分区设备名 | -a
|
启用 ( 或激活 ) 指定的交换分区或所有交换分区
|
swapoff 交换分区设备名 | -a
|
禁用指定的交换分区或所有交换分区
|
swapon -s
|
查看交换分区的使用情况
|
free -m
|
以兆字节为单位显示物理内存、交换分区的使用情况
|
缺点:不论是MBR还是GPT分区,如果挂载目录的空间用尽,都无法实行动态扩展
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。
LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。
物理存储介质:这里指系统的存储设备:硬盘。如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。即卷组由物理卷组成,类似于非LVM系统中的物理硬盘,可以在卷组上创建一个或多个"LVM分区"(逻辑卷)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组
常用命令:
-n lv名称
-L lv大小
-l lv大小(例:-l 50 --- 50个PE大小,50*4M=200M)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。默认为 4MB
查看物理区域大小:[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name rhel
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 <19.00 GiB
PE Size 4.00 MiB --- 默认为4M
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID xcJ9cx-zQad-lQof-RtKg-7Vf3-W74N-pgvmOh
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。在同一个卷组中,LE的大小和PE是相同的,并且一一对应
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。 VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置
命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
<1> 正向操作:PV ---> VG ---> LV
例1:先分区 --- 三个主分区,每个分区为1G
首先删除之前创建的分区
[root@localhost ~]# vim /etc/fstab
/dev/mapper/rhel-swap swap swap defaults 0 0
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap swap defaults 0 0 --- 将此行删除
[root@localhost ~]# swapoff /dev/sda1 --- 卸除挂载
[root@localhost ~]# fdisk /dev/sda --- 进入创建分区
Command (m for help): d --- 删除之前创建的分区
Command (m for help): n --- 创建分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): --- 默认创建主分区
Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +1G
Command (m for help): n
Select (default p):
Using default response p.
Partition number (2-4, default 2):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-20971519, default 20971519): +1G
Command (m for help): n
Select (default p):
Using default response p.
Partition number (3,4, default 3):
Last sector, +sectors or +size{K,M,G,T,P} (4196352-20971519, default 20971519): +1G
Command (m for help): p --- 打印分区信息
/dev/sda1 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 4196351 2097152 1G 83 Linux
/dev/sda3 4196352 6293503 2097152 1G 83 Linux
例2:修改分区类型
Command (m for help): p
/dev/sda1 2048 2099199 2097152 1G 8e Linux LVM
/dev/sda2 2099200 4196351 2097152 1G 8e Linux LVM
/dev/sda3 4196352 6293503 2097152 1G 8e Linux LVM
Command (m for help): w --- 保存退出
例3:创建PV
[root@localhost ~]# pvcreate /dev/sda{1..3} --- 创建pv(3个物理卷创建成功)
Physical volume "/dev/sda1" successfully created.
Physical volume "/dev/sda2" successfully created.
Physical volume "/dev/sda3" successfully created.
查看:pvs、pvdispaly、pvscan
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/nvme0n1p2 rhel lvm2 a-- <19.00g 0
/dev/sda1 lvm2 --- 1.00g 1.00g
/dev/sda2 lvm2 --- 1.00g 1.00g
/dev/sda3 lvm2 --- 1.00g 1.00g
[root@localhost ~]# pvscan
PV /dev/nvme0n1p2 VG rhel lvm2 [<19.00 GiB / 0 free]
PV /dev/sda1 lvm2 [1.00 GiB]
PV /dev/sda2 lvm2 [1.00 GiB]
PV /dev/sda3 lvm2 [1.00 GiB]
Total: 4 [<22.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 3 [3.00 GiB]
例4:创建VG
[root@localhost ~]# vgcreate myvg1 /dev/sda1 /dev/sda2 --- 将sda1和sda2放入myvg1中
Volume group "myvg1" successfully created
查看:vgs、vgdisplay
[root@localhost ~]# vgs --- 查看
VG #PV #LV #SN Attr VSize VFree
myvg1 2 0 0 wz--n- 1.99g 1.99g
rhel 1 2 0 wz--n- <19.00g 0
[root@localhost ~]# vgdisplay myvg1 --- 查看myvg1的详细信息
(如果要指定PE大小,参数为S)
[root@localhost ~]# vgcreate -s 16M myvg1 --- 将PE大小默认4M改为16M
例5:扩展VG
[root@localhost ~]# vgextend myvg1 /dev/sda3 --- 将sda3添加到myvg1中
[root@localhost ~]# vgs myvg1 --- 查看大小
VG #PV #LV #SN Attr VSize VFree
myvg1 3 0 0 wz--n- <2.99g <2.99g
例6:创建LV
[root@localhost ~]# lvcreate -n lv1 -L 500M myvg1 --- 在myvg1中创建名字为lv1,大小为500M的lv
Logical volume "lv1" created.
-l lv大小(例:-l 50 --- 50个PE大小,50*4M=200M)
[root@localhost ~]# lvcreate -n lv2 -l 200 myvg1 --- 创建一个800M的逻辑卷,名字为lv2
Logical volume "lv2" created.
查看:lvs、lvdispaly
[root@localhost ~]# lvs --- 查看lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 myvg1 -wi-a----- 500.00m
lv2 myvg1 -wi-a----- 800.00m
root rhel -wi-ao---- <17.00g
swap rhel -wi-ao---- 2.00g
[root@localhost ~]# lvdisplay /dev/myvg1/lv1 --- 查看lv1的详细信息
例7:格式化以及挂载
[root@localhost ~]# mkfs.xfs -f /dev/myvg1/lv1 --- 格式化
[root@localhost ~]# blkid /dev/myvg1/lv1 --- 查看UUID
/dev/myvg1/lv1: UUID="24dcd389-74bb-49b9-b958-4542db0049a6" TYPE="xfs"
[root@localhost ~]# mkdir /data --- 创建/data文件
[root@localhost ~]# mount /dev/myvg1/lv1 /data --- 在/data目录下实现临时挂载
例8:LV扩展
[root@localhost ~]# dd if=/dev/zero of=/data/ss.rmvb bs=100M count=5 --- 模拟一个500M文件
<1> 先查看lv1所在的vg是否有剩余空间来扩展
[root@localhost ~]# lvs --- 查看lv对应的vg
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 myvg1 -wi-ao---- 500.00m --- lv1所在的vg为myvg1
[root@localhost ~]# vgs myvg1 --- 查看所在vg是否还有剩余空间
VG #PV #LV #SN Attr VSize VFree
myvg1 3 2 0 wz--n- <2.99g <1.72g --- 剩余1.7G
1>如果剩余空间满足,直接扩展lv
2>如果剩余空间不满足,先扩展vg,在扩展lv
<2> 扩展lv
[root@localhost ~]# lvextend -L 2G /dev/myvg1/lv1 --- 将lv扩展到2G
-L 2G:代表扩展到2G
-L +200M:代表增加200M
扩展文件系统后才可将空间添加进去
ext文件系统:[root@localhost ~]# resize2fs /dev/myvg1/lv1
xfs文件系统:[root@localhost ~]# xfs_growfs /dev/myvg1/lv1
[root@localhost ~]# xfs_growfs /dev/myvg1/lv1
meta-data=/dev/mapper/RHCE-myvg1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 128000 to 524288
[root@localhost ~]# df -h
/dev/mapper/myvg1-lv1 2.0G 504M 1.6G 25% /data
<2> 反向操作:LV ---> VG ---> PV
例1:卸载
[root@localhost ~]# umount /dev/myvg1/lv1 --- 取消挂载
例2:删除LV
[root@localhost ~]# lvremove /dev/myvg1/lv1 --- 删除lv1
Do you really want to remove active logical volume myvg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@localhost ~]# lvremove /dev/myvg1/lv2 --- 删除lv2
Do you really want to remove active logical volume myvg1/lv2? [y/n]: y
Logical volume "lv2" successfully removed
例3:删除VG
[root@localhost ~]# vgremove myvg1 --- vgremove -- 移除
Volume group "myvg1" successfully removed
例4:删除PV
[root@localhost ~]# pvremove /dev/sda{1..3}
Labels on physical volume "/dev/sda1" successfully wiped.
Labels on physical volume "/dev/sda2" successfully wiped.
Labels on physical volume "/dev/sda3" successfully wiped.
例5:删除分区
[root@localhost ~]# fdisk /dev/sda
Command (m for help): d --- 删除,默认从后往前删除
Partition 3 has been deleted.
Command (m for help): d
Partition 2 has been deleted.
Command (m for help): d
Partition 1 has been deleted.
Command (m for help): w
[root@localhost ~]# lsblk --- 查看分区信息
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
sr0 11:0 1 6.6G 0 rom