LVM原理详解及实战
今天继续给大家介绍Linux基础内容,本文主要内容是LVM的原理。
一、LVM理论
LVM,即Logical Volume Manager,逻辑卷管理器,是一种硬盘的虚拟化技术,可以允许用户的硬盘资源进行灵活的调整和动态管理。
LVM是Linux系统对于硬盘分区管理的一种机制,诞生是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对硬盘的强制性扩容和缩容理论上是可行的,但是却可能造成数据丢失。LVM技术是通过在硬盘分区和文件系统之间增加一个逻辑层,提供了一个抽象的卷组,就可以把多块硬盘设备、硬盘分区,甚至RAID整体进行卷则合并。并可以根据情况进行逻辑上的虚拟分割,这样一来,用户不用关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区设备的动态调整。
LVM的架构体系中,有三个很重要的概念:
PV,物理卷,即实际存在的硬盘、分区或者RAID
VG,卷组,是由多个物理卷组合形成的大的整体的卷组
LV,逻辑卷,是从卷组上分割出来的,可以使用使用的逻辑存储设备
LVM架构体系如下图所示:
二、LVM创建和管理命令
在部署LVM时,要依次配置PV物理卷、VG卷组和LV逻辑卷。常用的LVM部署命令如下表所示:
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdispaly |
删除 | pvremote | vgremote | lvremote |
扩展 | 物理卷不能扩展 | vgextend | lvextend |
缩小 | 物理卷不能缩小 | vgreduce | lvreduce |
三、LVM创建和管理实战
接下来,我将使用Vmware虚拟机,来进行LVM的创建和管理实战。
(一)实战目标
建立LVM,LVM的PV分别是RAID 1,磁盘和磁盘分区。并进行LV的扩容、缩容、快照、删除等实验。
(二)硬件准备
在Vmware虚拟机上新添加四块硬盘,如下图所示:
(三)LVM创建PV、VG和LV
分别使用mdadm和fdisk创建RAID 1和磁盘分区,在这里我们选择/dev/sdb和/dev/sdc制作RAID,/dev/sdd创建磁盘分区,命令(fdisk为交互式界面,配置过程略)如下:
mdadm -Cv /dev/md0 -n 2 -l 1 /dev/sdb /dev/sdc
结果如下:
之后创建物理卷,命令如下:
pvcreate /dev/md0 /dev/sdd1 /dev/sde
效果如下:
然后创建卷组,命令如下:
vgcreate storage /dev/md0 /dev/sdd1 /dev/sde
效果如下:
接下来就可以创建逻辑卷了,我们尝试创建一个大小为10G的逻辑卷,在创建逻辑卷时,lvcreate命令常用参数如下:
-L 指定逻辑卷的大小(实际大小,如1G、512M等,该大小必须为4M的整数倍,否则大小会自动增大称为成4M整数倍)
-l 指定逻辑卷的大小(基本单元个数,-l后面数字乘4M为实际逻辑卷的大小)
-n 表示逻辑卷名称
逻辑卷创建命令如下:
lvcreate -n lv0 -L 10G storage
最终,我们在/dev目录下能够生成一个同名的磁盘文件,如下所示:
这样,当我们创建文件系统、挂载后,就可以正常使用逻辑卷了,命令如下所示:
mkfs.xfs /dev/storage/lv0
mkdir -p /lvm
mount /dev/storage/lv0 /lvm
此时,我们已经可以查看逻辑卷的挂载情况了,效果如下所示:
(四)LV扩容
在生产环境中,经常会出现的一种现象就是随着业务的拓展,我们原先分配的硬盘分区不够使用,这时我们就需要对硬盘进行扩容。LVM的逻辑卷可以方便的进行扩容。LV扩容步骤如下所示:
lvextend -L 15G /dev/storage/lv0
xfs_growfs /dev/storage/lv0
上述第一条命令表示对LVM的逻辑卷进行扩容,-L表示扩容后的大小而不是增加的大小,也可以使用-l参数指定大小。第二条命令是在创建xfs系统后,让xfs系统随着LV的增大而增大。
注意:
1、在进行扩容前,请保证LVM的卷组内有足够的空间可以进行扩容。
2、如果在LV扩容的时候,还没有创建文件系统,则可以省略上述第二条命令。
3、如果是xfs系统扩容,可以不用umount,如果是ext4系统扩容,则必须使用umount。
(五)LV缩容
在一般情况下,不允许对磁盘设备进行缩容,因为这可能造成数据丢失的风险。尽管如此,LVM还是提供了LV缩容的方法。
然而,xfs系统不允许缩容,如果是ext4系统,缩容配置如下:
e2fsck -f /dev/storage/lv0
resize2fs /dev/storage/lv0 10G
mount -a
上述第一条命令是对文件系统进行缩容,第二条命令是对LVM的卷组进行缩容,第三条命令是重新挂载。
(六)LV快照
LVM具备快照的功能,该功能类似于Vmware中的快照,LVM可以创建一个快照卷,快照卷就如同一个LV的备份。在操作中可以使用快照卷将LV的状态还原到某个节点的状态。
我们首先创建一个逻辑卷,在完成文件系统创建和挂载后,向该LV中写入一个实验性文件,过程如下:
lvcreate -n lv1 -L 1G /storage
mkfs.ext4 /dev/storage/lv1
mount /dev/storage/lv1 /lvm
echo “LVM snapshoot” > experiment.txt
让后,我们创建快照卷,在lvcreate命令中,使用-s参数创建快照卷,如下所示:
lvcreate -L 1G -s -n lvsnap /dev/storage/lv1
这样,快照卷就创建好了,如下所示:
接下来,我么尝试使用快照卷的恢复功能,方法是删掉刚才在lv1中创建的experiment.txt文件,然后恢复快照卷,查看新的lv1中experiment文件是否存在。过程如下:
rm -rf /lvm/experiment.txt
umount /lvm
lvconvert --merge /dev/storage/lvsnap
mount /dev/storage/lv1 /lvm
ll /lvm
cat /lvm/experiment
结果如下所示:
(七)PV、VG和LV删除
PV、VG和LV的删除比较简单,只要简单的使用pvremove、vgremove和lvremove进行删除即可,但是在删除时一定要注意,先解除挂载再删除LV,先删除LV再删除VG,先删除PV最后删除PV。
相关命令如下:
unount /lvm
lvremove /dev/storage/lv1
vgremove /dev/storage
pvremove /dev/md0 /dev/sdd1 /dev/sde
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
LVM原理详解及实战相关推荐
- word2vec原理详解及实战
目录 1)前言 1.1 语言模型 1.2N-gram模型 1.3词向量表示 2)预备知识 2.1 sigmoid函数 2.2 逻辑回归 2.3贝叶斯公式 2.4 Huffman编码 3)神经网络概率语 ...
- 【VLAN技术原理详解与实战】图文并茂,让你看一遍就理解VLAN
目录 VLAN技术是什么? 关于VLAN 交换机的链路类型 交换机的接口类型 VLAN配置具体流程
- Redis实战和核心原理详解(4)Redis存储Key的一种设计实现方式:模式匹配
注意:此方案仅为演示Redis 的使用,正式生产环境切勿使用! 相关文章: Redis实战和核心原理详解(1)Centos7.0下安装Redis 5.0详细过程和使用常见问题 Redis实战和核心原理 ...
- SVM分类器原理详解
SVM分类器原理详解 标签: svm文本分类java 2015-08-21 11:51 2399人阅读 评论(0) 收藏 举报 分类: 数据挖掘 文本处理(16) 机器学习 分类算法(10) 目 ...
- 【Java基础】HashMap原理详解
[Java基础]HashMap原理详解 HashMap的实现 1. 数组 2.线性链表 3.红黑树 3.1概述 3.2性质 4.HashMap扩容死锁 5. BATJ一线大厂技术栈 HashMap的实 ...
- Git 原理详解及实用指南
Git 原理详解及实用指南 什么是版本控制系统(VCS) 很多人认为 Git 难以理解的第一个门槛在于:所谓的「Git 是一个分布式版本控制系统」这句话的具体含义不够清楚.其实分布式版本控制系统(Di ...
- 文本处理算法_关键词提取和文本摘要算法TextRank详解及实战
关键词提取和文本摘要算法TextRank详解及实战 写在前面 最近一直没有更新文章,实在惭愧.伴随着小老弟的职业方向由风控转向了NLP,后面的文章也会集中在NLP领域,希望大家能够继续支持~ 导读 本 ...
- 大数据是什么和大数据技术十大核心原理详解
一.数据核心原理 从"流程"核心转变为"数据"核心 大数据时代,计算模式也发生了转变,从"流程"核心转变为"数据&quo ...
- 单片机_PWM输出原理详解
单片机_PWM输出原理详解 理论篇 博主自己的经历告诉我,PWM波的理解和应用确实还是挺重要的,这里专门花一期详细介绍一下 什么是PWM? PWM,英文名Pulse Width Modulat ...
最新文章
- CRM One Order Appointment里start Date的存储原理
- 都说 Go 可以开启成千上万的 Goroutine,那调度器是怎么处理核上任务分配的?
- centos 6.5 zabbix 离线安装历程
- linux主机中util啥意思,util-linux是什么软件
- java 获取当前方法的名称_Java中获取当前函数名
- nginx限速方法以及报错处理
- java适配器模式 场景_详解Java适配器模式
- NLP笔记之文本聚类
- Word中的参考文献引用
- Luogu1527[国家集训队]矩阵乘法
- 360压缩加密压缩文件
- 看完你就知道交换机端口该搭配什么光模块了
- 新手学Windows XP
- Lagrange乘子法与KTT条件
- python广义极值_广义极值(GEV)极大似然拟合的奇异pdf
- Debug的心路历程
- [COPYRIGHT] 常见版权许可协议
- 浪潮信息m6服务器性能,M6四路服务器——浪潮信息新品性能显著
- Evading Defenses to Transferable Adversarial Examples by Translation-Invariant Attacks (翻译,侵删)
- QT使用vlc实现在线视频播放器