关于 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

(0)
小马哥小马哥
上一篇 2016-09-02 08:47
下一篇 2016-09-02 08:47

相关推荐

  • 译文-Symbolic一个基于func集中式管理平台[原创]

    Symbolic是一个开源的企业平台,旨在建立、配置和管理您的庞大分布式数据中心为目的开源框架,代表了目前最先进的数据中心解决方案的集中管理平台。 特征 属于RedHat认证协议栈的应用 具于func后端应用 支持 RHEL、Centos及Fedora 先进的拖放标签管理(Ajax) 提供Cobbler支持 灵活管理操作用户、主机 组和权限管理标记 先进的基…

    Linux干货 2015-03-27
  • PHP的类自动加载机制

    在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且require_once的代价很大。 在PHP5之前,各个…

    Linux干货 2015-04-10
  • UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。 3) 类的属性…

    Linux干货 2015-04-07
  • 学习宣言

     学习计划:参考N24学习时间与线路图,尽最大努力完成。 目标:学习好Linux,提升自我价值,找一份待遇好的工作。 宣言:每一次轻易的放弃,都是人生的一处败笔,为了梦想,加油!

    Linux资讯 2016-10-26
  • Linux用户和组管理整理

    本节介绍Linux用户和组相关的配置文件,用户账号管理、查询用户信息以及切换用户的相关命令,将会让我们更了解各配置文件中各个字段的含义,以及各相关命令的使用方法,方便Linux运维人员管理Linux系统中的用户和组。 背景: Linux是个多用户、多任务的系统,考虑到每个人的隐私权、每个人喜好的工作环境以及每个用户所使用的权限等方面的不同,所以设定了“用户”…

    Linux干货 2015-06-15
  • 震惊!!iptables还能这样用!

    基本语法:iptables [-t 表] [操作命令] [链][规则匹配器][-j 目标动作] 系统的INPUT和OUTPUT默认策略为DROP; # iptables -P INPUT DROP # iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin…

    系统运维 2017-04-18