快照技术对比学习

天翼云开发者社区
• 阅读 284

本文分享自天翼云开发者社区《快照技术对比学习》,作者:z****n

1.快照的分类 根据 SNIA 的定义, 快照有全量快照 (full snapshot) 和增量快照 (incremental snapshot) 两种类型。

2.全量快照 克隆(Clone): 与备份操作类似,克隆技术是一种数据复制和恢复的方法,用于创建源数据的完全副本。将源数据的所有信息和状态以二进制形式进行备份,并在需要时将其恢复到相同或另一个系统中。克隆对象可以是存储卷、文件系统或者LUN,优势在于它提供了完全一致和独立的复制,不受源系统的影响。缺点就是在创建时要完整的复制一份数据,需要占用和源数据空间一样大的存储空间,资源成本高,消耗时间长。 镜像分离(Split Mirror): 镜像分离也属于全量快照,先创建源卷的一个镜像卷,每次磁盘写入数据的时候,都会向源卷和快照卷同时写入内容。当启动快照时,镜像卷能快速脱离,直接生成一个快照卷。因此镜像分离在读操作时没有任何影响,在写操作时会有两次写入操作,分别写入源卷与镜像卷。

3.增量快照 3.1写时拷贝(Copy-On-Write,CoW):在源卷之外创建一个快照卷,用于存放快照数据。 写数据: 1、写入请求:当需要对原始数据进行写入操作时,系统首先创建一个新的空白数据块(或称为写时复制快照),并将写入请求发送到该新数据块。 2、数据复制:系统将需要被修改的数据块从原始数据中复制到新的写时复制快照中,这样可以确保原始数据不会被修改。 3、修改写时复制快照:在写时复制快照中进行实际的数据修改操作,即将写入请求应用于写时复制快照。 4、更新快照指针:完成写入操作后,系统更新增量快照指针,使其指向新的写时复制快照,以反映最新的数据状态。

快照技术对比学习

读数据: 1、初始状态:增量快照指向原始数据。 2、读取请求:当有读取请求时,系统检查增量快照指针。 3、检查增量快照:如果读取请求的数据在增量快照中存在,系统直接从增量快照中读取相应的数据,并返回给请求方。 4、查找原始数据:如果读取请求的数据不在增量快照中,系统将查找原始数据。 5、读取原始数据:系统根据读取请求定位到原始数据,并返回相应的数据给请求方。

优点:CoW在写入操作时,不直接修改原始数据,而是创建副本并在副本上进行修改。这样可以减少对原始数据的复制操作,因此CoW快照创建非常快。其次,CoW确保了数据的完整性和一致性,原始数据始终保持不变,只有在写入操作完成后,新的数据副本才会出现。同时CoW可以节省存储空间。由于只有在数据块被修改时才复制数据,多个副本可以共享未修改的数据块,减少了存储空间的占用。

缺点:降低源数据卷的写性能,因为每次改写新数据,实际上都进行了两次写操作。

应用场景:CoW技术提供了空间效率、写入性能和数据完整性的优势,适用于需要高效存储、备份和恢复数据的场景。因此在虚拟化、容器化、数据备份、文件系统和数据库管理等领域得到广泛应用。

3.2写时重定向(Redirect-On-Write,RoW) 写数据: 1、初始状态:RoW技术在初始状态下指向原始数据。 2、写入请求:当有写入请求时,系统首先检查RoW指针。 3、创建副本:如果RoW指针指向原始数据,系统会创建原始数据的副本。 4、修改副本:系统在副本上进行修改操作,而不会对原始数据进行任何更改。 5、更新RoW指针:当修改操作完成后,系统会更新RoW指针,使其指向新创建的副本。 6、更新元数据:系统会更新相关的元数据,如指针或索引,以反映新的数据位置。

快照技术对比学习

读数据: 1、初始状态:RoW技术在初始状态下指向原始数据。 2、读取请求:当有读取请求时,系统会根据读取操作所需的数据确定读取路径。 3、检查RoW指针:系统首先检查RoW指针。 4、判断读取路径:根据RoW指针的状态,有两种可能的读取路径: 1)如果RoW指针指向原始数据,则系统直接读取原始数据。 2)如果RoW指针指向副本数据,则系统需要跟踪回溯到原始数据,并读取经过修改的副本数据。 5、读取数据:根据所确定的读取路径,系统从相应的位置读取数据。 1)如果RoW指针指向原始数据,系统直接从原始数据位置读取数据。 2)如果RoW指针指向副本数据,系统通过回溯到原始数据并按照修改路径读取副本数据。

