在安装NFS文件系统时,所有数据处理都要通过nfs客户端。我如何编写自己的处理程序来使用NFS以外的其他东西?
另一种选择是本地主机NFS服务器,但这样做的效率非常低。
编辑
应该发生的事情的例子
通常使用文件系统: app读/写文件系统,Solaris会看到它的挂载位置,如果它是磁盘,则会读取/写入磁盘。如果是软件镜像,它会读写镜像软件。如果是NFS,则会读写远程NFS服务器。我希望它能读写自定义存储软件,而不是上面提到的任何选项。
我们的存储软件是用来存储应用程序使用的文件,它面向大量或经常被替换的数据块,这些数据没有存储在数据库中。它还包括特定于我们公司的某些灵活性。
旧的/现有的应用程序不知道我们的新软件。他们所知道的就是读/写一个目录。我们可以告诉Solaris,目录托管在NFS上,然后NFS服务器转换并连接到存储软件。我们更愿意告诉Solaris我们从未听说过的新项目,然后教Solaris如何与我们的程序对话。
发布于 2010-12-06 22:11:41
您可能需要查看一些CIFS服务器。Alfresco拥有JCIFS,这是Java中的一个CIFS服务器库。它允许您将资源显示为文件,就像它们在Windows系统上一样。因此,这意味着程序可以“装入”这些CIFS服务器,并且您可以通过该机制从数据库中发布数据。
我没有使用它,但这听起来像是你想要做的事情,也许是你想要看到的东西。
还有FUSE,它允许您在“用户模式”中创建自定义文件系统,而不必破解内核。它可以在Unix和Mac上工作,也可能有Windows版本。理论上说,这可以做任何事情。
例如,有些实例允许您使用FUSE系统在SSH上挂载远程系统。这些都是用C/C++编写的。
发布于 2010-12-06 19:53:03
在我看来,这听起来像是你必须创建一个伪文件系统。Solaris使用VFS (Virtual ),在这种情况下,您可以将不同的文件系统作为一个统一的结构呈现给用户空间。尽管您安装了UFS或NFS或任何文件系统,用户和应用程序都可以使用与文件系统无关的工具与VFS进行交互。
这意味着您需要创建一个伪文件系统;一个能够处理vnode和vfs操作(VFS接口)的文件系统,例如read()、write()等,并将它们绑定到您选择的数据库后端。
阅读更多信息:
http://developers.sun.com/solaris/articles/solaris_internals_ch14_file_system_framework.pdf
听起来是个大任务..。
你好,jgr
发布于 2010-12-07 01:35:32
NFS不是关于在软件上挂载一个目录,而是在一个目录上安装一个远程共享。无论存储设备是远程的还是不重要的,它仍然是通过层的内核软件。Solaris使用VFS提供第一层。您应该实现底层的一个。对于已经熟悉VFS的人来说,这将是一项相当困难的任务。由于您显然不熟悉编写内核代码,所以我对您的项目非常悲观.
我建议你做的是一种更简单、风险更小的方法。实现一个插入库,它将拦截应用程序I/O代码(打开、读、写、关闭以及类似的,或者可能是libc fopen、fwrite,您必须找出什么是插入的最佳位置)并调用您的存储软件。
下面是这个过程的一个简单示例:http://developers.sun.com/solaris/articles/lib_interposers.html
https://stackoverflow.com/questions/4370125
复制相似问题