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

相关推荐

  • N26-第三周博客

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只 显示一次即可。 [yang@localhost /]$ who | cut -d" " -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost tmp]# last | head -1 3、取出当前系…

    Linux干货 2017-02-08
  • linux目录基础、简单的命令以及运用linux帮助

    计算机组成及其功能     计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。所以计算机组成可以分为输入单元、输出单元、CPU(控制单元、算术逻辑单元)、内存     输入单元:包括键盘、鼠标、扫描仪、手写板、触摸屏等;实现…

    Linux干货 2016-09-17
  • mariadb基础应用

    mariadb基础应用 一、 前言 MariaDB is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users …

    Linux干货 2016-12-16
  • 进程管理

    简述进程的相关理论与工具使用

    2017-09-09
  • linux历史命令history详解

    history命令 history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。 该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。  128  ls  129  history[…

    Linux干货 2016-09-05
  • Linux计划任务

    计划任务 工作当中有时候需要将某件事情在未来的某个特定的时间执行,而自己确不在机器旁,该如何是好?像这样在每天特定的时间内去安排做一些事情这样,一种事情我们就称之为例行性的计划任务,其实在我们的操作系统当中都有类似的例行性任务计划功能,那如何去像设定闹钟一种在Linux上指定例行性计划任务并实施,主要有两种工具:at和crontab   计划任务分…

    Linux干货 2016-09-19