优点:RoW技术避免了对原始数据的复制,只在修改发生时创建副本,因此具有较高的空间效率。其次解决了CoW快照写两次的问题,就写性能而言RoW是优于CoW 的。RoW技术通过在副本上进行修改而不直接修改原始数据来保持数据的完整性和一致性。RoW技术可以通过跟踪回溯到原始数据来实现快速恢复和数据保护。

缺点:RoW技术在读取操作时可能需要进行回溯操作以获取经过修改的副本数据,这可能略微降低读取性能。RoW没有一个完整的快照卷,其快照之间的关系是链式的,如果快照层级越多,进行快照恢复时的系统开销会比较大。

应用场景:RoW技术适用于需要高效存储、备份和恢复数据的场景。它提供了空间效率、写入性能和数据完整性的优势,因此在虚拟化、容器化、文件系统和数据库管理等领域得到广泛应用。

在传统存储场景下,RoW技术存在一个重要问题,即对读取性能的影响较大。随着多次读写操作的进行,源数据卷中的数据会变得非常离散,这导致RoW在连续读取和写入性能方面不如CoW。因此,RoW更适用于写入密集型的存储系统。然而,在分布式存储的情况下,RoW的连续读写性能却会超过CoW。在传统存储场景中,读写性能的瓶颈通常出现在磁盘上,但这种瓶颈在分布式存储场景中不存在。在业务层面上,用户看到的是连续存储,实际上数据分布在不同服务器的不同硬盘上,数据越分散,系统性能越高。RoW技术将源数据卷中的原始数据打散后,反而对性能有益。因此,目前阶段下,RoW结合分布式存储的快照方式是业界主要发展方向。

点赞
收藏
评论区
推荐文章
Peter20 Peter20
3年前
【MySQL笔记】正确的理解MySQL的MVCC及实现原理
MVCC多版本并发控制如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!!首先声明,MySQL的测试环境是5.7前提概要什么是MVCC什么是当前读和快照读?当前读,快照读和MVCC的关系MVCC实现原理隐式字段undo日志ReadView(读视图)
Stella981 Stella981
3年前
Redis主从自动切换原理
Redis主从自动切换原理复制原理1:当一个从数据库启动时,会向主数据库发送sync命令,2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。4:从数据库
Stella981 Stella981
3年前
ElasticSearch 映射到 hdfs的快照
一、下载:https://artifacts.elastic.co/downloads/elasticsearchplugins/repositoryhdfs/repositoryhdfs5.4.0.zip二、安装./bin/elasticsearchplugininstallfile:///opt/elasticsearch5.
Stella981 Stella981
3年前
JVM系列九(虚拟机性能监控工具
一、写在前面上一篇文章(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fjmcui%2Fp%2F12495341.html)我们介绍了性能监控的一些命令,包括jmap(生成堆存储快照)和jstack(生成线程快照),事实上,在
Wesley13 Wesley13
3年前
Java命令学习系列(二)——Jstack
jstack是java虚拟机自带的一种堆栈跟踪工具。功能jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过jstack来查看各个线程的调用堆
Stella981 Stella981
3年前
SQL如何使用快照恢复之前的数据
什么是快照数据库快照是SQLserver2005的一个新功能。给出的定义如下数据库快照是数据库的只读静态视图。在创建时每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。reg:!(https://oscimg.oschina.ne
Easter79 Easter79
3年前
SQL如何使用快照恢复之前的数据
什么是快照数据库快照是SQLserver2005的一个新功能。给出的定义如下数据库快照是数据库的只读静态视图。在创建时每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开的事务会回滚以使数据库快照在事务上取得一致。reg:!(https://oscimg.oschina.ne
Stella981 Stella981
3年前
RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
最近改版的新版EasyNVR我们发现界面中仍然保留了“视频广场”的显示项,通过视频广场可以查看不同通道的最新视频快照信息,也可以通过搜索方式展现特定的视频通道快照。最近测试中研发测试时,发现在视频广场使用搜索框搜索不到纯数字的关键词。!NVR10.png(https://imgconvert.csdnimg.cn/aHR0cDovLzEyMS40MC
Wesley13 Wesley13
3年前
Unity中制作游戏的快照游戏支持玩家拍快照
Unity中制作游戏的快照游戏支持玩家拍快照有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能。这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游戏视图,并将其显示在视图其它区域的方法。具体的操作步骤如下本文选自Unity游戏开发技巧集锦:(1)在Pro
基于快照的异步远程复制介绍
本文介绍了基于RBD快照的异步远程复制技术
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
693
粉丝
15
获赞
40