zzyheart
驱动牛犊
驱动牛犊
  • 注册日期2007-03-15
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:1835回复:10

请问用文件系统过滤驱动能不能实现copy on write??

楼主#
更多 发布于:2007-03-19 23:53
  想问一下 使用文件过滤驱动能否在windows下实现对某个盘的copy on write快照??
有没有什么思路可以提供一下??
谢谢

最新喜欢:

rayyang2000rayyan...
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-20 06:41
那要用disk filter driver
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
板凳#
发布于:2007-03-20 08:05
FSD貌似很难搞这个~
呀呀~
没有战争就没有进步 X3工作组 为您提供最好的军火
zzyheart
驱动牛犊
驱动牛犊
  • 注册日期2007-03-15
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-20 10:06
那 disk filter driver是不是实现就是block 级别的copy on write??
那这个检测磁盘什么地方可以放这些block,以及恢复的时候怎样恢复 这些又需要用到什么呢?
关于disk filter driver 有没有什么好的资料可以看看看呢?谢谢~
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
地下室#
发布于:2007-03-20 12:36
我有成型产品,需要的联系我
------------------------------
RealBackup@163.com
MSN:YanDong_8212@163.com
商务MSN:YanDong_8212@163.com
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
5楼#
发布于:2007-03-20 23:30
引用第3楼zzyheart2007-03-20 10:06发表的“”:
那 disk filter driver是不是实现就是block 级别的copy on write??
那这个检测磁盘什么地方可以放这些block,以及恢复的时候怎样恢复 这些又需要用到什么呢?
关于disk filter driver 有没有什么好的资料可以看看看呢?谢谢~


这些靠经验拉~或者等你参与一两个磁盘还原之类的工程就有了~

哼哼哈嘿~
没有战争就没有进步 X3工作组 为您提供最好的军火
zealsoft_zhu
驱动小牛
驱动小牛
  • 注册日期2004-03-30
  • 最后登录2014-07-30
  • 粉丝2
  • 关注0
  • 积分22分
  • 威望375点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-22 12:28
首先要考虑是实现什么级别的COW,如果是block级别的,磁盘过滤就可以。至于怎么恢复,当然你需要自己管理哪些块做了COW,这就涉及到IO的分发等等,因为一个IO可能有些块做了COW,有些块没有做COW。这个要好好搞,否则性能上会很差。
如果是文件系统级别,比如对于文件中的块的COW,这个可以在文件系统过滤驱动层搞定,但是要比block级别的要复杂。首先你要考虑的问题包括如下:
1。不能破坏文件系统和文件的相关性。
2。因为COW,在写之前涉及到一个读操作,也就是说你对这个文件要有读写权限,一般文件已经写打开,你要再次读打开,这。。。。,当然可以按照版上很多人说的复制handle的办法。我觉得最好是用户写打开文件的时候,你改变打开方式变成读写打开,用同一个线程来进行读写。
3。因为COW你要把一些数据拷贝到一些临时区域(一般英文资料叫它side storage),这个临时区域最好是一个逻辑分区或者是另外一块磁盘,如果用同一文件系统下面的文件来作为临时区域,可能会导致死锁,我就碰到这个问题,当时可头痛了。
zzyheart
驱动牛犊
驱动牛犊
  • 注册日期2007-03-15
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分150分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-04-01 10:20
哦 那用过滤驱动对卷一级的写操作实行过滤吧?
我想拦截write的irp然后生成对应的read操作irp,等待read执行返回时再把write操作的irp 传递下去.
那这个read出来的原数据应该怎么样存放呢?是发送到用户态写成文件还是直接在写到磁盘里面呢?
这些操作在一个filter driver里面应该可以实现吧..?
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
8楼#
发布于:2007-04-01 14:04
对文件的拷贝等一些操作好像大多不会通过SfRead函数,也不知道走了那条路
作一名真实,诚实,优秀的科技工作者!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-04-04 09:11
在FSD可以实现,嘿嘿......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-04-04 11:24
fs filter实现的话,策略不好定,比如用户写一个大文件,此时你copy,那延时是很严重的。严重影响用户体验。
还是block级别好点。
游客

返回顶部