今天继续给大家介绍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原理详解及实战相关推荐

  1. word2vec原理详解及实战

    目录 1)前言 1.1 语言模型 1.2N-gram模型 1.3词向量表示 2)预备知识 2.1 sigmoid函数 2.2 逻辑回归 2.3贝叶斯公式 2.4 Huffman编码 3)神经网络概率语 ...

  2. 【VLAN技术原理详解与实战】图文并茂,让你看一遍就理解VLAN

    目录 VLAN技术是什么? 关于VLAN 交换机的链路类型 交换机的接口类型 VLAN配置具体流程

  3. Redis实战和核心原理详解(4)Redis存储Key的一种设计实现方式:模式匹配

    注意:此方案仅为演示Redis 的使用,正式生产环境切勿使用! 相关文章: Redis实战和核心原理详解(1)Centos7.0下安装Redis 5.0详细过程和使用常见问题 Redis实战和核心原理 ...

  4. SVM分类器原理详解

    SVM分类器原理详解 标签: svm文本分类java 2015-08-21 11:51 2399人阅读 评论(0) 收藏 举报  分类: 数据挖掘 文本处理(16)  机器学习 分类算法(10)  目 ...

  5. 【Java基础】HashMap原理详解

    [Java基础]HashMap原理详解 HashMap的实现 1. 数组 2.线性链表 3.红黑树 3.1概述 3.2性质 4.HashMap扩容死锁 5. BATJ一线大厂技术栈 HashMap的实 ...

  6. Git 原理详解及实用指南

    Git 原理详解及实用指南 什么是版本控制系统(VCS) 很多人认为 Git 难以理解的第一个门槛在于:所谓的「Git 是一个分布式版本控制系统」这句话的具体含义不够清楚.其实分布式版本控制系统(Di ...

  7. 文本处理算法_关键词提取和文本摘要算法TextRank详解及实战

    关键词提取和文本摘要算法TextRank详解及实战 写在前面 最近一直没有更新文章,实在惭愧.伴随着小老弟的职业方向由风控转向了NLP,后面的文章也会集中在NLP领域,希望大家能够继续支持~ 导读 本 ...

  8. 大数据是什么和大数据技术十大核心原理详解

     一.数据核心原理   从"流程"核心转变为"数据"核心   大数据时代,计算模式也发生了转变,从"流程"核心转变为"数据&quo ...

  9. 单片机_PWM输出原理详解

    单片机_PWM输出原理详解 理论篇   博主自己的经历告诉我,PWM波的理解和应用确实还是挺重要的,这里专门花一期详细介绍一下 什么是PWM?   PWM,英文名Pulse Width Modulat ...

最新文章

  1. CRM One Order Appointment里start Date的存储原理
  2. 都说 Go 可以开启成千上万的 Goroutine,那调度器是怎么处理核上任务分配的?
  3. centos 6.5 zabbix 离线安装历程
  4. linux主机中util啥意思,util-linux是什么软件
  5. java 获取当前方法的名称_Java中获取当前函数名
  6. nginx限速方法以及报错处理
  7. java适配器模式 场景_详解Java适配器模式
  8. NLP笔记之文本聚类
  9. Word中的参考文献引用
  10. Luogu1527[国家集训队]矩阵乘法
  11. 360压缩加密压缩文件
  12. 看完你就知道交换机端口该搭配什么光模块了
  13. 新手学Windows XP
  14. Lagrange乘子法与KTT条件
  15. python广义极值_广义极值(GEV)极大似然拟合的奇异pdf
  16. Debug的心路历程
  17. [COPYRIGHT] 常见版权许可协议
  18. 浪潮信息m6服务器性能,M6四路服务器——浪潮信息新品性能显著
  19. Evading Defenses to Transferable Adversarial Examples by Translation-Invariant Attacks (翻译,侵删)
  20. QT使用vlc实现在线视频播放器

热门文章

  1. (每日一题)高数 求极限
  2. rdp协议打开 windows_RDP服务开启
  3. Redshift有哪些硬件要求?不同项目的电脑配置推荐
  4. html+css点亮灯泡
  5. JavaScript的方法(常用)
  6. java wrapper怎么运行_wrapper简单使用
  7. APP界面控件中英文名称汇总
  8. 计算机在英语课中的应用 博客,英语课堂教学的信息技术运用与反思
  9. 【神鬼传奇】坐骑外形任我改 附修改方法
  10. 全球著名IT公司名字的由来