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

LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小,可以使用lvreduce。

997f3134738a84587883bb71ff1be542.png

在LVM中录制快照

如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件已经存在了。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。

快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。

前置阅读

我的服务器设置

操作系统 — 安装有LVM的CentOS 6.5

服务器IP — 192.168.0.200

步骤1: 创建LVM快照

首先,使用‘vgs’命令检查卷组中的空闲空间以创建新的快照。

# vgs

# lvs

51bc5b54aab8766e924941a038acd34d.png

检查LVM磁盘空间

正如你所见,在vgs命令输出中,我们可以看到有8GB的剩余空闲空间。所以,让我们为我的名为tecmint_datas的卷创建快照。处于演示的目的,我将会使用以下命令来创建1GB的快照卷。

# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

或者

# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

上面的两个命令都是干得同一件事:

-s – 创建快照

-n – 为快照命名

5a2b2eeda690adce3ff1cfc54f7d3efe.png

创建LVM快照

此处,是对上面高亮要点的说明。

我在此创建的快照的大小。

创建快照。

创建快照名。

新的快照名。

要创建快照的卷。

如果你想要移除快照,可以使用‘lvremove’命令。

# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

4eb9c621a4dfa9d1a8a51b0652be0ca5.png

移除LVM快照

现在,使用以下命令列出新创建的快照。

# lvs

1ce01c829c682e1e70c0ffbe87c9a433.png

验证LVM快照

上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是tecmint_datas。是的,因为我已经为tecmint_datas l-volume创建了一个快照。

cf7e81661beff9e97ff7fc20db7140ad.png

检查LVM快照空间

让我们添加一些新文件到tecmint_datas里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。

# lvs

44f67e3f082edb5c11f5712eb5ea7b4f.png

检查快照状态

你看到了,现在已经用掉了51%的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。

# lvdisplay vg_tecmint_extra/tecmint_data_snap

c2704341b3d0160472e13cb38c881da6.png

查看快照信息

再来对上面图片中高亮的要点作个清楚的说明。

快照逻辑卷名称。

当前使用的卷组名。

读写模式下的快照卷,我们甚至可以挂载并使用该卷。

快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。

该快照属于tecmint_datas逻辑卷。

逻辑卷在线并可用。

我们录制快照的源卷大小。

写时复制表大小,Cow = copy on Write,这是说对tecmint_data卷所作的任何改变都会写入此快照。

当前使用的快照大小,我们的tecmintdata有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmintdatas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)

给出快照组块的大小。

现在,让我们复制超过1GB的文件到tecmint_datas。让我们看看会发生什么。如果你那么做了,你将会见到‘Input/output error’这样的错误信息,它告诉你快照超出空间大小了。

ef346e4efeac13900a325f661ad3bcfb.png

添加文件到快照

如果该逻辑卷满了,它就会自动丢失新的数据,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。tecmint_datas的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。

步骤2: 在LVM中扩展快照

如果我们需要在超过容量前扩展快照卷的大小,我们可以使用以下命令来完成此项任务。

# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

现在,那里有总计2GB大小的快照空间。

2489393ed5f28503926427adf1d99d6a.png

扩展LVM快照

接下来,使用以下命令来验证新的大小和写时复制表。

# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

要知道快照卷的大小使用%。

# lvs

56828a148048255581cbae67d2126dca.png

检查快照大小

然而,如果你的快照大小和源卷一样,我们就没有必要担心这些问题了。

步骤3: 恢复快照或合并

要恢复快照,我们首先需要卸载文件系统。

# unmount /mnt/tecmint_datas/

2e958d97c957c9ce28e23ea937244370.png

卸载文件系统

只想检查挂载点是否卸载成功,可以使用下面的命令。

# df -h

cc168a0af0d1dbc373f1e63b79e8f366.png

检查文件系统挂载点

这里,我们的挂载已经被卸载,所以我们可以继续恢复快照。要恢复快照,可以使用lvconvert命令。

# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

d8c9cbb550d33f9ac2b783060093c359.png

恢复LVM快照

在合并完成后,快照卷将被自动移除。现在我们可以使用df命令来查看分区大小。

