LVM可以理解为可扩展的设备;在设备空间不足的时候,保证其在原始数据不变的情况下增大设备的存储大小。那么,要达到这种效果,我们得把可用设备先比变为物理卷,再把物理卷处理为物理卷组,最后成为LVM逻辑卷!现在对以下概念做解释:

物理分区  p ---->虚拟机可用的设备

物理卷  pv  ---->被lv命令处理过的物理分区

物理卷组 vg ---->被组装到一起的物理卷

图里扩展 pe ---->lvm设备的最小存储单元,lvm是pe的整数倍

逻辑卷 lvm  ---->直接使用的设备,可以增大缩小并保持原有数据

   df  -H   /mnt   ## 统计时单位10^n,总量除以1000
   df  -h   /mnt   ## 统计时单位为2^n,总量除以1024

1、LVM的创建

1)步骤:

分区并设定分区标签为8e (使用fdisk /dev/vdb 中,使用t来修改分区标签为8e)

pvcreate /dev/vdb1          ## 把/dev/vdb1处理为物理卷
vgcreate vg0 /dev/vdb1      ## 把物理卷处理为物理卷组,且命名为vg0
lvcreate -L  20M  -n  lv0  vg0   ## 再vg0中取出大小为20M的空间给lv0
mkfs.xfs  /dev/vg0/lv0      ##把lv0设备进行格式化
mount /dev/vg0/lv0   /mnt   ##挂载
df  -H  /mnt                ## 查看lv0的信息

2)示例:把/dev/vdb1创建为lvm设备

此时,我们可以看到/mnt的大小为18M,

2.LVM支持热拉伸

1)当vg中的剩余容量充足情况
lvextend  -L   80M   /dev/vg0/lv0      ##拉伸设备        
xfs_grows   /dev/vg0/lv0               ##拉伸文件系统

示例: 扩大LV0的容量(提示LV0设备最大可以到52M)

2)当vg中容量不足时
再次建立分区并修改标签为8E
pvcreate   /dev/vdb2        ## 拉伸物理卷组
vgextend   vg0   /dev/vdb2
lvextend  -L   80M   /dev/vg0/lv0
xfs_grow   /dev/vg0/lv0
pvs     ##查看pv信息
vgs     ##查看vg信息
lvs     ## 查看lv信息
df  -H   ## 查看挂载信息
df -H  /dev/vg0/lv0

示例: 建立分区/dev/vdb2并进行相关操作加入vg0中

[root@localhost ~]# partprobe

注意:xfs文件系统不可以缩减,设备可以

3.对ext文件系统的设备的拉伸及缩减
1)查看当前挂载设备的文件类型,并将其格式化为ext

显示/dev/mapper/vg0-lv0的类型为xfs

对数据进行格式化,并查看结果:

[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0   

2)对ext文件类型进行拉伸
lvextend  -L  250M  /dev/vg0/lv0   ##此时,lvs显示结果为252
resize2fs  /dev/vg0/lv0      ##拉伸文件系统
3)缩减lvm:
卸载/mnt设备后,使用命令-- e2fsck  -f  /dev/vg0/lv0--进行扫描,确定设备数据的大小(现在为52M)

使用命令--resize2fs  /dev/vg0/lv0 40M --缩减文件系统大小(不可以比设备大)

缩减完文件系统后,对lv进行缩减

[root@localhost ~]# lvreduce -L 40M  /dev/vg0/lv0

##重新指定,并提示是否缩减设备

[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lv0  vg0  -wi-ao---- 40.00m  

4)缩减vg
vgreduce   vg0  /dev/vdb2    ##取出多余的设备

5)移动空闲pv
pvmove /dev/vdb1   /dev/vdb2  ## 把设备1中的数据移到2中
vgreduce   vg0  /dev/vdb1    ##从组中移出多余的设备2
pvremove  /dev/vdb1    ## 把空闲vdb1中pv中移除

4.lvm 快照
    当在文件中写入东西后,卸载设备,此时看不到里面的东西。这时需要做一个快照出来。快照的大小取决与要写入文件中的大小. 

lvcreate  -L  32M  -n  lv0-backup  -s  /dev/vg0/lv0  ## 文件大小为40M 

