使用.net创建虚拟磁盘

本文关键字:虚拟磁盘 创建 net 使用 | 更新日期: 2023-09-27 18:04:09

我在Stack Overflow上找到了很多关于这方面的好话题,但我的问题更具体一些。许多公司正在使用这个软件来托管与我们相同的服务…

http://memory.dataram.com/products-and-services/software/ramdisk

显然,读/写到虚拟磁盘的速度快得惊人,因为我们运行非常密集的I/O软件,我想写一些东西来做同样的事情。我唯一的需求是它在虚拟驱动器上运行应用程序(为了提高I/O速度),并每隔X分钟将数据复制到硬盘上的物理位置。

这很容易完成吗?我应该使用什么来实现这一点?

编辑

看起来我可以使用下面的Dokan库,但是在Windows中"subst"命令会产生任何I/O性能提高吗,或者这个库是最好的选择?

http://dokan-dev.net/en/about/

使用.net创建虚拟磁盘

这真的不是c#/。NET问题,除非您想编写自己的RAM磁盘驱动程序。像你链接上的驱动程序已经存在很长时间了,它们确实有疯狂的读/写速度,代价是你的应用程序和操作系统的RAM可用性。如果有问题的机器有很多RAM,那么在您的情况下这可能不是问题。

它的编程部分是定期将RAM磁盘内容写入磁盘。由于RAM磁盘通常显示为另一个驱动器,因此这是将文件从它复制到物理磁盘的简单问题。您可以在c#中这样做,但它在许多脚本语言中也同样有效。

如果这是一个高端应用程序,请查看固态SATA驱动器。它们的读/写速度比硬盘快得多,并且数据在崩溃、电源故障等情况下仍然保持不变。

如果您确实需要RAM驱动器,那么您真正需要的是一个块设备驱动程序,它将在内核模式下完成这项工作。Dokan的问题是:(a)这是一个文件系统驱动程序,这需要你做很多额外的工作,(b)它会调用你的用户模式代码,这会导致速度变慢,(c)它是免费的东西,对于生产使用来说不够稳定。