LVM(逻辑盘卷管理)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVM(逻辑盘卷管理)相关的知识,希望对你有一定的参考价值。

     【一】LVM原理:

    LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes) ,并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名,管理和分配,例如按照使用用途进行定义: “开发”和“销售”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

     *物理存储介质(PhysicalStorageMedia)
           指系统的物理存储设备:磁盘,如:的/ dev / HDA,/ dev / sda上等,是存储系统最底层的存储单元
     *物理卷(物理卷,PV)
          指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区,磁盘等)比较,却包含有与LVM相关的管理参数。 * 
     卷组(卷组,VG)
           类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。 * 
     逻辑卷(逻辑卷,LV)
           类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/ home或者/ usr等)。
     *物理块物理范围,PE)
          每个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元.PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
     *逻辑块(Logical Extent,LE)LVM抽象模型
        逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

  【二】LVM参数:

 (1)【PV阶段参数】

       pvchange更改物理卷的属性。
       pvck用来检测物理卷的LVM元数据的一致性。默认情况下,物理卷中的前4个扇区保存着LVM卷标。
       pvcreate用于将物理硬盘分区初始化为物理卷,以便LVM使用
       pvdisplay用于显示物理卷的属性-s以短格式输出-m:显示PE到LE的映射。
       pvmove移动物理区域。
       pvremove删除一个物理卷。
       pvresize调整LVM2使用的磁盘或分区的大小。
       pvs报告关于物理卷的信息。
       pvscan扫描所有磁盘的物理卷。(2)【VG阶段参数】
 
       vgcfgbackup备份卷组描述符区域。
       vgcfgrestore还原卷组描述符区域。

       vgchange vgchange命令用于修改卷组的属性,经常被用来设置卷组是处于活动状态或非活动状态。处于活动状态的卷组无法被删除,必须使用vgchange命令将卷组设置为非活动状态后才能删除;

       例如:执行vgchange -ay VG1#将卷组“VG1”设置为活动状态(-an  设置为活动状态

       vgck检查卷组元数据。
       vgconvert转换卷组元数据格式。
      vgcreate用于创建LVM卷组。-l:卷组允许创建的最大逻辑卷数; -p:卷组中允许添加的最大物理卷数; -s:卷组上的物理卷的PE大小。 :vgcreate -s 16M vg1 / dev / sdb1
       vgdisplay显示卷组的属性。
       vgexport使卷组对系统未知。
       vgextend向卷组中添加物理卷(PV)来增加卷组(VG)的容量。
       vgimport使导出的卷组对系统已知。
       vgimportclone导入并重命名重复的卷组(例如硬件快照)。
       vgmerge合并两个卷组。
       vgmknodes重新创建卷组目录和逻辑卷特殊文件
       vgreduce删除LVM卷组中的物理卷来来减少卷组容量。不能删除LVM卷组中的剩余的最后一个物理卷。
      vgremove       用于用户删除LVM卷组。当前删除的卷组已经创建了逻辑卷时,vgremove命令需要进行确认删除,防止误删除数据

       。vgrename重命名卷组例如:vgrename vg vg1把vg的名字改为为vg1
       vgs                  报告关于卷组的信息。
      vgscan            扫描卷组的所有磁盘并重建缓存。
       vgsplit将卷组拆分为两个,通过移动整个
                           物理卷将任何逻辑卷从一个卷组移动到另一个卷组

  (3)【LV阶段参数】

       lvchange更改逻辑卷的属性。

       lvconvert将逻辑卷从线性转换为镜像或快照。

       lvcreate用于创建LVM的逻辑卷。-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节; -l:指定逻辑卷的大小(PE数)。 

                              lvceate [-L l] [-n LV名称] VG名称 

       lvdisplay显示逻辑卷的属性。

       lvextend在线扩展逻辑卷的空间大

       lvreduce用于减少LVM逻辑卷占用的空间大小。收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据 -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节; -l:指定逻辑卷的大小(PE数)。

       lvmchange更改逻辑卷管理器的属性。
       lvmconfig加载
       lvmdiskscan 后显示配置信息     扫描LVM2可见的所有设备。
       lvmdump创建lvm2信息转储用于诊断目的。
       lvremove删除一个LV 
       lvrename改LV名。
       lvresize对LV进行容量大小的调整。lvs

       报告关于逻辑卷的信息。
       lvscan扫描(所有磁盘)逻辑卷。
