乙個新的儲存系統嘗試 WOFS

2021-03-31 18:12:34 字數 1674 閱讀 9595

乙個新的儲存系統嘗試-wofs

我對以往的所有的儲存系統的感覺中,燒錄光碟是我的最愛,儘管我一直沒有燒錄機,但是cdr式燒錄光碟卻是一種給我全新感覺的儲存方式.以下談談它的優點.

可燒錄光碟作為worom(write once read only memory)的一種,其實我最喜歡的還是他的woro.當資料一旦被寫入,從理論上講他將永遠存在,儘管這樣的儲存空間利用效率低下,但是,讀取速度卻是ram類儲存器無法相比的.為了達到順序讀取而提高讀取速率.ram記憶體往往要有專門的演算法用來管理記憶體空間,當然,這部分是由os來實現的.ram硬碟(也就是普通硬碟了)是通過"磁碟碎片整理"來實現的.而worom中的wo就決定了資料不會再被複寫,順序的讀出也就是永久的事情了.

而另外一方面的問題就是資料的安全性.大概大家都有過資料檔案被誤刪除的經歷.其痛心疾首難以形容.然而,對於worom從理論上講不存在認為誤刪除的問題.所有的資料都有永久的儲存,當然此處談及的是理想情況,介質損壞另外考慮.

shadows作為一種儲存方式的創新需要有足夠的新意才能滿足一部分人的需要,而不是一定要滿足所有人的需要.在shadows中儲存介質的總容量實際上是可以隨著新郵箱的新增而逐漸增加的.而且儲存介質的成本又很低廉,相對比較適合於實現worom的檔案系統實現wofs-write once file system.

所有的資料使用乙個足夠長的索引方式,比如用幾個32bit的資料項來確定乙個位元組,而最終索引所有的儲存空間.

值得注意的是worom不同於以往的ram儲存方式,worom由於不可複寫,所以資料量會迅速增大,而且並不是適合於所有的應用,當然,對於有很高安全性要求的日誌檔案是乙個再好不過的選擇,但是對於一些磁碟快取檔案,比如pagefile,簡直是乙個噩夢.所以,作為已有儲存方式的一種補充,worom更加適合於資料備份類.

乙個比較嚴重的問題就是fat的組織,乙個資料系統應該具有增刪查改幾個方面.worom應該高於普通的cdr類的系統,而提供資料的刪除功能.否則乙個檔案總量和資料總量都不斷增加的儲存系統,查詢將會是乙個越加蹩腳的問題.而對於worom的刪除應該是僅僅在fat中的手腳而已,而不應該直接刪除原有資料.這樣,在需要資料恢復的未來這將是不可避免的.從儲存方式上講fat是很不適合於存放在worom中的,因為需要經常修改.當然並不代表不可能實現.

資料轉存:乙個worom由於索引長度的有限,和查詢的越加困難,總是需要更換儲存介質的.一般來說,更換儲存介質時,原介質已經儲存了大量的資料,只有部分資料是未經刪除的有用資料,而其他部分僅僅用於恢復資料.轉存時,只需要把未經刪除的資料複製到新的介質上,並且複製fat即可.以前用過的worom可以用於永久備份.

資料恢復:這個worom乙個很重要的應用方式,提供了很高的資料安全性,當乙個檔案被誤刪除時,可以通過查詢每個簇來找到乙個檔案,進而通過簇連線來恢復整個檔案.

資料的洩漏安全性:這個是worom乙個薄弱方面,儘管提供乙個用於永久刪除乙個資料檔案的api函式是很容易的,但是實際上總會有一些自以為聰明的共享軟體作者會利用這個api來提供所謂的"空間再利用"等等功能,進而破壞了worom的資料恢復特性,所以一方面應該對worom的資料進行加密,提高儲存介質的訪問安全性等等外在的安全方法.另外就是提供乙個api來刪除乙個檔案,而刪除後資料區將會被從此遺棄,無法被重新利用,防止worom又走回到ram的舊路上去.

今天就想了這麼一點,我還在努力的查閱fs的介面資料,很不好找,希望大家可以祝願我早日找到.現在有2條路,乙個是提供給應用程式以vfs(linux的虛擬檔案系統介面),另外就是實現posix的檔案系統介面.

面對乙個新的系統

1 檢查linux系統 如果您是剛剛接手了一台linux系統,請先確認這台系統是不是紅帽rhel7系統再進行下面的操作哦 root localhost cat etc redhat release red hat enterprise linux server release 6.5 santiag...

嘗試新的構造系統 Ninja

ninja 是 chrome 專案的構建工具,用來替換經典工具 make,目前這個開源工具已經被很多其它專案採用。據專案作者描述,建立這個新的構建工具,主要是為了提公升大型專案的編譯速度。由於 ninja 的設計目標之一是 必須易於嵌入大型構建系統 所以,像寫 makfile 那樣手寫規則檔案,並不...

解決資料輸入的乙個嘗試

應用系統資料輸入是個大問題。乙個客戶很多資料存在word檔案裡,word檔案是文字與 混排。需要將 中的資料提取出來。c 開發,採用了這種方式 for int tablepos 1 tablepos odoc.tables.count tablepos 個表 n tablepos,odoc.tabl...