目录
一、概述
LVM是Linux下对磁盘分区进行管理的一种工具,适合管理大存储设备,并允许用户动态扩容文件系统。
#动态扩容:在原有数据不受影响的情况下,将分区空间通过某些操作增大,即为自动扩容。
二、LVM名词
1.物理卷(physical volume,PV)
是LVM最底层的概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑对应的关系。多个LVM物理卷可以合并或拆分,从而实现容量的扩容和缩减。LVM提供了命令工具可以把分区转化为物理卷,通过组合物理卷的方式生成卷组。
2.卷组(volume group,VG)
卷组是LVM逻辑上的设备,由物理卷组合而成。卷组的大小取决于物理卷的容量及个数。
#一个卷组中至少包含一个PV,也就是一个PV就可以组成VG
3.逻辑卷(logical volume,LV)
逻辑卷可以理解成LVM中的分区。LV建立在VG上,可以指定从VG中提取多少容量来创建逻辑卷,然后对LV进行格式化并挂载。
4.PE
PV中可以分配的最小储存单元称为PE,大小可以指定,默认为4MB。
5.LE
LV中可以分配的最小储存单元称为LE。在同一个卷组中,LE和PE大小相同且一一对应。
三、LVM常用命令
功能 | PV管理命令 | VG管理命令 | LV管理命令 |
scan扫描 | pvscan | vgscan | lvscan |
create创建 | pvcreate | vgcreate | lvcreate |
display显示 | pvdisplay | vgdisplay | lvdisplay |
remove移除 | pvremove | vgremove | lvremove |
extend扩展 | vgextend | lvresize | |
reduce减少 | vgreduce | lvreduce |
四、物理卷PV管理
1.扫描磁盘
#不重启服务器的情况下,通过扫描 SCSI 总线来识别新硬盘
echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan
#查看新增的磁盘是否被识别
fdisk -l
lsblk -f
#对新增的磁盘进行分区
gdisk /dev/sdb
a 切换分区启动标记 b 编辑bsd磁盘标签
c 切换dos兼容模式 d 删除分区
l 显示分区类型 m 显示帮助菜单
o 创建新的空分区表 n 新建分区
p 显示分区表信息 q 不保存退出
s 创建新的Sun磁盘标签 v 检验分区表
w 保存并退出 x 扩展功能
#将磁盘分区变化信息通知内核,请求操作系统重新加载分区表。
partprobe -s /dev/sdb1
2.PV创建、删除
#创建PV
pvcreate /dev/sdb1
#查看PV
pvscan
#查看PV的详细信息
pvdisplay
#将/dev/sdb1物理卷上的数据转移到/dev/sdb2上
pvmove /dev/sdb1 /dev/sdb2
#删除pv
pvremove /dev/sdb1
#如果在创建pv时使用的/dev/sdb整块盘(未进行磁盘分区),当/dev/sdb硬盘进行扩容时。
#使用pvresize可以使/dev/sdb 的物理卷扩展到整个磁盘的大小,包括新增加的空间。
pvresize /dev/sdb
3.实验
pvcreate /dev/sdb1
#将/dev/sdb1磁盘创建为物理卷
pvscan
#查看物理卷
pvdisplay
#查看物理卷的详细信息
pvremove /dev/sdb2
#删除物理卷
五、卷组VG管理
1.VG创建、删除
#根据创建的名为/dev/sdb1物理卷pv,创建名为aliyun的卷组
vgcreate daboluo-vg-01 /dev/sdb1
#查看创建卷组
vgs
#查看卷组的详细信息
vgdisplay
#扩容,将/dev/sdb2物理卷加入到daboluo-vg-01卷组中
vgextend daboluo-vg-01 /dev/sdb2
#缩减,将/dev/sdb1物理卷从daboluo-vg-01卷组中移除
vgreduce daboluo-vg-01 /dev/sdb1
#删除名为daboluo-vg-01的卷组
vgremove daboluo-vg-01
2.实验
vgcreate aliyun /dev/sdb1
#将/dev/sdb1创建名为aliyun的卷组
vgs
vgscan
vgdisplay
#查看卷组
vgremove aliyun
#删除卷组
vgextend aliyun /dev/sdb2
#将/dev/sdb2加入aliyun卷组,达到扩容的目的。
vgreduce aliyun /dev/sdb1
#将/dev/sdb1从aliyun卷组中移除
六、逻辑卷LV管理
1.LV创建、删除
#创建逻辑卷,创建名为daboluo-lv-01的逻辑卷,从daboluo-vg-01卷组中拿空间
#-L指定逻辑卷大小
#-n指定逻辑卷名称
lvcreate -L 4G -n daboluo-lv-01 daboluo-vg-01
#查看lv信息
lvs
lvdisplay
#将名为daboluo-lv-01的逻辑卷扩容5G(在原来的基础上+5G,一定要有+号)
#-r省去手工文件系统识别,直接扩容并进行文件系统识别。
lvresize -r -L +5G /dev/daboluo-vg-01/daboluo-lv-01
#若不使用-r选项,扩容后,需进行手工文件系统识别
xfs_growfs /dev/daboluo-vg-01/daboluo-lv-01
xfs_growfs /data
#逻辑卷缩减
lvresize -L -2G /dev/daboluo-vg-01/daboluo-lv-01
#逻辑卷删除
lvremove /dev/daboluo-vg-01/daboluo-lv-01
2.LV格式化、挂载
#格式化
mkfs.xfs /dev/daboluo-vg-01/daboluo-lv-01
#挂载
vim /etc/fstab
/dev/daboluo-vg-01/daboluo-lv-01 /data xfs defaults 0 0
3.实验
lvcreate -L 4G -n huaweiyun aliyun
#从aliyun卷组中拿空间,创建一个大小为4G,名为huaweiyun的lv逻辑卷
lvextend -r -L +5G /dev/aliyun/huaweiyun
#从aliyun卷组中拿空间,对huaweiyun做5G的扩容。
lvresize -L +3G /dev/aliyun/huaweiyun
#从aliyun卷组中拿空间,对huaweiyun做3G的扩容。
lvs
lvscan
lvdisplay
#查看lv的详细信息
lvreduce -L -2G /dev/aliyun/huaweiyun
#将逻辑卷的空间缩小2G
lvremove /dev/aliyun/huaweiyun
#逻辑卷删除
pvmove /dev/sdb2
#将/dev/sdb2磁盘上的逻辑卷数据转移到其他磁盘上
#数据转移后,再从卷组中移除/dev/sdb2磁盘时,不会造成数据丢失。