# df -Th

504746b4e11652aba472a03f3c5b1202.png

在快照卷自动移除后,你可以用下面的命令查看逻辑卷大小。

# lvs

299c66e6bbe3b3c593072c619cce0195.png

检查逻辑卷大小

重要:要自动扩展快照,我们可以通过修改配置文件来进行。对于手动扩展,我们可以使用lvextend。

使用你喜欢的编辑器打开lvm配置文件。

# vim /etc/lvm/lvm.conf

搜索单词autoextend。默认情况下,该值和下图中的类似。

2e26b320d3b68578806a883607a60459.png

LVM配置

修改此处的100为75,这样自动扩展的起始点就是75,而自动扩展百分比为20,它将自动扩容百分之20。

如果快照卷达到75%,它会自动为快照卷扩容20%。这样,我们可以自动扩容了。使用wq!来保存并退出。

这将把快照从超载导致下线事故中拯救出来,这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法,让我们在下一个话题中来讨论吧。

本文由 LCTT 原创翻译,Linux中国 荣誉推出 linisi.svg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Annotations我从没有机会使用第2部分:@ConfigurationProperties

几天前,我在检查其他内容时不小心偶然发现了Spring Boot项目中的Spring注释。 我们都知道如何将带有“ Value”的属性值绑定到类,并且我们都知道如果要绑定多个属性,这可能会很麻烦。 Spring Boot可以为您提供帮助。 您可以使用“ Configura…

python语言变量随时声明_2. Go语言五种变量创建的方法

对于只有 Python 语言经验的朋友,也许会不太理解声明这个词,在 Python 中直接拿来就用,也不用声明类型啥的。 Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类…

linux netty udp服务端,Netty实现UDP服务端

### 前言在之前的文章我已经讲过了利用Netty实现UDP客户端,大家有兴趣的话,可以参看下面文章:[Netty实现UDP客户端](https://www.jianshu.com/p/5dbc6b3c9d94)今天就让我们来学习下利用Netty实现UDP服务端吧,这里我经过整合封装&a…

会java需要多久能学会python_java好学吗?零基础学java要多久?

java好学吗?零基础学java要多久? 时间:2019-05-21 来源:华清远见 2019年3月,tiOBE 公布了编程语言排行榜,正如官方所说,本月的排名几乎没有任何有趣的变化,排名前十的依然是&…

linux memcached 运行,linux下查看Memcached运行状态

查看Memcached运行状态的命令是:echo stats | nc 127.0.0.1 11211 查看memcached状态的基本命令,通过这个命令可以看到如下信息: STAT pid 22459 进程ID STAT uptime 1027046 服务器运行秒数 STAT time 1273043062 服务器当前unix时间戳 STAT…

jboss架构_检查Red Hat JBoss BRMS部署架构的规则和事件(第二部分)

jboss架构(文章来宾与北美红帽公司高级中间件顾问约翰赫洛克 ( John Hurlocker)合着) 在这周的技巧中,我们将放慢速度,并仔细研究可能的Red Hat JBoss BRMS部署体系结构。 在谈论部署体系结构时&#xff…

linux 关于休眠得脚本,linux – 如果条件为true,请将cron作业休眠5分钟

你有两个选择来获得这个.通常,cron与前一个作业实例是否仍在运行无关.选项1:在脚本的开头写一个锁文件,并在完成后将其删除.然后在脚本开头检查文件是否存在,如果是,则脚本结束而不做任何事情.例如,这可能是这样的:# if the file exists (-e) end the sc…

TestNG中的参数化– DataProvider和TestNG XML(带有示例)

测试自动化,或所谓的自动化测试,并不像听起来那样容易。 必须考虑所有可能的用户交互的所有排列和组合,并且在此基础上,您将必须创建测试脚本以通过多种浏览器和OS组合来验证Web应用程序。 这就是参数化在Selenium自动化测试中起关…

java与python多态的区别_如果未调用父构造函数(与Java不同),多态性在Python中如何工作? - java...

