lvm逻辑卷管理

#LVM

逻辑卷管理

一、创建pv
    
    创建pv可以在物理硬盘(裸盘上创建),MBR类型的分区(要更改分区类型为linux lvm: 8e )。GPT分区也要更改分区类型为8e00 Linux LVM 。
    还可以在RAID上创建。注意要在没有数据的分区上创建,否则会丢失数据。
    只有需要拆除pv才需要pvmove移动该pv的数据。否者不需要。拆除前要先调整vg大小。尽量让vg小于剩余pv的总和。

    注意,先调整pv上层的个系统,最后pvmove 移动数据。才能拆除pv

    命令
    
        pvcreat
            pvcreate /dev/sdb
        pvremove

        pvmove

二、创建vg
    
    可以创建多个vg,同一硬盘的不同分区可以属于不同的vg。vg类似于MBR的扩展分区,不能独立使用。需要在vg上创建逻辑分区,才能使用。
    一般不建议单独对vg进行缩减操作。一般都是在要缩减lv的空间,才有可能需要缩减vg
    vg创建后,之后创建的lv设备会以软连接的方式放到/dev/mapper/下。lv名称是由所属vgname组成格式: vgname-lvname,使用者更能区分,lv属于哪个vg上的。

    命令
    
        vgcreat
            vgcreate  vg0 /dev/sdb
        vgextend
            vgextend vg0 /dev/sdc
        vgreduce

        vgremove

三、创建lv

    一个vg上可以创建多个lv。
    lv是系统可以识别的使用单位。一个lv就相当于一个磁盘
    创建lv后需要使用分区工具,进行分区。然后创建需要的文件系统。所以注意,想要调整分区大小,一定要使用。相应分区类型的分区调整工具。
    扩容的话可以先扩容lv在更新分区表。使用相应的分区类型的分区调整工具。ext系列是用resize2fs

    命令
        lvreduce
            lvreduce -L 21G /dev/vg0/lvol0 缩减
        lvextend
            lvextend -L 35G /dev/vg0/lvol0 扩大
        lvcreate
            lvcreate -L 15G vg0
        lvremove
            lvremove /dev/vg0/lvol0
        lvresize
            lvreduce -L 21G /dev/vg0/lvol0  lv上有文件系统需要使用扩大vg或减小vg后需要使用  ?
创建快照

要创建快照,卷组一定要有富裕空间。
创建快照卷,快照卷必须与原卷处于同一卷组之内。
建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可以使用lvextend放大快照。
快照卷的生命周期,为整个数据时长,数据的增长量不能超过快照卷大小。根据数据变化量创建。最安全的做法是快照卷与原卷一样大,或者与原卷的数据一样大。

    使用LVM快照
    
        为现有逻辑卷创建快照
            #lvcreate -L #[mgt] -s -n snap-data -p r /dev/vg0/data
                -s 创建快照卷
                -p r 创建只读
                -n    指明快照卷名称
        挂载快照
            #mkdir -p /mnt/snap
            #mount -o ro /dev/vg0/snap-data /mnt/snap
        删除快照
            #umount /mnt/databackup
            #lvremove /dev/vg0/databackup

    [root@yangyouwei ~]# lvs
      LV        VG   Attr       LSize  Pool Origin    Data%  Meta%  Move Log Cpy%Sync Convert
      arc-snap  myvg sri-aos—  1.00g      archlinux 0.00                                   
      archlinux myvg owi-a-s— 10.00g                                                       
      data      myvg owi-aos—  7.00g                                                       
      data-snap myvg sri-aos—  1.00g      data      0.01                    

    Attr  属性字段中s表示快照卷。 r只读 ,Origin 指的是原卷,Data% 指的是发生改变的数据(快照的中保存的原卷发生改变的数据)。

四、扩容lv

    扩展逻辑卷:可在线执行扩展操作。无需卸载
        # lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
        # resize2fs /dev/VG_NAME/LV_NAME #G 修复文件系统分区到多大。
            resize2fs -p /dev/VG_NAME/LV_NAME  物理边界有多大,就扩展到多大。

