关于 LVM 逻辑卷管理

Posted

tags:

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

              逻辑卷管理 (LVM)
   
允许对卷进行方便操作的抽象层,包括从新设定文件系统的大小   
允许在多个设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent PE) 来定义的
在物理卷上创建的逻辑卷是由物理区域(PE)组成
可以在逻辑卷上创建文件系统
下面看图解    
 技术分享  
   
 LVM: Logical Volume Manager, Version: 2   
 dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root 
 
  LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
 
下面看图解

技术分享  
  
  
pv(物理卷)管理工具
显示pv信息:
           pvs 简要pv信息显示
           pvdisplay   显示目前系统上面的PV状态
创建pv与PV相关的一些管理命令有:
           pvcreate /etc/设备   将实体设备创建成为PV 主要创建PV命令
           pvscan      搜寻目前系统里面任何具有PV的磁碟  
     删除pv:
           vremove    将PV属性移除,让该设备不具有PV属性
        
     1 用fdisk 配置新的具有 8e 系统ID 的分区   
     # fdisk /dev/sdb
     n   新建分区
     p   显示磁盘分区表
     l   列表出所的系统ID号
     t   修改分区系统的ID
     8e  系统ID
     w   保存并退出
     2 利用pvcreate 创建 PV
     [[email protected] ~]# pvcreate /dev/sde{1,2}  
     Physical volume "/dev/sde1" successfully created
     Physical volume "/dev/sde2" successfully created
  
       
                       
vg(卷组)管理工具
显示vg信息:
          vgs
          vgdisplay 显示目前系统上面的VG状态
创建vg与vg相关的一些管理命令有:
          vgcreate 就是主要创建VG的命令
          vgscan   查找系统上是否有VG存在
          vgchange  配置VG是否启动(active活跃的)
          vgremove  删除一个VG    

创建vg:
         vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
         [[email protected] ~]# vgcreate -s 10M makangbo /dev/sde{1,2}
         Volume group "makangbo" successfully created  
   管理vg:
         vgextend  在VG内添加额外的PV
         [[email protected] ~]# vgextend makangbo /dev/sde1
         vgrduce   在VG内移除PV
         [[email protected] ~]# vgreduce makangbo /dev/sde1
         Removed "/dev/sde1" from volume group "makangbo"
  删除vg:
        先做pvmove,再做vgremove                                  
 
lv(逻辑卷)管理工具
显示lv信息:lvs
            lvdisplay  显示系统上面LV
创建LV 与LV相关的一些管理命令有:
            lvscan    查询系统上面LV
            lvextend  在LV里面添加容量
            lvresize  对LV进行容量大小的调整          
 创建LV:
 lvcreate-L #[mMgGtT] -n NAME VolumeGroup  主要创建LV命令
 lvcreate -L 10G -n xiaomaglv xiaomagvg
 删除逻辑卷:
 vremove/dev/VG_NAME/LV_NAME  
   
重设文件系统大小:
fsadm[options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]  
   
 文件系统阶段:
 要想真正的使用lvm就必须对lv进行格式化挂载
 1 mkfs -t ext3 /dec/xiaomagvg/xiaomaglv
 2 mkdir /mnt/lvm
 3 mount /dev/xiaomagvg/xiaomaglv /mnt/lvm
   
 扩展和缩减逻辑卷
扩展LV:
#ddisk /dev/sdb                                  fdisk配置新的具有8e 文件系统ID的分区
# pvcreate /dev/sde{1,2}                         利用pvcreate创建出来PV
# vgcreate -s 10M makangbo /dev/sde{1,2}         利用vgextend 将 PV加入我门的xiaomagvg
# lvresize #[mMgGtT] /dev/xiaomagvg/xiaomaglv    利用lvresize 将新加入的PV内的PE加入xiaomaglv中
# resize2fs #[mMgGtT] /dev/xiaomagvg/xiaomaglv   透过resize2fs 将文件系统的容量确实添加。
  xfs_growfs /mnt/mylv/               xfs系列  只能扩展 不能缩减
  lvextend -r -l +100%FREE /dev/vg0/mylv  一步到位     
