zoukankan      html  css  js  c++  java
  • 文件系统之LVM 逻辑卷管理

    1、 LVM介绍

    LVM 是 Logical Volume Manager 的简称,中文就是逻辑卷管理。

    • 物理卷(PV,Physical Volume):就是真正的物理硬盘或分区。
    • 卷组(VG,Volume Group):将多个物理卷合起来就组成了卷组,组成同一个卷组的物理卷 可以是同一个硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一 个逻辑硬盘
    • 逻辑卷(LV,Logical Volume):卷组是一个逻辑硬盘,硬盘必须分区之后才能使用,这个分区我们称作逻辑卷。逻辑卷可以格式化和写入数据。我们可以把逻辑卷想象成
      为分区。
    • 物理扩展(PE,Physical Extend):PE 是用来保存数据的最小单元,我们的数据实际上都 是写入 PE 当中,PE 的大小是可以配置的,默认是 4MB。
    2、建立 LVM 的步骤
    • 首先需要把物理硬盘分成分区,当然也可以是整块物理硬盘。
    • 然后把物理分区建立成为物理卷(PV),也可以直接把整块硬盘都建立为物理卷。
    • 接下来把物理卷整合成为卷组(VG)。卷组就已经可以动态的调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中删除。
    • 最后就是把卷组再划分成为逻辑卷(LV),当然逻辑卷也是可以直接调整大小的。我们说逻 辑卷可以想象成为分区,所以也需要格式化和挂载。
    3、物理卷管理
    1、分区

    创建方式就是使用 fdisk 交互命令,不过需要注意的是分区的系统 ID 不再是 Linux 默认的分区 ID 号 83 了,而要改成 LVM 的 ID 号 8e

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    10487807     5242880   8e  Linux LVM
    /dev/sdb2        10487808    14682111     2097152   8e  Linux LVM
    /dev/sdb3        14682112    20973567     3145728   8e  Linux LVM
    
    建立PV

    建立物理卷时,我们说即可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,命令如下

    [root@localhost ~]# pvcreate [设备文件名]
    
    [root@localhost ~]# pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created.
    [root@localhost ~]# pvcreate /dev/sdb2
      Physical volume "/dev/sdb2" successfully created.
    [root@localhost ~]# pvcreate /dev/sdb3
      Physical volume "/dev/sdb3" successfully created.
    
    或者
    
    [root@localhost ~]# pvcreate /dev/sdb
    
    查询PV
    1)pvscan
    [root@localhost ~]# pvscan 
      PV /dev/sdb3                      lvm2 [3.00 GiB]
      PV /dev/sdb2                      lvm2 [2.00 GiB]
      PV /dev/sdb1                      lvm2 [5.00 GiB]
      Total: 4 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 3 [10.00 GiB]
    2)pvdisplay
      "/dev/sdb1" is a new physical volume of "5.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1   物理卷名
      VG Name                           所属卷组名
      PV Size               5.00 GiB    物理卷大小
      Allocatable           NO          是否已经分配
      PE Size               0           PE大小
      Total PE              0           总共PE
      Free PE               0           空闲PE数
      Allocated PE          0           可分配PE
      PV UUID               3TGUYI-7y28-ilGh-uNus-FJfZ-3mn2-a1E2MM  UUID
    
    4)删除物理卷
    [root@localhost ~]# pvremove /dev/sdb3 
    
    4、卷组管理
    1、建立卷组
    [root@localhost ~]# vgcreate [选项] 卷组名 物理卷名 
    选项:  
    -s PE 大小:指定 PE 的大小,单位可以是 MB,GB,TB 等。如果不写默认 PE 大小事 4MB  
    

    我们有三个物理卷/dev/sdb1-3,我们先把/dev/sdb1 和/dev/sdb2 加入卷组,留着/dev/sdb3 进行调整卷组大小实验

    [root@localhost ~]# vgcreate -s 2Mb  vg1 /dev/sb1 /dev/sdb2
    
    2、查看卷组
    1)vgscan
    [root@localhost ~]# vgscan
      Reading volume groups from cache.
       Found volume group "vg1" using metadata type lvm2
    
    2)vgdisplay
    [root@localhost ~]# vgdisplay
      --- Volume group ---
      VG Name               vg1   卷组名
      System ID             
      Format                lvm2
      Metadata Areas        2  
      Metadata Sequence No  1
      VG Access             read/write   卷组访问权限
      VG Status             resizable    卷组访问状态
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2   当前物理卷数目
      Act PV                2
      VG Size               <7.00 GiB  卷组大小
      PE Size               2.00 MiB   PE大小
      Total PE              3582      总共PE数
      Alloc PE / Size       0 / 0   
      Free  PE / Size       3582 / <7.00 GiB   空闲PE数
      VG UUID               nffn4l-fnbY-n6ar-zy7v-PgKP-guw2-TTTOHz
    
    
    3、删除卷组
    [root@localhost ~]# vgremove vg1
    
    4、增加卷组容量
    [root@localhost ~]# vgextend  vg1 /dev/sdb3
      Volume group "vg1" successfully extended
    
    5、减少卷组容量
    [root@localhost ~]# vgreduce vg1 /dev/sdb3
      Removed "/dev/sdb3" from volume group "vg1"
    
    
    5、逻辑卷管理
    1、建立逻辑卷
    [root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名 
    选项:  
    -L 容量:指定逻辑卷大小,单位 MB,GB,TB 等  
    -l 个数:按照 PE 个数指定逻辑卷大小
    -n 逻辑卷名:指定逻辑卷名 
    
    #建立一个2G的逻辑卷
    [root@localhost ~]# lvcreate -L 2G -n lv1  vg1 
      Logical volume "lv1" created.
    

    vg1 卷组中建立 2GB 的 lv1逻辑卷之后,还要格式化和挂载之后逻辑卷才能正常使用。格式化和挂载命令和操作普通 分区时是一样的,不过需要注意的是逻辑卷的设备文件名是/dev/卷组名/逻辑卷名,
    例子:

    [root@localhost ~]# mkfs.ext4 /dev/vg1/lv1 
     # 格式化,建立文件系统 
    [root@localhost ~]# mkdir /lv1  &&  mount /dev/vg1/lv1 /lv1/   
    # 建立挂载点,并挂载
    
    2、查看逻辑卷

    1)lvscan

    [root@localhost ~]# lvscan
      ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
      ACTIVE            '/dev/centos/root' [<17.00 GiB] inherit
      ACTIVE            '/dev/vg1/lv1' [2.00 GiB] inherit
    

    2)lvdisplay

      LV Path                /dev/vg1/lv1
      LV Name                lv1
      VG Name                vg1
      LV UUID                jGYU0t-hEzP-BgNw-TgdT-iXDU-oqwt-S2KjT8
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2019-12-05 22:19:48 -0500
      LV Status              available
      # open                 1
      LV Size                2.00 GiB
      Current LE             1024
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2
    
    
    3、调整逻辑卷大小
    [root@localhost ~]# lvresize [选项] 逻辑卷设备文件名 
    选项:  
    -L 容量:安装容量调整大小,单位 KB,GB,TB 等。使用+代表增加空间,-号代表减少空间。如果直接写容量,代表设定逻辑卷大小为指定大小。  
    -l 个数:按照 PE 个数调整逻辑卷大小 
    
    #调整/dev/vg1/lv1 大小为3G
    [root@localhost ~]# lvresize -L +1G /dev/vg1/lv1
      Size of logical volume vg1/lv1 changed from 2.00 GiB (1024 extents) to 3.00 GiB (1536 extents).
      Logical volume vg1/lv1 successfully resized.
    
    #查看
    [root@localhost ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/vg1-lv1      2.0G  6.0M  1.8G   1% /lv1
    
    #但是此时大小还是没有变化怎么,刚刚只是逻辑卷的大小改变了,如果需要让分区使用这个新逻辑卷,我们还要使用 resize2fs 命令来调整分区的大小。
    不过这里就体现了 LVM 的优势,我们不需要卸载分区,直接就能调整分区的大小。
    
    [root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小] 
    选项:  -f: 强制调整  
    设备文件名:指定调整哪个分区的大小  调整的大小:指定把分区调整到多大,要加 M,G 等单位。如果不加大小,会使用整个分区
    
    [root@localhost ~]# resize2fs -f /dev/vg1/lv1
    resize2fs 1.42.9 (28-Dec-2013)
    The filesystem is already 786432 blocks long.  Nothing to do! 
    
    4)删除逻辑卷

    想要删除逻辑卷,需要先取消挂载

    [root@localhost ~]# lvremove 逻辑卷设备文件名 
    
    [root@localhost ~]# umount /dev/vg1/lv1 
    [root@localhost ~]# lvremove /dev/vg1/lv1 
    
  • 相关阅读:
    VMWare的Cloud Foundry实践(二):和MongoDB对接成功~
    MongoDB实践
    MongoDB 可读性比较差的语句
    C#异步编程之:(一)Task对象和lamda表达式探究
    创建自己的awaitable类型
    C#异步编程之(三):深入 Async 和 Await 的实现及其成本
    Node.js实践
    MVC+EasyUI+三层新闻网站建立(六 tabs的完成)
    MVC+EasyUI+三层新闻网站建立(七:分页查询出数据)
    MVC+EasyUI+三层新闻网站建立(八,详情页面完成)
  • 原文地址:https://www.cnblogs.com/hjnzs/p/11994411.html
Copyright © 2011-2022 走看看