首页 > 其他分享 >快照技术对比学习

快照技术对比学习

时间:2024-07-19 14:58:36浏览次数:13  
标签:副本 快照 读取 数据 学习 原始数据 对比 RoW

本文分享自天翼云开发者社区《快照技术对比学习》,作者: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结合分布式存储的快照方式是业界主要发展方向。

标签:副本,快照,读取,数据,学习,原始数据,对比,RoW
From: https://www.cnblogs.com/developer-tianyiyun/p/18311474

相关文章

  • 工时记录软件对比:哪款适合你的企业?
    国内外主流的10款工时计算软件对比:PingCode、Worktile、Tita、易企秀、奇鱼、Teambition、Timely、TogglTrack、RescueTime、ClickUp。在忙碌的工作中,记录和管理工时常常是令人头疼的问题。工时记录软件的选择不仅能帮你省时省力,还能大幅提高团队的生产力。然而,市场上的工时记......
  • 大模型的优势与挑战?普通人学习大模型应该怎么学?
    近年来,人工智能领域掀起了一股“大模型”热潮,吸引了无数研究者和企业关注。所谓“大模型”,是指那些参数量巨大、结构复杂人工智能模型,如谷歌BERT、OpenAI的GPT等。这些模型在自然语言处理、计算机视觉等任务中取得了显著成果,引领着人工智能技术发展。那么,这些“大模型”究竟......
  • AI人工智能深度学习算法:智能深度学习代理的环境感知与数据采集机制
    AI人工智能深度学习算法:智能深度学习代理的环境感知与数据采集机制作者:禅与计算机程序设计艺术/ZenandtheArtofComputerProgramming1.背景介绍1.1问题的由来随着人工智能技术的迅速发展,深度学习算法因其强大的模式识别和预测能力而被广泛应用。特别是在智能代......
  • AWS 高防和阿里云高防深度对比
    随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一直在云上深耕多年,以下将是对AWS高防和阿里云高防进......
  • 深度学习第P9周:YOLOv5-Backbone模块实现
    >-**......
  • mysql的学习
    p29 crossjoin(笛卡尔积)有显示与隐式p30 union联合起来的列数要相同,且列名取决于第一个selectSELECT cus.customer_id,cus.first_name,cus.points,'Bronze'AStypeFROMsql_store.customerscuswherecus.points<1000unionSELECT cus.customer_id,cus.f......
  • 初步学习JDNI注入
    最近学习java安全,JDNI注入必需了解,进行初步的学习首先JNDI注入对JAVA版本是有限限制的,本地是1.8.0_2.0.1超过了191,所以最开始拿符合版本方法复现没有成功java版本查看JNDI(JavaNamingandDirectoryInterface)是一个应用程序设计的API,一种标准的Java命名系统接口。JNDI......
  • Vue3学习(未完待续)
    Vue3vite全新的前段开发工具就是webpack的代替品npminitvite-appvue3testnpmi模板中可以没有根标签安装vue3的测试工具常用CompositionAPIsetup是vue3中的一个配置项<script>import{h}from'vue'//返回一个渲染函数exportdefault{ name:"app", setup(){......
  • nginx学习记录
    目录监听端口nginx缓冲和缓存缓冲优点与作用缓存优点与作用nginx负载均衡权重健康检查监听端口假设代码中,我监听8003端口,意味着我可以通过访问8003端口来获得数据将所有请求进行转发,即访问8003端口,nginx会将“访问8003端口”这一请求,转发到设定的地址这就实现了,访问的是8003......
  • 机器学习中常用的数据类型
    常用的数据类型有FP64、FP32、FP16、BFLOAT16等FP64FP64表示64位浮点数,通常为IEEE754定义的双精度二进制浮点格式,由1位符号位、11位指数位、52位小数位组成表示范围:正数范围:约4.9x10e-324~1.8x10e308负数范围:约-1.8x10e308~-4.9x10e-324通常用于精度要求......