关于 LVM 逻辑卷管理

              逻辑卷管理 (LVM)
   
允许对卷进行方便操作的抽象层,包括从新设定文件系统的大小   

允许在多个设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical
Extent PE) 来定义的
在物理卷上创建的逻辑卷是由物理区域(PE)组成
可以在逻辑卷上创建文件系统
下面看图解    

 关于 LVM 逻辑卷管理  
   
 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中以加大容量
 

下面看图解

关于 LVM 逻辑卷管理  
  
  

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
     [root@Compro ~]# 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…]
         [root@Compro ~]# vgcreate
-s 10M makangbo /dev/sde{1,2}
         Volume group "makangbo" successfully
created  
   管理vg:
         vgextend  在VG内添加额外的PV
        
[root@Compro ~]# vgextend makangbo /dev/sde1
         vgrduce  
在VG内移除PV
         [root@Compro ~]# 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 扩大快照

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

关于 LVM 逻辑卷管理

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

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
   
   

原创文章,作者:小马哥,如若转载,请注明出处:http://www.178linux.com/42768

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code