LVM基本特性:(可以通过插件CLVM,实现群集逻辑卷管理)

PV物理卷

LV逻辑卷(逻辑卷管理:会在物理存储上生成抽象层,以便创建逻辑存储卷,方便设备命名)(下面是逻辑卷的分类)
Linear		线性卷(这是默认的lvm形式,即按顺序占用磁盘,一块写完了再写另一块)
Stripe		条带逻辑卷
RAID		raid逻辑卷
Mirror		镜像卷
Thinly-Provision	精简配置逻辑卷
Snapshot	快照卷
Thinly-Provisioned Snapshot	精简配置快照卷
Cache		缓存卷

创建PV时(一同被创建的有)
1:接近设备起始处,放置一个标签,包括uuid,元数据的位置 #(这个标签每个磁盘默认都保持一份)
2:lvm元数据,包含lvm卷组的配置详情
3:剩余空间,用于存储数据
lvm逻辑卷概念 及 创建lvm的步骤
#LVM的组成
	PE:(物理拓展,是VG卷组的基本组成单位)
	PV:(物理卷)
	VG:(卷组)
	LV:(逻辑卷)

#创建lvm的步骤
	1:将磁盘创建为PV(物理卷),其实物理磁盘被条带化为PV,划成了一个一个的PE,默认每个PE大小是4MB
	2:创建VG(卷组),其实它是一个空间池,不同PV加入同一VG
	3:创建LV(逻辑卷),组成LV的PE可能来自不同的物理磁盘
	4:格式化LV,挂载使用
lvm相关工具
pv操作
	pvchange	更改物理卷的属性
	pvck		检查物理卷元数据
	pvcreate	初始化磁盘或分区以供lvm使用
	pvdisplay	显示物理卷的属性
	pvmove		移动物理Exent
	pvremove	删除物理卷
	pvresize	调整lvm2使用的磁盘或分区的大小
	pvs		报告有关物理卷的信息
	pvscan		扫描物理卷的所有磁盘

vg操作命令
	vgcfgbackup	备份卷组描述符区域
	vgcfgrestore	恢复卷组描述符区域
	vgchange	更改卷组的属性
	vgck		检查卷组元数据
	vgconvert	转换卷组元数据格式
	vgcreate	创建卷组
	vgdisplay	显示卷组的属性
	vgexport	使卷组对系统不了解(这是个什么)
	vgextend	将物理卷添加到卷组
	vgimportclone	导入并重命名重复的卷组(例如硬件快照)
	vgmerge		合并两个卷组
	vgmknodes	重新创建卷组目录和逻辑卷特殊文件
	vgreduce	通过删除一个或多个物理卷来减少卷组(将物理卷踢出VG)
	vgremove	删除卷组
	vgrename	重命名卷组
	vgs		报告有关卷组信息
	vgscan		扫描卷组的所有磁盘并重建高速缓存
	vgsplit		将卷组拆分为两个,通过移动整个物理卷将任何逻辑卷从一个卷组移动到另一个卷组

lv操作命令
	lvchange	更改逻辑卷属性
	lvconvert	将逻辑卷从线性转换为镜像或快照
	lvcreate	将现有卷组中创建逻辑卷
	lvdisplay	显示逻辑卷的属性
	lvextend	扩展逻辑卷的大小
	lvmconfig	在加载lvm.conf和任何其他配置文件后显示配置信息
	lvmdiskscan	扫描lvm2可见的所有设备
	lvmdump		创建lvm2信息转储以用于诊断目的
	lvreduce	减少逻辑卷的大小
	lvremove	删除逻辑卷
	lvrename	重命名逻辑卷
	lvresize	调整逻辑卷大小
	lvs		报告有关逻辑卷的信息
	lvscan		扫描所有的逻辑卷
PV管理
制作PV
pvcreate /dev/sdb1

删除pv撤销PV(需先踢出vg)
pvremove /dev/sdb1
VG管理
制作VG
vgcreate datavg /dev/sdb1
vgcreate datavg /dev/sdb1 /dev/sdb2
#解释:vgcreate vg名 分区

