LVM (逻辑盘卷管理)

      【一】LVM原理:

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

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

  【二】LVM 参数:

 (1)【PV阶段参数】

       pvchange      Change attributes of a Physical Volume.
       pvck              用来检测物理卷的LVM元数据的一致性。默认情况下,物理卷中的前4个扇区保存着LVM卷标.
       pvcreate       用于将物理硬盘分区初始化为物理卷,以便LVM使用
       pvdisplay      用于显示物理卷的属性 -s以短格式输出  -m:显示PE到LE的映射.
       pvmove        Move Physical Extents.
       pvremove     Remove a Physical Volume.
       pvresize       Resize a disk or partition in use by LVM2.
       pvs               Report information about Physical Volumes.
       pvscan         Scan all disks for Physical Volumes.
 (2)【VG阶段参数】
       vgcfgbackup   Backup Volume Group descriptor area.
       vgcfgrestore  Restore Volume Group descriptor area.

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

       例如: vgchange -ay  vg1      #将卷组"vg1"设置为活动状态 (-an 设置为活动状态

       vgck                   Check Volume Group metadata.
       vgconvert          Convert Volume Group metadata format.
       vgcreate            用于创建LVM卷组。-l:卷组上允许创建的最大逻辑卷数; -p:卷组中允许添加的最大物理卷数; -s:卷组上的物理卷的PE大小。例如:vgcreate -s 16M  vg1 /dev/sdb1
       vgdisplay           Display attributes of Volume Groups.
       vgexport            Make volume Groups unknown to the system.
       vgextend           向卷组中添加物理卷(PV)来增加卷组(VG)的容量.
       vgimport            Make exported Volume Groups known to the system.
       vgimportclone  Import and rename duplicated Volume Group (e.g. a hardware snapshot).
       vgmerge           Merge two Volume Groups.
       vgmknodes      Recreate Volume Group directory and Logical Volume special files
       vgreduce         删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷.
       vgremove      用于用户删除LVM卷组。当要删除的卷组上已经创建了逻辑卷时,vgremove命令需要进行确认删除,防止误删除数据。

       vgrename      Rename a Volume Group 例如:vgrename vg vg1  把vg的名字改为vg1
       vgs                 Report information about Volume Groups.
       vgscan           Scan all disks for Volume Groups and rebuild caches.
       vgsplit            Split a Volume Group into two, moving any logical volumes from one Volume Group to another  by  moving  entire
                           Physical Volumes.

  (3)【LV阶段参数】

       lvchange        Change attributes of a Logical Volume.

       lvconvert        Convert a Logical Volume from linear to mirror or snapshot.

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

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

       lvdisplay         Display attributes of a Logical Volume.

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

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

       lvmchange     Change attributes of the Logical Volume Manager.
       lvmconfig       Display the configuration information after loading    
       lvmdiskscan   Scan for all devices visible to LVM2.
       lvmdump       Create lvm2 information dumps for diagnostic purposes.
       lvremove       删除一个LV
       lvrename       改LV名.
       lvresize          对LV进行容量大小的调整。

       lvs                  Report information about Logical Volumes.
       lvscan            Scan (all disks) for Logical Volumes.
-----------------------------------------------------------------------------------------------------------------------------

 【三】创建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}
     Physical volume "/dev/sdb1" successfully created.
     [root@localhost ~]# pvscan    //查看PV信息
     PV /dev/sda2   VG cl              lvm2 [39.00 GiB / 0    free]
     PV /dev/sdb1                      lvm2 [1.00 GiB]
    [root@localhost ~]# pvdisplay  #查看PV详细信息
     --- Physical volume ---
     PV Name               /dev/sda2
     VG Name               cl
     PV Size               39.00 GiB / not usable 3.00 MiB
     Allocatable           yes (but full)
     PE Size               4.00 MiB
     Total PE              9983
     Free PE               0
     Allocated PE          9983
     PV UUID               YWKAcK-TqHD-94kq-lzVi-8a2g-s188-dmtO2a
   
     "/dev/sdb1" is a new physical volume of "1.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1
      VG Name               
      PV Size               1.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
   [root@localhost ~]# pvremove /dev/sdb3  #删除PV
   Labels on physical volume "/dev/sdb3" successfully wiped.
--------------------------------------------------------------------------------------------
   (2)创建VG   
       (1)vgcreate -s 8M  v_vg /dev/sdb1 ##新建一个v_vg VG 指定一个PE为8M(默认4M)
       [root@localhost ~]# pvdisplay  
        -- Physical volume ---
        PV Name               /dev/sdb1
        VG Name               v_vg
        PV Size               1.00 GiB / not usable 8.00 MiB
        Allocatable           yes       #是否已分配
        PE Size               8.00 MiB  #PE 8M 
        Total PE              127
        Free PE               127       #没有被LV用掉的PE
        Allocated PE          0         #尚可分配出去的PE数量
        PV UUID               NXJ7oB-BXpm-7FPx-2utQ-8qrA-z5Q5-99UlSw
     [root@localhost ~]# vgdisplay  #查看VG的信息
       --- Volume group ---
     VG Name               v_vg
     System ID             
     Format                lvm2
     Metadata Areas        1
     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                1
     Act PV                1
     VG Size               1016.00 MiB
     PE Size               8.00 MiB
     Total PE              127
     Alloc PE / Size       0 / 0   
     Free  PE / Size       127 / 1016.00 MiB
     VG UUID               JbTWno-2lf1-KZjJ-PbA1-0e4w-QH16-BE6VvX
    [root@localhost ~]# vgextend  v_vg /dev/sdb2   #把PV加入VG中
    --- Volume group ---
     VG Name               v_vg
     System ID             
     Format                lvm2
     Metadata Areas        2
     Metadata Sequence No  2
     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               1.98 GiB    #整体VG容量的大小
     PE Size               8.00 MiB    
     Total PE              254     
     Alloc PE / Size       0 / 0          #分配出去的PE数量
     Free  PE / Size       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/mapper/目录下
【四】、放大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容量: 
        先卸载umount   
        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相关常用命令
fs_admin: 调整 xfs 文件系统的各种参数 
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式) 
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等) 
xfs_check: 检测 xfs 文件系统的完整性 
xfs_bmap: 查看一个文件的块映射 
xfs_repair: 尝试修复受损的 xfs 文件系统 
xfs_fsr: 碎片整理 
xfs_quota: 管理 xfs 文件系统的磁盘配额 
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中 
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统 
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展) 
xfs_freeze 暂停(-f)和恢复(-u)xfs 文件系统
xfs_logprint: 打印xfs文件系统的日志 
xfs_mkfile: 创建xfs文件系统 
xfs_info: 查询文件系统详细信息 
xfs_ncheck: generate pathnames from i-numbers for XFS 
xfs_rtcp: XFS实时拷贝命令 
xfs_io: 调试xfs I/O路径  
          
      










  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值