在Linux操作系统使用逻辑卷的快照(snapshot),进行对逻辑卷的数据备份。

作用:结合特定应用程序,方便备份数据。

基于cow(copy on write 写时复制)机制

在创建逻辑卷快照的时候,如果不去设置逻辑卷快照的权限的话,那么这个逻辑卷的权限就是可读可写,

创建逻辑卷快照的命令

逻辑卷快照容量的意义。

如上图所示,当你创建一个逻辑卷快照的时候,你需要根据公司的监控系统,去观察总结在你备份数据的这一时间段,我公司的服务器上关于数据的变化量是多少,以此来规定逻辑卷快照的容量大小,比如你定义逻辑卷快照的容量是500MB,所以原来服务器在旧逻辑卷上操作的数据不能超过500MB,如果数据的变化超过500MB。逻辑卷快照报废。那这次的数据备份就是一个失败的备份。

逻辑卷快照的使用流程。

1.首先去创建一个逻辑卷快照。

如上图所示,可以使用lvcreate -s -p r -n 快照名称 -L 容量 逻辑卷名称

此时使用lvscan来查看当前系统的逻辑卷,会发现snapshot快照以及它的逻辑卷来源。

2.随后将这个逻辑卷快照挂载到一个空目录上。

如上图所示,使用逻辑卷快照的方法就是将逻辑卷快照挂载到一个空目录上,并且系统体制这个逻辑卷快照只能以只读的方式打开。

随后也可以去查看这个挂载目录中的内容,实际上就是逻辑卷快照中的内容,

如上图所示,当在原来的逻辑卷中进行数据的操作的时候,逻辑卷快照中的数据是不会更新的。

3.使用逻辑卷快照进行数据备份。

现在快照已经挂载,你可以像处理普通文件系统一样进行备份操作。这可以是使用rsynctar或其他备份工具。

1sudo rsync -aHAXx /mnt/snapshot/ /backup/

如上所示,是将/mnt/snapshot/中的数据,通过rsync这个备份工具,将数据备份到/backup/。

4.使用逻辑卷快照去恢复逻辑卷中的数据

如果你想从快照恢复数据,可以先卸载原始逻辑卷,然后使用lvconvert命令将快照合并到主逻辑卷中,这会将快照时的数据状态应用到主逻辑卷。

1sudo umount /mount_point_of_original_lv
2sudo lvconvert --merge /dev/vg_data/data_snap

如上所示,如果想从快照中去恢复数据的话,就可以先使用umount命令去卸载原始逻辑卷,然后使用lvconvert命令将快照合并到主逻辑卷中,这会将快照时的数据状态应用到主逻辑卷。

5.删除逻辑卷快照

如上图所示,卸载逻辑卷快照的方式就是umount 逻辑卷快照名称 

那么如何删除逻辑卷快照呢?

使用lvremove 逻辑卷快照名称 

随后使用lvscan,来查看删除逻辑卷快照后的结果。

逻辑卷快照的底层原理

使用cow(写时复制的原理)

在对逻辑卷创建快照的时候,并不是将逻辑卷中的数据复制到逻辑卷快照中,而是将逻辑卷数据的指针保存到逻辑卷快照中。也就是说逻辑卷快照中的数据的指向保存到快照中。

再说大白话,就是将逻辑卷中数据的存放位置保存到了逻辑卷快照当中,也就是说将逻辑卷中数据的元数据信息保存到了逻辑卷快照当中。

但是逻辑卷快照中并不是保存的单纯的指针,逻辑卷快照借助的是写时复制的机制,当原逻辑卷的数据发生变化的时候,在这一时刻,原来逻辑卷中发生变化的数据的原数据被复制到了逻辑卷快照中.

而逻辑卷快照的容量就表示在这个逻辑卷快照中所储存真实数据的时候,真实数据的空间大小。

创建快照的时候,快照中只保存数据的指针信息,(元数据信息),只有当原逻辑卷数据发生变化时,才会将真实的数据复制到快照中来。

