• LVM(逻辑卷管理器)原理


    LVM的作用

      LVM的重点在于可以弹性调整文件系统的容量,LVM可以整合多个物理分区在一起,让这些分区看起来就像是一个磁盘一样,而且,还可以在将来其他的物理分区或将其从这个LVM管理的磁盘当中删除。如此一来,整个磁盘空间的使用上,相当具有弹性。

    什么是LVM:PV、PE、VG、LV的意义

      LVM的全名是Logical Volume Manager(逻辑卷管理器),LVM的做法是将几个物理的分区(或磁盘)通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块大磁盘再经过分成可使用分区(LV),最终就能够挂载使用。但是为什么这样的系统可以进行文件系统的扩充或缩小呢?其实与一个称为PE的选项有关,下面是LVM中的几个概念:

      1、PhysicalVolume,PV,物理卷

        实际的分区需要调整系统标识符(system ID)成为8e(LVM的标识符),然后再经过pvcreate的命令将它转为LVM最底层的物理卷(PV),之后才能将这些PV加以利用,调整system ID的方法就是通过fdisk。

      2、Volume Group,VG,卷用户组

        LVM大磁盘就是将许多PV整合成这个VG,所以VG就是LVM组合起来的大磁盘。那么这个大磁盘最大可以达到多少容量呢?这与下面要说的PE有关,因为每个VG最多仅能包含65534个PE,如果使用LVM默认的参数,则一个VG最大 可达256G的容量

      3、Physical Extend,PE,物理扩展块

        LVM默认使用4MB的PE块,而LVM的VG最多仅能含有65534个PE,因此默认的LVMVG会有4M*65534/(1024M/G)=256G,PE是整个LVM最小的存储块,也就是说,其实文件数据都是由写入PE来处理的。简单的说,这个PE就是有点像文件系统里面的block大小。所以调整PE会影响VG的最大容量。

      4、Logical Volume,LV,逻辑卷

        最终的VG还会被切为LV,这个LV就是最后可以被格式化使用的类似分区。那么LV是否可以随意指定大小呢?当然不可以。既然PE是整个LVM的最小存储单位,那么LV的大小就与在此LV内的PE总数有关。为了方便用户利用LVM来管理系统,因此  LV的设备文件名那个通常指定为”/dev/vgname/lvname“的样式

        此外,我们刚才谈到LVM可弹性更改文件系统的容量,那是如何办到的?其实它就是通过交换PE来进行数据转换,将原本LV内的PE转移到其他设备中以降低LV容量,或将其他设备的PE加到此LV中以加大容量。VG、LV与PE的关系如图

      

    实现流程

      通过PV、VG、LV的规划之后,再利用mkfs就可以将你的LV格式化成为可以看i用的文件系统了,而且这个文件系统的容量在将来还能够进行扩充或减少,里面的数据还不会被影响。那如何实现呢?

    整个流程如图:

      

      如此一来,我们就可以利用LV来进行系统的挂载。依据写入机制的不同,而有两种方式:

      1、线性模式(linear):假如将/dev/hda1,/dev/hdb1这两个分区加入到VG当中,并且整个VG只有一个LV时,那么线性模式就是当/dev/hda1的容量用完之后,/dev/hdb1的硬盘才会被使用到,这也是建议的模式。

      2、交错模式(triped):就是将一条数据拆成两部分,分别写入/dev/hba1与/dev/hdb1中。如此一来,一份数据用两块硬盘写入,这样读写性能会比较好。

      基本上,LVM最主要的用处是在实现一个可以弹性调整容量的文件系统上,而不是在新建一个性能为主的磁盘上,所以我们应该利用的是LVM可以弹性管理整个分区大小的用途上,而不是着眼在性能上的。因此LVM默认的读写模式是线性模式。如果你使用triped模式,要注意,当任何一个分区损坏时,所有数据都会丢失。

  • 相关阅读:
    201521123063 《Java程序设计》 第8周学习总结
    201521123063 《Java程序设计》 第7周学习总结
    201521123064 《Java程序设计》第11周学习总结
    201521123064 《Java程序设计》第10周学习总结
    201521123064 《Java程序设计》第9周学习总结
    201521123064 《Java程序设计》第8周学习总结
    201521123064 《Java程序设计》第7周学习总结
    201521123064 《Java程序设计》第6周学习总结
    201521123064 《Java程序设计》第5周学习总结
    201521123064 《Java程序设计》第4周学习总结
  • 原文地址:https://www.cnblogs.com/alighie/p/8016791.html
Copyright © 2020-2023  润新知