zoukankan      html  css  js  c++  java
  • 深入浅出LVM on linux

    什么是LVM?

    什么是LVM?LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以事项一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可 能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。 

    为什么使用LVM?

    LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

    小系统使用LVM的益处?

    传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:
    1.不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;
    2.当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。
    3.如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。
    当采用LVM时,情况有所不同:
    1.硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
    2.文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;
    3.文件系统建立在LVM上,可以跨分区,方便使用;

    大系统使用LVM的益处? 

    在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。 在一个有很多不同容量硬盘的大型系统中,对不同的用户的空间分配是一个技巧性的工作,要在用户需求与实际可用空间中寻求平衡。用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁 移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去。 


    由N个磁盘可以组成一个很大的空间VG1,然后从VG1上面划分需要使用的分区。


    从剩余空间中划分一部分的磁盘空间给一个分区

    这样,当某一个分区的空间不够的时候,这样可以增加这个分区的使用磁盘空间

    名词解释

    1. PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区。     
    2.PP(Physical Extend):物理区域,PV中可以用于分配的最小存储单元,可以在创建PV的时候制定,如1M, 2M, 4M, 8M, 32M, 64M…组成同一VG中所有PV的PE大小应该相同。     
    3.VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV。    
    4. LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。

    创建LVM

    1、查看系统中新增加的硬盘


    2、给磁盘分区(创建PV) 在/dev/sdb上划分两个分区

    3、用fdisk –l 命令查看分区表


    4、建好分区后,用pvcreate命令在新建的分区上创建PV


    5、使用vgcreate命令创建一个名为vgdate的VG,并且将所有的新建的PV加入vgdate


    6、用lvcreate –L 500M –n lv01 vgdate 命令从VG vgdate中创建一个大小为500M的名为lv01的LV


    我们创建的第一个LV所在的目录为 /dev/vgdate/lv01
    7、使用mkfs /dev/vgdate/lv01命令格式化lv01


    8、Linux下的文件系统需要被挂载之后才能使用,我们先使用mkdir /date 命令创建一个空目录,然后用 mount /deta/vgdate/lv01 /date 命令将我们的lv01分区挂载到/date目录下,至此我们新创建的lv就可以使用了。

  • 相关阅读:
    2019-9-2-Visual-Studio-自定义项目模板
    2018-8-10-WPF-判断调用方法堆栈
    2018-8-10-WPF-判断调用方法堆栈
    2018-8-10-VisualStudio-自定义外部命令
    2018-8-10-VisualStudio-自定义外部命令
    Java实现 LeetCode 999 车的可用捕获量(简单搜索)
    向代码致敬,寻找你的第83行(阿里巴巴的第83行代码是什么梗)
    向代码致敬,寻找你的第83行(阿里巴巴的第83行代码是什么梗)
    向代码致敬,寻找你的第83行(阿里巴巴的第83行代码是什么梗)
    Java实现 LeetCode 557 反转字符串中的单词 III(StringBuilder的翻转和分割)
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/6890584.html
Copyright © 2011-2022 走看看