mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2742回复:31

再次请教wowocock和slwqw等高手过来帮忙分析一下

楼主#
更多 发布于:2004-04-28 15:38
我最终要作的是这样一个东西:
虚拟一个驱动器 这个驱动器中的文件夹和文件可能来自于不同的服务器上的不同目录和文件
但是在用户看来和本地驱动器没有区别

我有过作miniport的经验 之前做过虚拟一个磁盘 磁盘上的内容来自于服务器上的一个分区
但是这样作有一个问题是共享之后有写冲突的问题 而且不好控制管理 所以决定在文件级作

文件系统我从来没有做过 感觉作起来比miniport这样的块级驱动要难很多

不知道我作这个是作过滤驱动还是作一个fsd呢 难不难?
请大侠们分析一下

最新喜欢:

TOMG2004TOMG20...
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-28 15:49
看SAMBA以及NFS的实现

好象你要的东西不需要做虚拟磁盘驱动啊
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-28 15:53
虚拟磁盘只是一个很小的部分吧?

就是说要作fsd吗?
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-28 15:57
我的初步计划是先作一个虚拟磁盘 指向本地的文件夹
然后改成指向本地的多个文件夹 最后改为网络上的文件夹

到底应该怎么作阿
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-28 16:01
全部四开放源码的东西
只需要做一些优化
甚至连优化都不要做

半行代码都不用写
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-28 16:13
那儿有下的阿?叫什么?

但是我要在windows下使用阿
也有源码吗?

谢谢了!
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-28 16:44
我现在就用你要实现的功能

全是快捷方式
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-28 16:58
walkonthesky兄
不太明白阿:)

 那儿有下的阿?叫什么?

 但是我要在windows下使用阿
 也有源码吗?
slwqw
驱动大牛
驱动大牛
  • 注册日期2002-07-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望197点
  • 贡献值0点
  • 好评度147点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-28 17:40
他们两个说了那么久,你竟然不知道他们在说什么? :o

他们的意思就是,在DOS窗口执行命令:

subst W: H:\\\\Test

这样就有了一个新的磁盘,指向本地目录H:\\\\Test

一行代码都不写。

投机取巧的方法,呵呵 :cool:
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-28 17:44
我知道这个阿
我的意思你没有看清楚阿
这样又不能把不同服务器上的文件夹映射成一个本地驱动器
而且我不是要这种投机的方法阿
呵呵
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-28 17:49
我的意思是这样
比如说我虚拟的盘是K:
下面又三个目录 a,b,c
a是192.168.0.1上面的c:\\test目录
b是192.168.0.2上面的c:\\test目录
c是192.168.0.3上面的c:\\test目录

这样不能用subst作吧 呵呵
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-28 17:55
walkonthesky你的意思不会是说把几个用subst建的盘的快捷方式合起来把 呵呵
我想知道用程序怎么作 而且不使用网上邻居映射驱动器的方式
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-04-29 09:15
先理解一下什么是URL先

你在WINDOWS下
用URL可以实现很多资源的定位

我不用映射驱动器
也不写代码

只要在你的目录下建立//192。168。0。1/test的快捷方式就可以了

你在做的东西我做过
你现在摸索的就是我走过的老路

如果你要重新走一遍,我可以给你一些线索

WINDOWS下你去查SMB/CIFS/NBT/NFS
linux下你去查samba 和NFS

这是初步的知识

后继的你要去看RAD BOOK
将RAID的,(不是RAID BOOD,是RAD BOOK)
有了这方面的技术储备

你可以看GFS的资料
不过也是开放原代码的东西,有现成的东西可以调。
至少我做的时候是这样的

不过现在最新的东西你可以去看ISCSI和RAID*RAID技术
前者是IBM参与开发的一个标准,后者主要用在STORAGE CLUSTER上,是专利技术。这两种技术都是和虚拟存储有关。


[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-04-29 09:19
看你做的功能

感觉就象是虚拟存储的概念
但是看你提问题的方式
绝对不是做虚拟存储产品

所以就想当然的建议你以取巧的方式解决了
因为你要的东西绝对不是一两个人可以搞出来的

否则IBM/HP/VERITAS/EMC还玩什么
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-04-29 09:24
其实对于FILEDISK的意义我也是很迷茫

感觉这种做法意义不大
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-04-29 09:26
FILEDISK将文件虚拟为磁盘分区
但是为什么不直接将文件夹DefineDosDevice呢
这样除了不能格式化以外,和虚拟的磁盘分区是一模一样
有什么区别吗??

如果仅仅是为了实现磁盘加密之类的功能
那么,那么与直接使用EFS的区别在那里

如果仅仅是将许多磁盘文件放到一个文件中,集中进行处理
那么这些要求使用复合结构文件完全可以达到
有什么区别吗???

楼主借光!!!!
借你的帖子和大虾们讨论一下!
这个疑问我想了很久了。
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-04-29 11:08
很感谢walkonthesky兄的回答!

我以前做过iscsi
下载intel的linux下的iscsi源码 然后将启动器端改成windows下的
就是作一个miniport驱动 并不很难 不过ms后来有免费的了 :)

我对文件系统是这两天开始看的
不过filedisk我觉得并不是文件系统驱动
因为他是针对块寻址的 和scsi miniport里面的寻址方式一样
我觉得他好像是工作在文件系统之下的吧?

filedisk使用那个文件没有任何别的用处  仅仅是当作一个存储空间
你把这个文件换成一块内存 一个真实的磁盘或者别的任何存储空间都可以的
他本身并不能读取给定原始文件里面的任何文件信息 仅仅是当作存储空间使用
当然 后面你写进去的可以读出来 这和我原来作iscsi一回事
而definedosdevice是可以读出原始信息的 因为他工作在现有的文件系统上面

我的一点很肤浅的看法 请大侠们指正

我作这个程序的目的是想做一个真正的虚拟磁盘 但是要工作在文件系统这一层
不是投机的方式
不使用网上邻居的这种方式
这样作的原因是网上邻居的性能太低了
而如果自己作 可以针对专门的应用作优化 比如说对存储优化
象现在的dafs这样的系统在1000m网下面可以达到70m了  
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
17楼#
发布于:2004-04-29 11:15
不错,FILEDISK,RAMDISK基本都是在FILESYSTEM下的,提供存储空间而已,还要依赖于其上的FILESYSTEM的。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-04-29 11:21
filedisk里面是看不到任何关于文件的信息的
比如说read
他只知道你读取的是偏移多少 多长的一块单元
他并不知道你读的是哪一个文件里面的内容
mtwyaya
驱动牛犊
驱动牛犊
  • 注册日期2002-10-20
  • 最后登录2008-08-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-04-29 11:22
呵呵  wowocock也来了阿:)
上一页
游客

返回顶部