阅读:2079回复:7
基于文件的热备份关于热备份,现在很多实现都是基于块级(扇区)的,实现方法是COW(写前拷贝)技术;即在用户写数据之前,将原来的块拷贝出来,等到所有块拷贝完成以后,再将原始的块覆盖过去。 现在小弟,要基于文件实现热备份技术。有人说COW技术也可以用在文件级来实现。但现在,经过思考后发现很有问题。 基于块级的话,COW只拷贝第一次写操作之前的数据。这里有个判断,该块是第几次被写。在块级,实现很容易,只用建立一张表就OK了,对每一块进行标记。 但基于文件,这种方法似乎有点难度。如果以文件为粒度进行标记的话,那么用户只操作几个字节,我就需要将整个文件进行拷贝,严重影响性能。 现在考虑,参见块级的实现方法,将文件进行分块处理,分块标记。 如果用户只写了几个字节,我就判断这几个字节涉及到哪些块,然后将这些块拷贝出去。 不知道这样的设计,是否有可行性? 请各位高手指教一下,或者有更好的实现方法,也请提示一二,先谢谢了!! |
|
沙发#
发布于:2009-03-16 12:10
每当一个文件被写的时候,你过滤到了以后,同时也把这个写的内容写入到备份文件一下就可以啦,就是你复制一个写入动作而已啦
不用什么分块的也可以,这个叫啥呢,基于文件过滤的吧 |
|
|
板凳#
发布于:2009-03-16 12:42
引用第1楼looksail于2009-03-16 12:10发表的 : 我是基于文件过滤驱动来做的。要求是文件的热备份,就是假设我1:00开始备份C分区,当备份结束时,D分区的内容和1:00点时C分区的内容一模一样。 你说的那个相当于做文件的同步操作啊。。 |
|
地板#
发布于:2009-03-16 12:46
是啊 就是类似我的实时的文件备份的功能啊
|
|
地下室#
发布于:2009-03-16 12:54
引用第3楼qianjunhua于2009-03-16 12:46发表的 : 弱弱问下,允许用户操作,这里是如何处理的。。。。比如用户要修改我还没有备份的数据,那备份完成后C和D的内容应该是不一样的,我该如何将D还原为C原来的状态?? PS. 我现在考虑的是,备份初始化的过程。 就是原来D分区什么都没有,在做同步之前,我要先将C区的内容全部拷贝到D区。我想在拷贝的时候允许用户操作。至于同步操作,我觉得是比较简单的,在驱动层直接将动作重定向的D分区就可以了。 |
|
5楼#
发布于:2009-03-16 20:04
我这个是基于文件为单位的 不是以分区为单位的
|
|
6楼#
发布于:2009-03-19 12:05
这个是文件同步
|
|
7楼#
发布于:2009-03-19 20:08
xp的系统还原,文件系统的volsnap
|
|
|