Mount

將 eSata 介面直接映射到 NFS 共享

  • April 12, 2011

我不確定這是否可行,但我想掛載一個 nfs 共享(作為客戶端)並將主機板外部 eSata 綁定到 nfs 共享。

這聽起來很可能是假的,但我擁有的是一個可以通過 eSata 播放媒體的媒體播放器,並且希望有一個在 eSata 和 nfs 掛載之間進行轉換的中間盒。(因為這個特定的玩家對 nfs 的世界一無所知)。

也許有更好的方法,所以我願意接受建議。(但它一定不能脫離 nfs)。

我的另一個(更草率的)想法是找到一個盡可能小尺寸的帶有 eSata 驅動器的外部 USB,並通過外部驅動器上的符號連結安裝 nfs 共享,然後媒體播放器 eSata 也輸入驅動器。

謝謝!

雖然從根本上來說並非不可能,但我認為不存在任何解決方案。

首先,如果我正確理解了您的請求——媒體播放器沒有自己的磁碟,或者沒有在此處使用它——媒體播放器希望通過 eSATA 提供磁碟。eSATA 是一種塊訪問協議;為了給它一個這樣的塊設備(一個磁碟,這裡實際上不是一個磁碟),你需要一個在目標模式下執行的 SATA HBA(“普通”埠在啟動器模式下執行)。這在 SAN 系統之外並不常見,它們往往是光纖通道或 SAS,而不是 SATA。這些目標模式支持設置將(單個、大)文件映射到呈現給連接設備的 LUN。伺服器不知道也不關心該文件中的內容;在獲取文件的實際內容之前,由客戶端機器了解 LUN 上的分區表和文件系統。

接下來,媒體伺服器可能期望它看到的“磁碟”有一個 DOS 樣式的分區表和一個帶有 FAT(或者可能是 NTFS)分區的單個分區。也許它也會接受 ext2/3 ——這取決於它自己執行的是什麼。

另一方面,NFS 是一種文件協議。客戶端請求文件並獲取原始數據,而不關心文件所在的文件系統。

為了在這裡做你想做的事,你需要一個中間層來建構媒體播放器可以讀取的一些文件系統佈局的內部結構(最可能的選項是非開放標準,這增加了複雜性),並回答請求那些帶有從 NFS 文件中獲取的數據的塊。您可以列舉 NFS 掛載的內容來建構數據庫,但是對 NFS 共享的任何更改都需要重新合併到提供給媒體播放器的表示中。Linux 中有一些系統呼叫可以做到這一點,但它們不適用於 NFS 掛載。

因此,安全地執行此操作的方法是將 NFS 共享的內容複製到環回掛載的 FAT32 分區中,然後解除安裝該分區並將其作為 LUN 導出到媒體播放器。但是,這樣做的缺點是需要將所有內容儲存兩次。

或者,簡而言之:抱歉,這(幾乎)是不可能的。

引用自:https://serverfault.com/questions/258477