如上图所示,创建一个逻辑卷快照容量是100MB,但是我对原来逻辑卷中去创建一个大小为200MB的文件这时,再去查看逻辑卷快照的挂载目录发现,没有文件可以被查看了,而且使用lvscan查看系统中的逻辑卷,发现逻辑卷快照处于inactive状态,证明此次逻辑卷数据备份失败。

如上图所示,在逻辑卷快照处于inactive的状态之后,再次使用mount命令将逻辑卷快照挂载到目录/mnt/中,发现/mnt/依然没有文件可以被查看,这时使用lvremove -f命令将逻辑卷快照删除即可。

基于快照备份数据

如上图所示,对逻辑卷/data/web/创建快照,/dev/data/web

使用mount命令去挂载逻辑卷快照/dev/data/web到目录/mnt/中,随后使用tar -czf来对逻辑卷快照中的数据进行打包备份。

如上图所示,使用逻辑卷快照来备份数据后,就可以使用umount 命令将逻辑卷快照进行卸载的操作,然后就可以使用lvremove命令来将逻辑卷进行删除的操作,这时就使用lvscan命令来查看当前系统中关于逻辑卷快照的查看。验证逻辑卷快照是否删除成功。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

coco数据集格式计算mAP的python脚本

目录 背景说明COCOeval 计算mAPtxt文件转换为coco json 格式自定义数据集标注 背景说明 在完成YOLOv5模型移植,运行在板端后,通常需要衡量板端运行的mAP。 一般需要两个步骤 步骤一:在板端批量运行得到目标检测结果,可保存为yol…

AI教你如何系统的学习Python

