快照机制COW和ROW原理区别

编程入门 行业动态 更新时间:2024-10-12 20:22:57

<a href=https://www.elefans.com/category/jswz/34/1771181.html style=快照机制COW和ROW原理区别"/>

快照机制COW和ROW原理区别

一直对快照的两种模式cow和row区分不开,今天看到一篇文章讲的很清晰。转载过来,希望能给有同样困惑的同学以帮助。

所谓快照,是指某数据集在某一时刻一个完全可用的拷贝。也叫即时拷贝。注意是一个完全可用的。如果是在window环境下,则要结合VSS 机制,把应用程序的buffer,文件系统的buffer,操作系统的buffer全部刷向磁盘后,再做快照。

当前快照有两种实现,分别是COW(Copy on first write) 和ROW(Redirect on first write).

假如有一个卷8个物理块,分别为1~8, 在某一个时刻做了快照,这时候生成了一个快照卷,快照卷也有8个块,和原始卷一样指向相同的物理块。这时候有一个新的io,修改原始卷的第8个物理块,对COW 而言,会依次做如下几步

1、分配一个新的物理块。我们称为第9个物理块

2、读取第8个物理块

3、新读取的第8个物理块数据写入到第9个物理块。

4、更新快照卷map,指向第9个物理块

5、更新第8个物理块

 

图片发自简书App

 

从上面可以看出,本来写一个物理块,变成了1读3写。

COW 优点:

1、原始卷物理块连续。没有碎片。

COW 缺点:

1、写放大,本来一个写,变成1读3写。

对ROW 而言,会依次做如下几步

1、分配一个新的物理块。我们称为第9个物理块

2、数据写入到第9个物理块。

3、更新原始卷map,指向第9个物理块

 

图片发自简书App

 

从上面可以看出,本来写一个物理块,变成了2写。

ROW 优点:

1、性能比COW 好。

ROW 缺点:

1、写放大,本来一个写,变成2写。

2、原始卷物理块不连续。没、有碎片。


 

更多推荐

快照机制COW和ROW原理区别

本文发布于:2024-02-27 14:04:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1706831.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:快照   区别   原理   机制   COW

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!