缩减LV:
建议先备份
# umount /dev/xiaomagvg/xiaomaglv                先卸载已经挂载的LV
# e2fsck -f /dev/xiaomagvg/xiaomaglv             强制进行磁盘检测
# resize2fs #[mMgGtT] /dev/xiaomagvg/xiaomaglv   重新设定文件系统大小
# lvreduce -L [-]#[mMgGtT]  /dev/xiaomagvg/xiaomaglv  在LV里面减少容量
# mount /dev/xiaomagvg/xiaomaglv /mnt/lvm
      
    
   
逻辑卷管理器快照

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于需要备份或者赋值的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。

快照只有在它们和原来的逻辑卷不同时才会消耗空间。
   在生成快照是会分配个它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
   当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
   快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据

   建立快照的卷大小只需要原始逻辑卷的15%~20%就足够了,也可以使用lvextend 扩大快照

快照就是将当时的系统信息记录下来,若将来有任何数据改动了,则原始数据会被移动到快照区
没有改动的区域则有快照区和文件系统共享。

技术分享

 

 

由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须要在同一个VG上,系统恢复的时候的文件数量不能高于快照区的实际容量

使用LVM快照  
lvcreate - l 64 -s -n name -p r /dev/vg0/data


挂载快照
mkdir -p /mnt/snap
mount -o ro /dev /vg0/snap-data /mnt/snap
删除快照
umount /mnt/databackup
lvremove /dev/vg0/databackup

 

 

1 创建至少两个PV大小设定为+20G 
 [[email protected] ~]# pvcreate /dev/sdf{1,2}
 创建VGtestvg添加PV,要求PE大小为16M
 [[email protected] ~]# vgcreate -s 16M testvg /dev/sdf{1,2}
 在VG中创建大小为5G的LV testlv
 [[email protected] ~]# lvcreate -L 5G -n testlv testvg
 使用lvmh就必须对lv进行格式化挂载
 [[email protected] ~]# mkfs -t ext3 /dev/testvg/testlv
 创建挂载点和挂载
 [[email protected] ~]# mkdir /mnt/users
 [[email protected] ~]# mount /dev/testvg/testlv /mnt/users
 
 
2 新建用户archlinux 要求其家目录为/users
 [[email protected] ~]# useradd archlinux -d /home/users
 而后用su 切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
 [[email protected] ~]$ cp /etc/pam.d/* ./
 
 
 3上面testlv创建的是 5G 现在要求扩展到7G
 [[email protected] ~]# lvextend -L 7G /dev/testvg/testlv
 
4 缩减testlv至3G的大小
 [[email protected] ~]# lvreduce -L 3G /dev/testvg/testlv
 
 
 
5 对testlv 创建快照,并尝试基于快照备份数据,验证快照的功能
 [[email protected] ~]# lvcreate -L 3G -s -n kuaizhaoname /dev/testvg/testlv
 显示信息
 [[email protected] ~]# lvdisplay
 创建快照目录
 [[email protected] ~]# mkdir /mnt/snapshotdir
 挂载
 [[email protected] ~]# mount /dev/testvg/kuaizhaoname /mnt/snapshotdir
 
 
 利用快照恢复数据
 注意:回复的数据不能超过快照区的总大小,因为如果变动的数据大小超过了快照区的空间,那么快照去是不能容纳所有变得的数据了,这个时候快照功能会失效

 1 现在原来的lv中写入一些数据, 然后通过lvm的快照功能来恢复之前的操作 原先快照的数据
 [[email protected] ~]# cp -R /etc /mnt/testlv
 
 创建一数据恢复的临时目录
 [[email protected] ~]# mkdir -pv /tmp/backup
 然后cd到快照挂载点
 [[email protected] ~]# cd /mnt/kuaizhaoname/
 将快照里数据打包压缩
 [[email protected] kuaizhaoname]# tar -zcf /tmp/bbackup/testlv.tar.gz *
 卸载快照NAME 并且移除,因为里面的内容已经备份出来了
 [[email protected] ~]#  umount /mnt/kuaizhaoname
 [[email protected] ~]# lvremove /dev/testvg/kuaizhao
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
   

 

本文出自 “小马哥Linux系统运维” 博客,转载请与作者联系!

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

LVM 逻辑卷管理

关于LVM逻辑卷

LVM逻辑卷管理--在线扩容逻辑卷与卷组容量缩减逻辑卷快照

LINUX逻辑卷(LVM)管理与逻辑卷分区

逻辑卷管理(LVM)

LVM 逻辑卷管理