将eSata界面直接映射到NFS共享

我不知道这是否可能,但我想挂载一个nfs共享(作为客户端),并将主板外部eSata绑定到nfs共享。

这可能听起来不正确,但我所拥有的是一个可以通过eSata播放媒体的媒体播放器,并且想要一个可以在eSata和nfs挂载之间进行转换的中间盒。 (因为这个特定的玩家对nfs​​的世界一无所知)。

也许有更好的办法,所以我愿意提出build议。 (但它不能脱离nfs)。

另一个(更马虎)的想法是find一个外部usb瓦特/ eSata驱动器的最小可能的大小,并挂载在外部驱动器上的符号链接的nfs共享,然后媒体播放器eSata也馈送到驱动器。

谢谢!

虽然不是根本不可能的,但我不认为有任何解决办法。

首先,如果我正确理解你的请求 – 媒体播放器没有自己的磁盘,或者没有在这里使用 – 媒体播放器希望通过eSATA提供一个磁盘。 eSATA是一个块访问协议; 为了给它一个这样的块设备(一个磁盘,这里实际上不是一个磁盘),你需要一个在目标模式下运行的SATA HBA(“普通”端口以启动模式运行)。 这在SAN系统以外是不常见的,在那里它们往往是光纤通道或SAS,而不是SATA。 这些目标模式支持设置将(单个,大)文件映射到呈现给连接设备的LUN。 服务器不知道或不在乎该文件中的内容; 客户端机器才能了解LUN上的分区表和文件系统,才能获取文件的实际内容。

接下来,媒体服务器可能期待着看到有一个DOS风格的分区表和一个FAT(或可能是NTFS)分区的单个分区的“磁盘”。 也许它会接受ext2 / 3 – 这取决于它本身的运行。

另一方面,NFS是一种文件协议。 客户端请求文件并获取原始数据,而不关心文件所在的文件系统。

为了在这里做你想做的事,你需要一个中间层,它build立了媒体播放器可以读取的一些文件系统布局的内部结构(最可能的select是非开放标准,这增加了复杂性),并且回答那些从NFS文件中获取数据的块。 您可以枚举NFS挂载的内容来构build数据库,但是对NFS共享的任何更改都需要重新融入到提供给媒体播放器的表示中。 Linux中有一些系统调用可以做到这一点,但是它们不能用于NFS挂载。

因此,安全地执行此操作的方法是将NFS共享的内容复制到回送式安装的FAT32分区,然后卸载分区并将其作为LUN导出到媒体播放器。 但是,这有两个需要存储所有东西的缺点。

或者,简而言之:对不起,这是(几乎)不可能的。