-------------------------------------------------- -------------------------------------------------- ------------------------- 

 【三】创建PV,VG,LV

    fdisk -l
    #fdisk /dev/sda(..sdb..sdc..sdd)----- p --- n --- t --- 8e --- p --- w ---(设置硬盘的Linux LVM 8e )
     / dev / sdb1 2048 2099199 1048576 8e Linux LVM
     / dev / sdb2 2099200 4196351 1048576 8e Linux LVM
     / dev / sdb3 4196352 6293503 1048576 8e Linux LVM
     / dev / sdb4 6293504 10485759 2096128    8e  Linux LVM
   (1)创建PV:
     [root @ localhost]#pvcreate / dev / sdb1 //可以dev / sdb {1,2,3,4}     物理卷“/ dev / sdb1”已成功创建。
     [root @ localhost]#pvscan //查看PV信息     PV / dev / sda2 VG cl lvm2 [39.00 GiB / 0免费]     PV / dev / sdb1 lvm2 [1.00 GiB]
    [root @ localhost]#pvdisplay#查看PV详细信息     ---体积---     PV名称/ dev / sda2     VG名称cl     PV尺寸39.00 GiB /不可用3.00 MiB     Allocatable是(但是已满)     PE尺寸4.00 MiB     总计PE 9983     免费PE 0     分配PE 9983     PV UUID YWKAcK-TqHD-94kq-lzVi-8a2g-s188-dmtO2a        “/ dev / sdb1”是一个新的物理卷“1.00 GiB”      ---新体积---      PV名称/ dev / sdb1      VG名称                     PV大小1.00 GiB      可分配的NO      PE大小0         总体PE 0      免费PE 0      分配PE 0       PV UUID NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
   [root @ localhost]#pvremove / dev / sdb3#删除PV   物理卷“/ dev / sdb3”上的标签已成功擦除。
-------------------------------------------------- ------------------------------------------
   (2)创建VG
       (1)vgcreate -s 8M v_vg / dev / sdb1 ##新建一个v_vg VG指定一个PE为8M(默认4M)
       [root @ localhost]#pvdisplay
        - 体积---        PV名称/ dev / sdb1        VG名称v_vg        PV大小1.00 GiB /不可用8.00 MiB        Allocatable yes#是否已分配        PE尺寸8.00 MiB#PE 8M         总计127        免费PE 127#没有被LV用掉的PE        分配PE 0#尚可分配出去的PE数量         PV UUID NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
     [root @ localhost]#vgdisplay#查看VG的信息
       ---卷组---     VG名称v_vg     系统ID                  格式lvm2     元数据领域1     元数据序列号1     VG访问读/写     VG状态可调整大小     MAX LV 0     Cur LV 0     打开LV 0     最大PV 0     Cur PV 1     法PV 1     VG尺寸1016.00 MiB     PE尺寸8.00 MiB     总计127     Alloc PE / Size 0/0        免费PE /尺寸127 / 1016.00 MiB     VG UUID JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
    [root @ localhost] #vgextend v_vg / dev / sdb2#把PV加入VG中
    ---卷组---     VG名称v_vg     系统ID                  格式lvm2     元数据领域2     元数据序列号2     VG访问读/写     VG状态可调整大小     MAX LV 0     Cur LV 0     打开LV 0     最大PV 0     Cur PV 2     法PV 2     VG尺寸1.98 GiB#整体VG容量的大小     PE尺寸8.00 MiB         总PE 254          Alloc PE / Size 0/0#分配出去的PE数量     免费PE /尺寸254 / 1.98 GiB#没有分配出去的PE数量     VG UUID JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