Python学习计划 第一阶段:Python基础(1-2个月) 目标:掌握Python的基本语法、数据类型、控制结构、函数、模块和包等。 学习Python基本语法:包括变量、数据类型(整数、浮点数、字符串、列表、元组、字典、…

STM32基础篇:GPIO

GPIO简介 GPIO:即General Purpose Input/Output,通用目的输入/输出。就是一种片上外设(内部模块)。 对于STM32的芯片来说,周围有一圈引脚,有时需要对引脚进行读写(读:从外部输入一…

【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!!

视频演示 【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!! 1,安装docker方法: #!/bin/shdistribution$(…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示BMP280传感器数据

LCD ST7735显示BMP280传感器数据 文章目录 LCD ST7735显示BMP280传感器数据1、硬件准备与接线2、代码实现本文介绍如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 Bosch Sensortec 的 BMP280 气压和温度传感器连接。 NodeMCU 微控制器 (ESP8266EX) 从 BMP280 传感器读取温度和压力值,…

VUE3初学入门-02-VUE创建项目

创建VUE项目的另一个方法 三种方法通过vue-cli进行创建通过npm进行创建比较 部署到nginx修改配置生成部署文件 三种方法 上一篇是在VSCODE中建立工作区,然后创建,属于命令加鼠标方式。个人感觉,在VSCODE基本上都是这样的操作,不是…

vue3中svg图标的封装与使用

组件封装&#xff1a; <template><svg :class"svgClass" :style"{ width: size px, height: size px, color: color, verticalAlign:deviationem}" aria-hidden"true"><use :xlink:href"#icon-${name}" /></s…

Python编程学习笔记(2)--- 列表简介

1、列表是什么 列表由一系列按特定顺序排列的元素组成。可以创建包含字母表中所有字母、数字、0~9或所有家庭成员姓名的列表&#xff1b;也可以将任何东西加入列表中&#xff0c;其中的元素之间可以没有任何关系。列表通常包含多个元素&#xff0c;因此给列表指定一个表示复数…

基于SSM+JSP的KTV点歌系统(带1w+文档)

基于SSMJSP的KTV点歌系统(带1w文档) 开发一个KTV点歌系统可以解决不利于线下点歌的问题&#xff0c;同时管理员可以利用网络对KTV点歌系统信息进行管理&#xff0c;设计的网站保证信息的完整安全&#xff0c;这样才能提高工作效率&#xff0c;保证系统安全正常的运行。 项目简介…

vim未找到命令,且yum install vim安装vim失败

vim未找到命令&#xff0c;且yum安装vim失败 1、wget更新yum云资源&#xff0c;本次更新为华为云镜像资源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repowget报未找到命令&#xff0c;请查看文章Linux wget…

iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索

场景 我们有时候会遇到这样的一个交互场景&#xff1a;我们有一个UITableView 放在一个弹窗中&#xff0c;这个弹窗可以通过滑动进行展示和消失&#xff08;跟手滑动的方式&#xff09;&#xff0c;然后这个UITableView放在弹窗中&#xff0c;并且可以滚动&#xff0c;展示一些…

昇思25天学习打卡营第19天|Diffusion扩散模型

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) Diffusion扩散模型 本文基于Hugging Face&#xff1a;The Annotated Diffusion Model一文翻译迁移而来&#xff0c;同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成…

Python数据分析案例50——基于EEMD-LSTM的石油价格预测

案例背景 很久没更新时间序列预测有关的东西了。 之前写了很多CNN-LSTM&#xff0c;GRU-attention&#xff0c;这种神经网络之内的不同模型的缝合&#xff0c;现在写一个模态分解算法和神经网络的缝合。 虽然eemd-lstm已经在学术界被做烂了&#xff0c;但是还是很多新手小白或…

RAG 案框架(Qanything、RAGFlow、FastGPT、智谱RAG)对比

各家的技术方案 有道的QAnything 亮点在&#xff1a;rerank RAGFLow 亮点在&#xff1a;数据处理index 智谱AI 亮点在文档解析、切片、query改写及recall模型的微调 FastGPT 优点&#xff1a;灵活性更高 下面分别按照模块比较各框架的却别 功能模块QAnythingRAGFLowFastG…

MPC学习资料汇总

模型预测控制MPC学习资料汇总 需要的私信我~ 需要的私信我~ 需要的私信我~ 【01】课件内容 包含本号所有MPC课程的课件&#xff0c;以及相关MATLAB文档。 【02】课件源代码 本号所有MPC课程的源代码。 【03】MPC仿真案例 三个MPC大型仿真案例&#xff1a; 1&#xff09;…

力扣爆刷第160天之TOP100五连刷66-70(回溯、旋转图像、技巧题)

力扣爆刷第160天之TOP100五连刷66-70&#xff08;回溯、旋转图像、技巧题&#xff09; 文章目录 力扣爆刷第160天之TOP100五连刷66-70&#xff08;回溯、旋转图像、技巧题&#xff09;一、110. 平衡二叉树二、39. 组合总和三、543. 二叉树的直径四、470. 用 Rand7() 实现 Rand1…

win系统提示VCRUNTIME140_1.dll丢失或找不到的8个处理方法

在使用电脑过程中经常会遇到各种各样的问题&#xff0c;比如vcruntime140_1.dll丢失或找不到vcruntime140_1.dll无法继续执行代码就是其中的一个常见问题!那么遇到vcruntime140_1.dll丢失问题要怎么处理&#xff1f;vcruntime140_1.dll是什么&#xff1f;下面我给大家详细介绍v…

谷粒商城学习笔记-16-人人开源搭建后台管理系统

文章目录 一&#xff0c;克隆前/后端代码1&#xff0c;克隆前端工程renren-fast-value2&#xff0c;克隆后端工程renren-fast 二&#xff0c;集成后台管理系统的后端代码三&#xff0c;启动后台管理系统四&#xff0c;前端系统的安装和运行1&#xff0c;下载安装VSCode2&#x…

Crossformer_Transformer

文章目录 摘要1 引言2 相关工作多变量时间序列预测基于Transformer的MTS预测视觉Transformers 3 方法详细解释 3.1 维度-分段-方式嵌入3.2 两阶段注意力层跨时间阶段跨维度阶段 3.3 分层编码器-解码器编码器解码器 摘要 最近&#xff0c;许多深度模型被提用于多变量时间序列&a…

Pyserial设置缓冲区大小失败

文章目录 问题描述原因分析解决方案 问题描述 使用set_buffer_size()设置缓冲区大小后&#xff0c;buffer size仍为默认的4096 import time import serial ser serial.Serial(baudrate9600, timeout0.5) ser.port COM1 ser.set_buffer_size(rx_size8192) ser.open() while …