2010-12-13 94 views
0

這與我之前的問題Solaris: Mounting a file system on an application's handlers有點相關,除了這個問題是出於不同的目的並且更簡單,因爲沒有打開/關閉/鎖定它只是一個固定長度的塊的字節與讀/寫操作。Solaris:用於ZFS的虛擬片/磁盤

是否有無論如何我可以創建一個虛擬切片,有點像RAM磁盤或SVM切片..但我希望讀取和寫入通過我的應用程序。

我打算使用ZFS來獲取多個這些虛擬片/磁盤,並將它們製作成一個較大的虛擬片/磁盤,以便爲分佈式備份存儲提供快照。我非常喜歡ZFS提供的壓縮和堆疊。如有必要,我可以保證一次只有一個ZFS實例訪問這些虛擬磁盤(以防止緩存衝突等)。如果一個實例發生故障,我們可以確保它不會重新啓動,然後我們可以啓動該ZFS的另一個實例。

我打算將這些磁盤分成大約4GB左右的塊,然後我可以在每個塊的周圍移動並決定在哪裏存儲它們(當然是多次鏡像),然後讓ZFS訪問這些塊並將它們一起放入更大的塊用於實際使用。如果需要的話,ZFS也允許添加這些小塊,以增加較大塊的大小。

我知道如果我們在Java中使用我自己的應用程序,會有額外的延遲/網絡流量,但這僅僅是用於備份存儲。生產存儲是完全不同的配置,不涉及。

編輯:我們有一個系統使用所有可用的空間,基本上當沒有足夠的空間時,它將刪除舊快照並增加舊快照之間的差距。我的建議的目的是讓生產設備中未使用的空間能夠投入使用,而無需額外費用。在不同的時間,我們生產設備的不同單位將有自由空間。我所描述的系統在嘗試訪問數據時應該消除任何單點故障。我希望不必購買兩臺大型設備並保持同步。我希望只有兩個接入點,然後我們可以按照我們想要的任何方式混合使用大型/小型設備,並無縫地移動數據。

這是一個交叉帖子,因爲這是比系統管理員相關的更多軟件相關原始問題在這裏:https://serverfault.com/questions/212072。原始封閉可能是一個好主意

回答

-1

似乎任何文件系統上的任何固定長度的文件都可以用於ZFS使用的塊設備。不知道如何重新啓動工作,但我相信我們可以寫一些啓動命令來解決。

編輯:固定長度文件將位於網絡文件系統(如NFS)上。

+1

我可能錯過了一些東西,但我不明白自己接受的回覆是如何匹配「但我希望讀取和寫入通過我的應用程序」的要求。對您的回覆有兩個其他評論:一個普通文件需要最小大小作爲zpool後備存儲(64 MB),並且重新啓動不是問題,因爲ZFS通過zpool設置來維護持久性緩存,因此不需要自定義啓動命令。 – jlliagre 2011-01-02 08:49:10

+0

對不起,我不清楚。我分別問了一個關於如何使用我的應用程序的處理程序來創建網絡文件系統(類似於NFS)的問題](http://stackoverflow.com/questions/4370125/solaris-mounting-a-file-system-上的應用程序,處理程序)。然後,ZFS可以使用網絡文件系統上的固定長度文件。很高興知道最小文件大小(64MB)。其實我計劃在4GB左右。 – 2011-01-03 13:33:34

2

一種方法是編寫一個Solaris設備驅動程序,它恰好是一個模擬真實磁盤的塊設備,但它將反饋回您的應用程序。

從閱讀Device Driver Tutorial開始,然後看看OpenSolaris source code的真實驅動程序代碼。

或者,您可能會調查將Solaris iSCSI目標修改爲與您的應用程序的接口。再次看,OpenSolaris COMSTAR將是一個好的開始。

相關問題