天天看點

一個檔案管理系統的軟硬體配置清單

軟硬兼施。

近期在弄一個檔案管理系統。系統的最大特點,就是檔案很多,資料很大,機關以TB計算。客戶因為采購伺服器需要走流程,時間周期較長,希望要求我們現在就給一個系統運作軟硬體配置,好提前申請。

一、配置清單

我沒怎麼幹過這種活,對硬體不熟悉。但事實上,這也應該是程式員的工作之一。隻好硬着頭皮,查閱資料,仔細揣摩。除了考慮硬體特性,也要照顧客戶的錢袋子,畢竟預算不高。最後出來的清單如下:

一個檔案管理系統的軟硬體配置清單

二、軟體配置理由

軟體沒啥好說的。minIO是對象存儲的開源架構,據說好多雲提供商都用了。搗鼓私有雲的話,可以試一下。什麼是對象存儲?對象存儲就是非結構化資料存儲。資料庫裡一條條記錄,可謂結構化資料;圖檔、視訊、文檔,即非結構化資料。存儲這些非結構化資料,即為對象存儲。

對象存儲是用于大規模存儲非結構化資料的資料存儲架構。它将每項資料指定為一個對象,儲存在單獨的倉庫中,然後與中繼資料和唯一辨別符捆綁在一起,以友善通路和檢索。

存儲檔案誰不會?作業系統就可以做,然後WEB伺服器直接讀作業系統資訊不就好了?當然可以,但檔案數量一多,而且每個檔案尺寸都很大,那就難說了。我們平時用windows就能感覺到,打開一個很多巨大的檔案夾,硬碟燈長明不熄,機器卡住,什麼都幹不了的焦躁場面。還有一個原因,采用這種原始方案,web伺服器要和檔案伺服器合在一起。

采用minIO就不同了。

1)首先它号稱性能很好,支援海量檔案存儲,而且單個檔案最大可達5TB。從衆多檔案中找到指定檔案并下載下傳,速度很快,百萬軍中取上将首級如探囊取物。之是以這麼快,是因為它從一開始就隻為這個存儲、下載下傳考慮,不像作業系統通用化,拖泥帶水。

2)它是一個獨立的對象存儲伺服器,可以跟WEB伺服器分離,位于不同的伺服器

3)它是一個分布式的架構,意味着并發性、可靠性、擴充性、伸縮性都很好

4)它有所謂獨門的糾偏碼/擦寫碼(erasure code),利用備援和校驗技術,即使壞了一些硬碟,也能保證資料的安全。這個用磁盤陣列也能實作,比如說RAID5。但是,RAID是30、40年前出現的技術,當時硬碟還很小,如果在今天,幾個T一塊的硬碟壞了的話,靠RAID5恢複,可能就要好幾天。minIO有本事可以很快恢複。而且這個恢複精度,是對象級的。比如說,有4塊硬碟參與了這個erasure code mode,那麼你删掉了其中一塊硬碟上的某個檔案夾,系統會自動給它restore。

RAID1當然沒問題,但速度又比不上minIO的糾偏碼。RAID1的資料安全性最高,但速度不會提高,比不上RAID0,也比不上RAID5。

三、硬體配置理由

1、CPU

Intel或者AMD了,沒啥好挑的。我們網管說,AMD更好一些,但客戶說到時部署環境的機器,就是intel的CPU。我也不确切知道現在的CPU啥主頻多少核,就參照網管的意見,說16核或以上。CPU個數或者核心數,跟同時運作的線程數相關,當然是多一點比較好。最好是2塊CPU,每塊16個核或者更多。

2、記憶體

本來想寫128G的,不過64G應該暫時也夠了,太多浪費沒必要。還是為客戶省點銀子吧。

3、硬碟

上面說這個糾偏碼說得天上有地上無,為啥還是RAID0 + RAID1。主要是成熟可靠,簡單易行。我們對minIO不太熟,覺得設定這個糾偏碼好像很複雜。既然有硬體可以直接做陣列,速度和安全都能保障,并且經過全世界無數的驗證,為啥不用呢。