cow和row快照机制的区别 2021-03-18 虚拟化 暂无评论 2615 次阅读 很清晰的讲解快照两种模式cow和row的区别。 所谓快照,是指某数据集在某一时刻一个完全可用的拷贝。也叫即时拷贝。注意是一个完全可用的。如果是在window环境下,则要结合VSS 机制,把应用程序的buffer,文件系统的buffer,操作系统的buffer全部刷向磁盘后,再做快照。 当前快照有两种实现,分别是COW(Copy on first write) 和ROW(Redirect on first write). COW 假如有一个卷8个物理块,分别为1~8, 在某一个时刻做了快照,这时候生成了一个快照卷,快照卷也有8个块,和原始卷一样指向相同的物理块。这时候有一个新的io,修改原始卷的第8个物理块,对COW 而言,会依次做如下几步 1、分配一个新的物理块。我们称为第9个物理块 2、读取第8个物理块 3、新读取的第8个物理块数据写入到第9个物理块。 4、更新快照卷map,指向第9个物理块 5、更新第8个物理块 ![cow.jpg](https://blog.moper.net/usr/uploads/2021/03/2937624231.jpg) 从上面可以看出,本来写一个物理块,变成了1读3写。 COW 优点: 1、原始卷物理块连续。没有碎片。 COW 缺点: 1、写放大,本来一个写,变成1读3写。 ROW 对ROW 而言,会依次做如下几步 1、分配一个新的物理块。我们称为第9个物理块 2、数据写入到第9个物理块。 3、更新原始卷map,指向第9个物理块 ![row.jpg](https://blog.moper.net/usr/uploads/2021/03/3250552990.jpg) 从上面可以看出,本来写一个物理块,变成了2写。 ROW 优点: 1、性能比COW 好。 ROW 缺点: 1、写放大,本来一个写,变成2写。 2、原始卷物理块不连续。没、有碎片。 标签: cow, row 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。