lvm snapshot(lvm 快照)
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/sdb
Disk /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: 0xcaf172f9
Device 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/snmpsrc
Merging 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 还原
lvm snapshot(lvm 快照)的更多相关文章
- Exadata LVM snapshot备份失败
一台X4-2 的计算节点进行image升级,在正式升级之前利用LVM snapshot备份操作系统时备份失败,并且报大量IO错误,提示无法找到LVM snapshot的挂载点.检查文件系统状态: [r ...
- 在Linux下如何创建LVM及LVM创建过程
Linux LVM创建过程:(我用的是Centos6.8) 一.准备工作: LVM可以的创建可以在系统安装的过程中创建,也可以在安装完系统之后再创建建,都是可以的,我的是在系统安装完之后创建的,具体的 ...
- lvm拉伸与快照
一.拉伸 *用fdisk分区 *构建pv *将pv加入vg *将pv内的pe加入lv *通过resize将文件系统的容量增加 1.分区 [root@server3 ~]# fdisk /dev/vdb ...
- Linux磁盘管理之LVM逻辑卷快照
一.快照的工作原理 所谓快照就是将当时的系统数据记录下来,在未来若有数据变动,则会将变更前的数据放入快照区进行保存.我们可理解为快照就是给系统拍了一张照片,记录当时系统在拍快照的状态.只不过现实生活中 ...
- GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...
- MySQL备份---lvm snapshot
正常安装(缺点要锁表) 1, 创建一个LV(逻辑卷) , 把MySQL的数据目录放到这个LV上 /var/lib/mysql 对这个LV做快照, 从快照备份数据 删除快照 非正常安装 1,创建LV 2 ...
- lvm创建和快照
查看磁盘 创建分区 新建1G的1分区 新建1G的2分区 新建1G的3分区 查看新建的分区 因标准分区是83交换分区是82做lv是8e所以要改变类型 查看: 保存退出: 创建物理卷pv 将物理卷pv创建 ...
- 【LVM】LVM自动扩容脚本
概要说明: /dev/mapper/vg0-data挂载在目录/data下: 当新增物理磁盘时,需要自动对/dev/mapper/vg0-data磁盘时进行扩容(自动化脚本): 当新增物理磁盘时,自动 ...
- [LVM]创建LVM卷
https://www.cnblogs.com/softidea/p/5147090.html
随机推荐
- gulp.js简单操作
一.安装gulp 1.深入设置任务之前,需先安装gulp: $ npm install gulp -g 2.这会将gulp安装到全域环境下,让你可以存取gulp的CLI.接著,需要在本地端的专案进行安 ...
- Spring学习 Ioc篇(二 )
5.spring依赖注入的方式 方法一:使用构造器方式进行注入 1.dao的类和接口 package com.cvicse.dao.impl; import com.cvicse.dao.Person ...
- 认识angualrJS的resource服务
这段时间公司有个项目要用到angularJS,于是就在网上开始各种找学习资料. 一开始下了一本<angularJS权威教程>,看了10章,实在看不下去了,只能说这本书对于才接触javasc ...
- linux下的find文件查找命令与grep文件内容查找命令
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...
- Paxos一致性算法
分布式系统的整体思路:协调者与参与者 分布式系统中,每个节点可以知道自己在事务操作过程中是成功还是失败,但无法获取其他节点的操作结果,所以就不知道这个事务是否在所有机器上全都执行成功,所以需要引入一个 ...
- 钉钉的收费 [钉钉深圳研发团队 denny/2016.01.06/ 59888745@qq.com]
普通用户(个人) 团队 企业 1.免费额度为每月通话100分钟.每天发DING 5次. 1. 每月通话300分钟,每天发DING 10次. 2. 群组最多可达1500人 1. 该公司所 ...
- Eclipse中FindBugs插件的应用
在以前的一个开发现场里,经常会收到客户的代码review指摘. 觉得有点神奇是,给客户的文件是编译后的*.class打成war包,客户那边却能指摘出代码中的缺陷bug,而且精确到代码的某一行. 通过* ...
- yum安装rz和sz
yum install lrzsz
- 异步编程 z
走进异步编程的世界 - 开始接触 async/await 序 这是学习异步编程的入门篇. 涉及 C# 5.0 引入的 async/await,但在控制台输出示例时经常会采用 C# 6.0 的 $&qu ...
- 开源是一种态度、分享是一种精神 — FirApi发布、WeiXinApi更新
在云计算盛行的年代,接触开发式的平台必不可少,因项目累积的代码也不少,之前本着"重复的事情自己做一次就够了,不需要其他人在重复为此工作."的想法发布了WeiXinApi.Boots ...