Cloud之快照存储
一、什么是快照
1. 快照的定义
快照(Snapshot)是一种记录某一时刻数据状态的技术。在计算机存储和虚拟化环境中,快照能够将文件系统或虚拟机的状态保存下来,以便以后能够回溯到某一特定时间点。快照通常用于备份、恢复、数据管理等场景,能够提供一种快速且高效的方式来保护数据和确保数据的完整性。
2. 快照的价值
-
快速备份/恢复:快照可迅速生成,并可用作传统备份和归档的数据源,缩小甚至消除数据备份窗口,快照存在在磁盘上,可以快速直接存取,大大提高数据恢复的速度。
-
保存多个恢复点目标:基于磁盘的快照使存储设备有灵活和频繁的恢复点,可以快速通过不同时间点的快照恢复数据。
-
重新定义数据用途:快照提供一份接近实况数据的拷贝,可供测试、归档、查询使用,既保护生产系统又赋予备份数据新的用途。
3. 快照的分类
-
写时复制CoW
-
写时重定向RoW
二、CoW与RoW
1.CoW(Copy-On-Write写时复制)
写时复制是一种延迟复制的技术。在创建快照时,系统不会立即复制整个数据,而是保持原数据不变。当数据发生修改时,系统才会将被修改的数据复制到新的存储位置,保证快照中的数据保持不变。这种方式能够大大减少存储空间的使用,因为只有在数据发生修改时才进行复制。
2.ROW(Redirect-On-Write写时重定向)
写时重定向技术与写时复制相似,但它的处理方式不同。当数据发生写操作时,ROW并不会修改原数据,而是将新的数据写入到一个新的位置,并更新指针或引用,指向新位置的值。这样,原数据保持不变,快照中的数据依然保留为原始状态。ROW也能在一定程度上减少存储消耗,并且在多个副本之间提供较好的隔离性。
3.COW与ROW的区别:
数据修改时的行为:
-
COW(写时复制):当数据被修改时,原数据会被复制到新的位置,修改后的数据会存储在新位置。
-
ROW(写时重定向):修改操作时不会修改原数据,而是把新数据写到新的位置,并且通过更新引用或指针来指向新的数据。
存储效率:
-
COW:初始阶段占用空间较少,只有在数据发生修改时,才需要复制数据,因此存储消耗逐步增加。
-
ROW:通过将新数据写到新的位置并重定向引用,数据的存储空间使用方式不同于COW,通常ROW会在数据修改频繁的情况下比COW消耗更多存储空间。
实现复杂度:
- COW:在某些情况下,COW的实现较为简单,因为数据修改时只需复制数据。
- ROW:ROW需要额外的机制来维护数据的重定向路径,通常比COW复杂,但它能够提供更高的性能和灵活性。
总结来说,COW和ROW都是为了优化数据存储和快照管理,但它们在实现和存储消耗方面有所不同。COW适用于更节省空间的情况,而ROW适合那些对性能有较高要求的场景。