vgcreate -s 16M datavg2 /dev/sdb3
#解释:-s 指定pe的大小为16M,默认不指定是4M

从卷组中移除缺失的磁盘
vgreduce --removemissing datavg 
vgreduce --removemissing datavg --force		#强制移除

扩展VG空间
vgextend datavg /dev/sdb3
pvs

踢出vg中的某个成员
vgreduce datavg /dev/sdb3
vgs
LV管理
制作LV
lvcreate -n lvdata1 -L 1.5G datavg
#解释:-n lv的name,-L 指定lv的大小,datavg 是vg的名字,表示从那个vg

激活修复后的逻辑卷
lvchange -ay /dev/datavg/lvdata1
lvchange -ay /dev/datavg/lvdata1 -K	#强制激活
LVM的快照

用途:注意用途是数据一致性备份,先做一个快照,冻结当前系统,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过重新挂载备份快照卷,实现不中断服务备份。

lvcreate -s -n kuaizhao01 -L 100M /dev/datavg/lvdata1
查看,删除使用方法
1:查看物理卷信息
pvs,pvdisplay

2:查看卷组信息
vgs,vgdisplay

3:查看逻辑卷信息
lvs,lvdisplay

4:删除LV
lvremove /dev/mapper/VG-mylv 

5:删除VG
vgremove VG

6:删除PV(注意删除顺序是LV,VG,PV)
pvremove /dev/sdb
vg卷组改名

vgrename xxxx-vgid-xxxx-xxxx xinname

拉伸一个逻辑卷LV
1:用vgdisplay查看vg还有多少空余空间
2:扩充逻辑卷
lvextend -L +1G /dev/VG/LV01
lvextend -L +1G /dev/VG/LV01 -r  #这个命令表示在扩展的同时也更新文件系统,但是不是所有的发行版本都支持,部分文件系统不支持在线扩展的除外
3:进行扩充操作后,df -h你会发现大小并没有变
4:更新文件系统(争对不同的文件系统,其更新的命令也不一样)
e2fsck -f /dev/datavg/lvdata1	#ext4文件系统,检查lv的文件系统
resize2fs /dev/VG/LV01		#ext4文件系统命令,该命令后面接lv的设备名就行

xfs_growfs /nas			#xfs文件系统,该命令后面直接跟的是挂载点
当更新文件系统后,你就会发现,df -h正常了
缩小逻辑卷LV(必须离线,umount)
1:卸载

2:缩小文件系统	
resize2fs /dev/VG/LV01 2G

3:缩小LV	
lvreduce -L -1G /dev/VG/LV01

4:查看lvs,挂载使用
拉伸一个卷组VG
1:新插入一块硬盘,若不是热插拔的磁盘,可以试试这个在系统上强制刷新硬盘接口
for i in /sys/class/scsi_host/*; do echo "- - -" > $i/scan; done

2:将/dev/sdd条带化,格式化为PE
pvcreate /dev/sdd

3:将一块新的PV加入到现有的VG中
vgextend VG /dev/sdd

4:查看大小
vgs
缩小卷组VG(注意不要有PE在占用)
1:将一个PV从指定卷中移除	
vgreduce VG /dev/sdd

2:查看缩小后的卷组大小
将磁盘加入和踢出VG
将sdd1踢出datavg组里
vgreduce datavg /dev/sdd1

将sdb1加入datavg组里
vgextend datavg /dev/sdb1
lvm灾难恢复场景案例
#场景再现:
三块盘做lvm,现在有一块物理坏了,将剩下两块放到其他linux服务器上

#恢复步骤
第一,查看磁盘信息,lvm信息,确认能查到lvm相关信息,找到VG组的名字(pvs,lvs,vgs,fidsk,blkid)
第二:删除lvm信息中损坏的磁盘角色,(强制提出故障磁盘)"vgreduce --removemissing VG_name "
第三:强制激活VG组 "vgchange -ay"
第四:强制激活LVM  "lvchange -ay /dev/VG_name"
第五:挂载

原文来自:

本文地址://lrxjmw.cn/lvm-logs.html编辑:xiangping wu,审核员:逄增宝

Linux命令大全:

Linux系统大全:

红帽认证RHCE考试心得: