lvm快照有多种实现方法,其中一种是COW(Copy-On-Write),不用停止服务或将逻辑卷设为只读就可以进行备份,当一个 snapshot创建的时候只是拷贝原始卷里的元数据,而不是物理上的数据,所以snapshot的创建特别快。原始卷写入数据snapshot记录哪些数据发生变化,并备份旧数据,当恢复的时候就可以把旧数据恢复到对应位置。

介绍下LVM管理的相关命令

  • pvcreate ,pvmove ,pvremove ,pvscan ,pvdisplay
  • vgcreate ,vgremove ,vgscan ,vgdisplay ,vgreduce ,vgextend
  • lvcreate ,lvmove ,lvremove ,lvscan ,lvdisplay ,lvreduce ,lvextend ,lvresize ,lvchk

LVM备份恢复示例:

现有一个Disk /dev/sdb: 17.2 GB,先将它划分为两个分区,一个作为源分区做成lvm,一个作为备份数据保存点

[root@localhost ~]# fdisk -l /dev/sdbDisk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xcaf172f9Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    16779263     8388608   83  Linux
/dev/sdb2        16779264    33554431     8387584   83  Linux

1、创建lvm

[root@localhost ~]# pvcreate /dev/sdb1                         整个磁盘17G
[root@localhost ~]# vgcreate vgtest /dev/sdb1
[root@localhost ~]# lvcreate -L 7G -n srcdata vgtest
[root@localhost ~]# vgextend vgtest /dev/sdb2         把另一个分区也划入vgtest卷组
[root@localhost ~]# mkfs -t ext3 /dev/vgtest/srcdata
[root@localhost ~]# mount /dev/vgtest/srcdata /mymnt/mnt

2、模拟初始数据

[root@localhost ~]# tar zcf /mymnt/mnt/backup.gz /etc/*
[root@localhost ~]# echo 'hello world'> test.txt

当前lvm下已经有两个文件了,模拟磁盘备份前状态

3、创建快照

使用一个10G的大小对7G的lv创建快照有如下提示

[root@localhost ~]# lvcreate -L +10G -n snapsrc -s /dev/vgtest/srcdata (-s表示创建快照)Reducing COW size 10.00 GiB down to maximum usable size 7.03 GiB.Logical volume "snapsrc" created

查看,发现快照卷已经创建出来了,大小是7G

[root@localhost ~]# lvdisplay--- Logical volume ---
LV Path                /dev/vgtest/snapsrc
LV Name                snapsrc
VG Name                vgtest
LV UUID                ZIx3hb-80iW-R2Nf-XET6-9wfA-MG8K-6A3bRe
LV Write Access        read/write
LV Creation host, time localhost.localdomain, 2016-04-20 10:37:14 +0800
LV snapshot status     active destination for srcdata
LV Status              available
# open                 0
LV Size                7.00 GiB
Current LE             1792
COW-table size         7.03 GiB
COW-table LE           1800
Allocated to snapshot  0.00%                  这个是快照lv特有的,显示用了多少空间
Snapshot chunk size    4.00 KiB
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     8192
Block device           253:3

随着原始卷写入数据,快照卷的使用率也会增加。测试下往原始卷写入30M数据,使用率变成0.42%

[root@localhost ~]# cd /mymnt/mnt/
[root@localhost mnt]# dd if=/dev/zero of=./addfile bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.0974659 s, 323 MB/s
[root@localhost mnt]# lvdisplay | grep %Allocated to snapshot  0.42%

再新增一个文件[root@localhost mnt]# ls -lr /etc/* >b.txt,此时在执行快照之后原始卷新增了两个文件。此时如果想恢复之前的状态,要先卸载原始卷,再使用--merge(合并)恢复。

[root@localhost mymnt]# umount mnt
[root@localhost mymnt]# lvconvert --merge /dev/vgtest/snmpsrcMerging of volume snmpsrc started.srcdata: Merged: 100.0%Merge of snapshot into logical volume srcdata has finished.Logical volume "snmpsrc" successfully removed
[root@localhost mymnt]# mount /dev/vgtest/srcdata mnt

至此原始卷就恢复到备份前的状态了。


1、快照还有一种恢复方法就是,创建快照后直接挂载,把其中数据复制备份

[root@localhost mnt]# lvcreate -L +7G -n backuplv -s /dev/vgtest/srcdata
[root@localhost mnt]# mount /dev/vgtest/backuplv /mymnt/dstmnt/
[root@localhost mymnt]# tar -zcf dstmnt/dstmnt.tar.gz /mymnt/dstmnt/*     挂载后使用tar打包备份

备份好之后卸载快照卷,并lvremove 移除快照卷,以节省空间。

2、另外使用dump也可以实现备份恢复数据

[root@localhost ~]# dump -0u /tmp/data.bak.dump /snap
[root@localhost ~]#  mkdir /data
[root@localhost ~]# cd /data/
[root@localhost ata]#  restore -rf /tmp/data.bak.dump

3、 也可以使用dd将快照卷备份,然后直接替换还原

dd if=/dev/vgtest/srcdata of=/backupsrcdata.dd  备份
dd if=/backupbackupsrcdata.dd of=/dev/vgtest/srcdata  还原

linux lvm snapshot lvm 快照 逻辑卷 快照相关推荐

  1. linux lvm 系统快照,系统运维|在 LVM中 录制逻辑卷快照并恢复(第三部分)

    LVM快照是以空间换时间时间的方式制作的lvm卷副本.它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间.如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变.因而,对于空间有效利 ...

  2. linux逻辑卷管理快照,逻辑卷管理器(LVM)以及快照(特殊逻辑卷)的用法

    1.LVM基本介绍 2.PV.VG.LV关系详解(PV/VG/LV的创建.扩展逻辑卷大小.减小(减小操作很少用,仅作学习)) 3.快照的概念以及基本用法(特殊的逻辑卷) 4.总结LVM基本介绍 LVM ...

  3. Mysql之一:mysqldump和LVM逻辑卷快照

    ##################################### 常见的数据备份类型和备份工具 mysqldump备份工具 使用LVM逻辑卷快照备份 #################### ...

  4. LVM逻辑卷的缩减与删除,LVM逻辑卷快照,btrfs文件系统,网络管理

    逻辑卷缩减 缩减的时候要注意缩减的空间不要超过文件系统的空间,不然缩减的时候会损坏文件系统. 第一步要先取消挂载(必须) 第二部检查文件完整性(必须) e2fsck -f /dev/vg0/lv0 第 ...

  5. ssm执行linux 指令,Linux逻辑卷快照及ssm的使用

    Linux逻辑卷快照及ssm的使用 理论部分: 逻辑卷管理(LVM)提供了为任何逻辑卷作一个快照的功能,目的是在一致的状态下来得到一个分区的备份.因为在备份过程中,应用程序可能访问一个分区的文件或者数 ...

  6. LVM(logical volume manager) 逻辑卷管理器

    LVM(logical volume manager) 逻辑卷管理器 其中主要分为这几个概念 1物理卷-简称PV 物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可 ...

  7. 浅谈Linux磁盘存储管理续【逻辑卷管理(LVM)】

    一.LVM的基本概念 在对磁盘进行分区大小规划时,有时往往不能确定这个分区要使用的总空间大小,而用fdisk对磁盘分区后,每个分区的大小已经固定了,如果分区设置的过大,就白白浪费了磁盘空间,而分区设置 ...

  8. boot lvm 分区_LVM磁盘逻辑卷管理

    微信公众号:云计算通俗讲义 持续输出技术干货,欢迎关注! 通过本文你将了解: 卷管理 LVM PV VG LV LVM与Device Mapper 01 卷管理 卷管理软件对待RAID提交给上层操作系 ...

  9. LVM (Logic Volume Management,逻辑卷管理)

    是传统商业Unix就带有的一项高级磁盘管理工具,异常强大.后来LVM移植到了Linux操作系统上,尽管不像原来Unix版本那么强大,但瘦死的骆驼比马大,Linux的LVM仍然非常强大,可以在生产运行系 ...

最新文章

  1. Android Handler的使用(二)
  2. 再谈“去虚拟化”对深度学习系统的必要性
  3. R语言使用igraph包进行网络(network)可视化实战:将变量映射到网络节点(vertex)、将变量映射到网络的边(edge)
  4. RedHat7/Centos7 搭建NFS服务器
  5. hbase delete.deleteColumns问题
  6. android虚拟机的垃圾收集
  7. 「Python」ubuntu使用make命令安装python(带详细解释和防坑指南)
  8. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目
  9. ASP.NET 抓取网页内容
  10. python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象
  11. 如何构建一个流量无损的在线应用架构 | 专题中篇
  12. din算法 代码_DIN算法代码详细解读
  13. docker 远程连接 文件看不到_Java 开发提升十倍生产力:IDEA 远程一键部署 Spring Boot 到 Docker...
  14. 谈谈流计算中的『Exactly Once』特性
  15. session是什么,存储在哪里
  16. cocos creator 微信小游戏 世界排行榜制作教程(云数据库)
  17. Linux 查看网络流量 iftop
  18. How does “mov (%ebx,%eax,4),%eax” work?
  19. 计算机专业必读哪两本经典书籍?
  20. 谷歌浏览器如何安装插件

热门文章

  1. python提取部分字符串三参数_Python3字符串
  2. 全文搜索引擎有哪些?_搜索引擎工作原理是什么?seo蜘蛛抓取会受到哪些因素影响?...
  3. Tungsten Fabric SDN — 社区贡献
  4. DPI — 业务识别技术
  5. OpenStack 的单元测试
  6. Simulink仿真教程1---一个简单的仿真例子
  7. 微信生成带参数的二维码,合成海报,扫码后推送小程序?
  8. XamlReader动态使用xaml
  9. C语言 · 分糖果
  10. L4 如何在XCode中下进行工作