数据快照技术

write redirectcopy on write比较

共同点:不管是哪个一种快照方式,只要上层向一个在快照之后从来没有被更新过的扇区写IO,这个IO块就要占用新卷上的

一个块(因为要保留原块的内容,不能被覆盖),如果上层将原卷上的所有扇区都更新了,那么新卷的容量就需要和原卷的

数据量同样大才可以。但是通常应用不会写覆盖面百分之百。做快照的时候,新卷的容量一般设置成原卷的30%就可以。

不同点

copy on write方式下,快照完成之后,如果需要更新一个从来没有被更新过的块,则程序首先将这个块读出,再将其写入到新卷,然后将更新的数据覆盖写入到原卷对应的块。需要三步动作(一次读,两次写)。

write redirect方式下,同样的过程只需要一次写入即可,即将更新数据直接写入到新卷(同时更新映射图中的指针,在内存中进行)。

所以write redirect相对copy on write方式在IO延迟上有优势。

在文件系统快照情况下,copy on write方式和write redirect方式 同样多要针对每个IO遍历当前文件系统中的元数据。这部分开销是一样的。而write redirect耗费IO方面的开销,就要比copy on write小得多了。

总之,卷级的快照,仿佛就是增加了一个“卷块映射系统”,其作用与文件系统大同小异,只不过文件系统处理的是文件名和块的映射关系,而“卷块映射文件系统”处理的是块与块的映射关系。

快照的意义(有可能带来数据不一致情况)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章