因此,父类构造函数是在Java中调用的,而在Python中则不是。如果这意味着未创建父对象,那么如何在Python中成功调用def function-这是怎么回事? Python代码 class Parent: def __new__(self): print(f"I am the real parent co…

linux中统计java数量,linux 统计当前目录下文件数

查看当前目录下文件的个数ls -l | grep "^-" | wc -l查看当前目录下文件的个数,包括子目录里的。ls -lR| grep "^-" | wc -l查看某目录下文件夹(目录)的个数,包括子目录里的。ls -lR| grep "^d" | wc -l某目录下以.js结尾…

zbrush 添加纹理贴图_想学习3D游戏模型,3Dmax、MAYA和ZBrush都需要掌握吗?

想从事游戏行业的建模的话,模型和贴图的知识都得学,MAYA和3DMAX只能说是基本要学的,Zbrush能够提升个人价值,之后能给你建好的模型做出好看的贴图,才能算是一个游戏建模方面能干活的合格从业人员。新手入门的话&#x…

linux 连接wifi不稳定,rtl8188ce 无线网不稳定终极解决方案 - 哆啦比猫的技术瞎扯 - Arch Linux · ドラえもん · 实时绘制...

先容我废话据说 realtek 的无线网卡就这个系列问题多多。以前连接不太稳定,但不会频繁掉线就凑活用了。自从不知哪次升级以来,掉线越来越频繁,最后已经发展到 10秒必掉 了,以至于要上网就得拼命到终端里重连网络。网上也有各种解决…

file.getpath_Java中File的getPath(),getCanonicalPath()和getAbsolutePath()之间的区别...

file.getpathFile API在Java中非常重要,因为它使文件系统可以访问Java程序。 尽管Java的文件API丰富,但是使用它们时仍需要了解很多细节。 关于文件路径的常见查询程序员之一是getPath() , getCanonicalPath()和getAbsolutePath()方法之间的区…

为什么python代码运行不了_为什么Python代码能运行但是PyCharm给我画红线?

PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者。这本来是一个非常好的功能,但却由于另外一个问题,会给一些Python初学者造成困扰。 这一篇文章,我们讲讲工作区导致的这个问题。 首先我们创建一个login.py文件&#xff0c…

linux 在线帮助,linux获取在线帮助

Linux系统的帮助文档非常丰富。帮助手册提供命令的使用说明。比如你若是想了解ls命令的用法,只需运行:$ man ls帮助手册旨在提供基础知识和参考信息,有时会有一些实例和交叉索引,但是基本没有那种教程式的文档。帮助手册会按系统排…

python的计算_python 计算方位角实例(根据两点的坐标计算)

知道两点坐标,怎么计算两点方向的方位角? 答:首先计算坐标增量dx,dy(两个对应坐标分量相减,终点的减始点的)。 若dx,dy中有一个为零时,根据另一个的正负决定方位角(0,90,…

linux中samba详解,详解linux系列之samba的安装及配置

上篇博文中我介绍了FTP,今天我们来介绍一下samba实现文件共享。这个比FTP更好点,因为对用户的权限可以通过samba权限和系统权限交叉使用,取最严格的。可以让windows更容易的从linux系统上存取文件,还有samba也可以让linux上面的打…

saml2_向SAML响应中添加自定义声明–(如何为WSO2 Identity Server编写自定义声明处理程序)...

saml2总览 最新版本的WSO2 Identity Server(版本5.0.0)配备了“应用程序身份验证框架”,该框架提供了很大的灵活性,可以对使用异构协议的各种服务提供商的用户进行身份验证。 它具有几个扩展点,可用于满足企业系统中常…

python做股票分析_利用Python进行股票投资组合分析(调试)

pythonsp500-robo-advisor-edition Python for Financial Analyses 需要的镜像文件和数据--Robo Advisor edition. 小结 "Python for Finance: Robo Advisor Edition" 这一版本的镜像包括Jupyter notebook和Python脚本,以及用pandas通过Jupyter notebook构…

c语言程序求一一组数平均值,编写求一组整数的和与平均值的程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼-----------------------------------------------------[习题6-1]编写求一组整数的和与平均值的程序。-----------------------------------------------------[分析]循序渐进,从易到难,分解为下列问题群。…