主题:文件热备份
关于热备份,现在很多实现都是基于块级(扇区)的,实现方法是COW(写前拷贝)技术;即在用户写数据之前,将原来的块拷贝出来,等到所有块拷贝完成以后,再将原始的块覆盖过去。
现在小弟,要基于文件实现热备份技术。有人说COW技术也可以用在文件级来实现。但现在,经过思考后发现很有问题。
基于块级的话,COW只拷贝第一次写操作之前的数据。这里有个判断,该块是第几次被写。在块级,实现很容易,只用建立一张表就OK了,对每一块进行标记。
但基于文件,这种方法似乎有点难度。如果以文件为粒度进行标记的话,那么用户只操作几个字节,我就需要将整个文件进行拷贝,严重影响性能。
现在考虑,参见块级的实现方法,将文件进行分块处理,分块标记。 如果用户只写了几个字节,我就判断这几个字节涉及到哪些块,然后将这些块拷贝出去。
不知道这样的设计,是否有可行性?
请各位高手指教一下,或者有更好的实现方法,也请提示一二,先谢谢了!!