umount /mnt     ##卸载后的lv0-backup,不可重新挂载
lvremove /dev/vg0/lv0-backup     ##移除快照
lvcreate  -L  40M  -n  lv0-backup  -s  /dev/vg0/lv0  ## 文件大小为40M
mount /dev/vg0/lv0   /mnt    ##检测文件是否恢复 

示例:快照重新照,还原原始数据

首先对LV0中数据进行查看,并创建32M的快照,在快照中创建文件(执行以下操作 )

对快照中的文件进行复原时,先删除快照,再重新创建一个!

5.lvm的删除

使用命令lvremove  /dev/vg0/lv0-backup来删除快照

使用命令 lvremove  /dev/vg0/lv0 删除lv0

使用命令vgremove   vg0 删除物理卷组vg0

使用命令pvremoce  /dev/vdb2 删除物理卷pv

注意: 删除的时候,按照建立的顺序的逆序;及先删除快照,再依次删除lv、vg、pv即可

Linux之LVM设备的管理的更多相关文章

  1. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  2. Linux之LVM逻辑卷管理

    LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...

  3. Linux中LVM逻辑卷管理

    一.简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区 进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的 ...

  4. Linux:使用LVM进行磁盘管理

    LVM的概念 LVM 可以实现对磁盘的动态管理,在磁盘不用重新分区的情况下动态调整文件系统的大 小,利用 LVM 管理的文件系统可以跨越磁盘. "/boot"分区用于存放系统引导文 ...

  5. Linux LVM卷组管理

    Linux LVM卷组管理 由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理. 由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数 ...

  6. Linux 系统 LVM(Logical Volume Manager)逻辑卷管理

    一.前言 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到 当前某个分区需要的容量,还要预见该分区以后可能需要 ...

  7. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  8. linux LVM逻辑卷管理

    什么是LVM LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. ...

  9. linux入门系列13--磁盘管理之RAID、LVM技术

    前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...

随机推荐

  1. Axure的总结

    1.Axure的用途      Axure RP 能帮助网站需求设计者,快捷而简便的创建基于网站构架图的带注释页面示意图.操作流程图.以及交互设计,并可自动生成用于演示的网页文件和规格文件,以提供演示 ...

  2. 线代笔记 #01# 几何水平上的理解 VS. 数值水平上的理解

    源: 线性代数的本质 内容来自字幕. Let me quote without further comment from Dieudonné's "Foundations of Modern ...

  3. 《Java入门第三季》第二章 认识 Java 中的字符串

    什么是 Java 中的字符串.1.在Java的世界里,字符串被作为String类型的对象处理. 2.通用的初始化的方式:String s = new String("i love you & ...

  4. Swoole学习(一)了解一下Swoole的强大并在Centos安装Swoole及PHP扩展开启

    Swoole是面向生产环境的 PHP 异步网络通信引擎,官网:https://www.swoole.com/ 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HT ...

  5. Linux Shell脚本编程--字符串截取

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} ...

  6. 20145328 《Java程序设计》第7周学习总结

    20145328 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambda 12.1 认识Lambda语法 Lambda 教材的引入循序渐近.深入浅出 Lambda去重 ...

  7. 图片上传oss--先拿server端签名再上传oss,返回id值

    目前项目oss阿里云存储图片,图片上传主要步骤是:前端从服务端拿到签名signature,再上传到oss上busket里,上传成功返回图片id (imgId),最后再给server端: 注:官网上有个 ...

  8. 彻底搞懂hashCode与equals的作用与区别及应当注意的细节

    以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用. 先来试想 ...

  9. 安装完kali需要做的一些事情

    1. 没有声音的问题[ kali ] 参考:http://tieba.baidu.com/p/4343219808 用pulseaudio --start会看到一些信息,提示类似root用户之类的 我 ...

  10. POJ2159 ancient cipher - 思维题

    2017-08-31 20:11:39 writer:pprp 一开始说好这个是个水题,就按照水题的想法来看,唉~ 最后还是懵逼了,感觉太复杂了,一开始想要排序两串字符,然后移动之类的,但是看了看 好 ...