LVM基本特性 及 日常管理

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

PV物理卷
VG卷组
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空间(将pv添加到vg中:将sda3添加到名为datavg的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

LVM配置文件的备份与恢复

#如何备份lvm配置文件
    vgcfgbackup -f /home/vg_ossdb.backup vg_ossdb
    #还有一个偏方是:把带有信息的磁盘插入装有lvm软件环境的 linux 系统并重启一次

#如何根据lvm配置文件,还原lvm逻辑卷
    vgcfgrestore -f /etc/lvm/backup/vg_ossdb vg_ossdb

查看,删除使用方法

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卷组改名

关键点:当两块磁盘的vg组名字相同时,系统无法启动,如何确定哪块盘时哪块,应该改哪块
第一步:强制激活vg,并查看哪些已被激活,并进行挂载对里面的数据进行核查
    vgchange -ay
    lvscan

第二步:挂载你激活的lv,并根据里面的文件内容判断是否是老系统盘还是新系统盘

第三步:通过vgdisplay -v 查看状态,lv 激活的名字UUID 以及 进行激活

第四步:vg组改名
    vgrename xxxx-vgid-xxxx-xxxx xinname

拉伸一个逻辑卷LV

(即使在挂载使用时,也可以拉伸)(前提是保证VG里有足够空间,若是没有就要加pv了,数据操作应当谨慎还是先umount的好)

1:用vgdisplay查看vg还有多少空余空间
2:扩充逻辑卷
    lvextend -L +1G /dev/VG/LV01
    lvextend -L +1G /dev/VG/LV01 -r  #这个命令表示在扩展的同时也更新文件系统,但是不是所有的发行版本都支持,部分文件系统不支持在线扩展的除外
    #lvextend -l +100%FREE /dev/VolGroup/root   #扩展所有空间给root

3:进行扩充操作后,df -h你会发现大小并没有变
4:更新文件系统(争对不同的文件系统,其更新的命令也不一样)
    e2fsck -f /dev/datavg/lvdata1   #ext4文件系统,检查lv的文件系统
    resize2fs /dev/VG/LV01      #ext4文件系统命令,该命令后面接lv的设备名就行

    xfs_growfs /nas         #xfs文件系统,该命令后面直接跟的是挂载点,xfs_growfs只支持增大
    当更新文件系统后,你就会发现,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灾难恢复场景案例(详细故障分类处理,请参考)IBM工程师文档

#场景再现:
    三块盘做lvm,现在有一块物理坏了,将剩下两块放到其他linux服务器上

#恢复步骤
    第一,查看磁盘信息,lvm信息,确认能查到lvm相关信息,找到VG组的名字(pvs,lvs,vgs,fidsk,blkid)
    第二:删除lvm信息中损坏的磁盘角色,(强制提出故障磁盘)"vgreduce --removemissing VG_name "
    第三:强制激活VG组 "vgchange -ay"
    第四:强制激活LVM  "lvchange -ay /dev/VG_name"
    第五:挂载
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/144.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/2/23作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录