五、缩减lv

        # umount/dev/VG_NAME/LV_NAME
        # e2fsck -f /dev/VG_NAME/LV_NAME
        # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
        # lvreduce-L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
        # mount

一定要先卸载,不能在线缩减。

一定要确认缩减后,依然能够容纳下原有的数据。

    [root@yangyouwei ~]# df -hl

一般不建议,进行缩减操作。如必须执行的话,一定要严格按如下步骤执行。否则会造成系统无法识别lv,丢失数据。

先缩减文件系统边界,后缩减lv边界(物理边界)
    
    缩减逻辑卷:严格按照如下步骤只从。
        卸载lv设备             umount/dev/VG_NAME/LV_NAME
        强制检测lv设备         e2fsck -f /dev/VG_NAME/LV_NAME   ####如果是其他文件系统,使用相应的工具进行检查。确保文件系统处于一致状性态。
        调整分区大小            resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]  ####如不是ext系列的分区,许使用相应的工具调整。
        调整lv大小            lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

注意事项:
    
        创建的lvm设备,只有创建了lv以后才能被系统识别看到硬件设备。
        /dev/vgname/vgname-lvname
        /dev/mapper/lvname
        
        lv是被系统设备能够识别的,在/dev下有设备文件。dm-0…dm-n。
        /dev/vgname/lvname  /dev/mapper/lvname都是软连接到 dm设备的

        需要调整分区大小,需要先执行resize2fs,这仅是针对ext系列分区的分区调整工具。其他类型的分区,需要使用相应的工具。
        lvm调整的时候注意各种边界。pv边界,vg边界,lv边界(物理边界) 以及 文件系统边界(逻辑边界)

        创建快照卷,快照卷必须与原卷处于同一卷组之内。

快照的原理

    快照的实现是,创建快照是创建一个元数据监视器,将元数据保存在快照逻辑卷,这监视器,时刻监视着目标磁盘设备的元数据变化,一旦发生变化才将要被修改变化的数据备份到快照卷。(快照卷是指向访问原卷的另一个路径(类似于硬链接))。快照卷的体积很小。快照卷大小,取决于想要保存快照多长时间。时间越久,就需要更大的快照空间,最大到与原卷大小一样。快照卷通常是只读的。还有一种方式,是快照的快照。注意快照的实现是非常快的。

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

(0)
yywyyw
上一篇 2016-09-02
下一篇 2016-09-02

相关推荐

  • 第三周课堂练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@myserver ~]# whoami  root  [root@myserver ~]# who | cut -d' ' -…

    Linux干货 2016-09-19
  • 第六周作业

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :进入末行模式 % s/^[[:space:]]/#&…

    Linux干货 2016-10-09
  • Shell脚本编程入门

    什么是Shell      操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互。      Shell是一个用户跟操作系统之间的一个命令解释器。Shell是用户与Linux操作系统之间沟通…

    Linux干货 2016-08-15
  • 数组的基本应用

                                   数组 变量:存储单个元素的内存空间v 数组:存储多个元素的连续的内存空间,相当于多个变量的集合。v 数组名和索引 索引:编号从0…

    Linux干货 2016-08-24
  • 文件管理类命令详解

    文件管理类命令详解 文件查看 cat 功能描述:连接文件并打印到标准输出上 命令格式:cat [OPTION]… [FILE]… OPTION: -b 对所有非空白行编号 -n 给所有输出行编号 -s 将连续多行空白行显示为一行空白行 -E 在每一行行尾显示$ FILE:可显示多个文件,文件之间以空格分隔 举例 将file1、file…

    Linux干货 2017-07-09
  • Nginx 负载均衡多个nmmp主机

    设计拓扑图 一、Memcache简介 cache(缓存系统) 高性能分布式缓存服务器,缓存所有的“可流式化”数据:livejournal旗下Danga Interacive公司 程序=指令+数据 指令:程序 数据:IO操作 文件系统: 特征:协议简单  基于libevent的事件处理  内置内存存储方式  memcached 不…

    2014-09-17