-------------------------------------------------- -------------------------------------
 (2)创建LV        lvcreate -L + 1G -n v_home v_vg
        
      格式化文件系统和挂载:mkfs.ext4 / dev / v_vg / v_home mount / dev / v_vg / v_home / mnt
      备注:设备是放在的/ dev /映射器/目录下
【四】,放大LV容量和缩小LV容量
        lvresize -L + 400M / dev / v_vg / v_home#给添加400M
        LV已经扩展到400M,但是文件没有相对的增加。
        dumpe2fs / dev / v_vg / v_home
        resize2fs / dev / v_vg / v_home ##完整的进行LV容量扩充到整个文件系统中。
       
      缩小LV容量:
        先卸载卸除
        e2fsck -f / dev / v_vg / v_home#进行磁盘检查
        resize2fs / dev / v_vg / v_home 2G调整LV大小并重建文件系统
        lvresize -L -400M / dev / v_vg / v_home减小LV容量
     
   说明:在xfs文件系统中,只能增大分区而不能减小。resize2fs 
         命令针对的是ext2,ext3,ext4文件系统
         xfs_growfs命令针对的是xfs文件系统
          xfs_repair进行修复
     
      备注:1)ext2 / ext3 / ext4文件系统的调整命令是resize2fs(增大和减小都支持)centos6图形界面:system-config-lvm
             lvextend -L 120G / dev / v_vg / v_home     //增至        至120G 
            lvextend -L + 20G / dev / v_vg / v_home             //增加20G
            lvreduce -L 50G / dev / v_vg / h_home //减小至50G
            lvreduce -L -8G / dev / v_vg / v_home //减小8G
            resize2fs / dev / v_vg / v_home //执行调整

           2)xfs文件系统的调整命令是xfs_growfs(只支持增大)
            lvextend -L 120G / dev / v_vg / h_home         //增大至120G
            lvextend -L + 20G / dev / v_vg / h_home         //增加20G
            xfs_growfs / dev / v_vg / h_home             //执行调整
            则是有进程占用/ home,使用如下命令来终止占用进程:fuser -m -k / home

      xfs文件系统只支持增大分区空间的情况,不支持减小的情况(切记!!!!!)。硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上1)查看分区空间。如下可知是XFS文件系统(DF的-T参数就能看出文件格式)
2)使用vgdisplay命令查看系统上的空闲空间


xfs:

xfs相关常用命令
ffs_admin:调整xfs文件系统的各种参数 
xfs_copy:拷贝xfs文件系统的内容到一个或多个目标系统(并行方式) 
xfs_db:调试或检测xfs文件系统(查看文件系统碎片等) 
xfs_check:检测xfs文件系统的完整性 
xfs_bmap:查看一个文件的块映射 
xfs_repair:尝试修复受损的xfs文件系统 
xfs_fsr:碎片整理 
xfs_quota:管理xfs文件系统的磁盘配额 
xfs_metadump:将xfs文件系统的元数据元数据)拷贝到一个文件中 
xfs_mdrestore:从一个文件中将元数据(元数据)恢复到xfs文件系统 
xfs_growfs:调整一个xfs文件系统大小(只能扩展) 
xfs_freeze暂停(-f)和恢复(-u)xfs文件系统
xfs_logprint:打印xfs文件系统的日志 
xfs_mkfile:创建xfs文件系统 
xfs_info:查询文件系统详细信息 
xfs_ncheck:从XFS生成i-numbers的路径名 
xfs_rtcp:XFS实时拷贝命令 
xfs_io:调试xfs I / O路径  
          


以上是关于LVM(逻辑盘卷管理)的主要内容,如果未能解决你的问题,请参考以下文章

LVM逻辑盘卷管理

LVM是逻辑盘卷管理

Centos 6 & 7 LVM 逻辑盘卷管理

LVM创建快照

LVM基础操作

[Linux]LVM扩展卷