天天看點

自建家庭私有雲NAS——磁盤管理系統

 之前gen8上是直接使用centos的方式進行運作的,lvm做邏輯卷管理,各種軟體基本用docker來運作,基本上可以做到連續運作一年沒問題。

不過,在這裡我打算使用 openmediavalut 來作為作業系統。首先,這個基于freenas的系統其實來也是linux系統,友善我以後繼續折騰一些東西。硬碟資料以後也可以再其他linux上讀取。第二,對安裝盤的要求很小,是以我計劃把4個sata全部都用來裝硬碟,作業系統安裝在一個u盤上。全部安裝完畢後,把這個u盤拷貝下,以後就算是把這個u盤寫壞了,也就是在買一個u盤的事情了。在openmediavault 上有專用 flashmemory插件 來減少對根目錄的讀寫來保護u盤。

自建家庭私有雲NAS——磁盤管理系統

資料存儲如果資金充裕,還是建議使用nas專用的硬碟,比如西數的紫盤,或者希捷的狼盤。這些硬碟能夠保證在長時間運轉(7x24h)運作中保持良好的穩定性。我在自己的系統中采用了希捷的酷鷹——監控盤,主要的原因是價格便宜,也能夠長期運作,轉速隻有5900rpm——可以有效的減少磁盤讀寫噪聲。

針對硬碟檔案系統,我也放棄了raid和lvm的方式,而是采用了 mergerfs + snapraid 方案。自我感覺這是目前市面上最合适家庭nas系統的磁盤和檔案管理系統。

mergerfs

首先出場的mergerfs是union file system中的一種(這裡有 一個比較不錯的關于aufs的介紹 ),類似lvm所追求的結果,通過megerfs可以将多個硬碟上的資料以一個目錄的方式來使用。但不同的是,這種檔案系統是一個使用者空間的檔案系統,它并不會對硬碟進行條帶化的處理,每個硬碟上都儲存着原來檔案系統中的目錄和檔案。如果拿出一個硬碟接到其他的機器上,無需邏輯卷的配置資料,就可以讀取這個硬碟上的資料。類似的檔案系統還有aufs和 mhddfs ,不過很多測試表示目前mergerfs的效率更好,也提供了更多的配置選項。

如果a硬碟上設定了“movie”目錄,b盤上有“download”目錄。将兩個盤通過mergerfs合并到一個目錄下,你會看到“movie”和“download”兩個檔案夾。在預設的政策(epmfs-目錄存在的前提下用空間大的盤)下,在movie目錄存放的資料會先存在a盤,下載下傳的檔案先存放在b盤。這樣,有些不太經常使用的盤就可以減少運作,甚至可以進行休眠。這樣的政策很适合bt下載下傳後,把檔案拷貝到電源目錄下,保護存放電影的盤。關于不同的政策,可以參考mergerfs的github上面的說明,可以根據自己的需要進行設計。

megerfs 的缺點主要也是由于沒有條帶化磁盤,而是通過将實際檔案存放在不同的磁盤來實作,造成無法徹底利用磁盤空間。比如說一個藍CD光牒有30gb大,雖然a,b盤都有20gb的空間,卻沒法存放這個檔案了。因為mergerfs中檔案是完整存放的,無法分割為兩個15gb的檔案。不過相對于試下幾個t為機關的磁盤,這種情況也是很少能遇到的。我的建議就是在磁盤使用率達到80%左右的時候,開始考慮加入新的磁盤。

我在mergerfs中将第一個硬碟為基礎建立了一個安裝點為 /pool 的邏輯卷。所有的共享檔案都在此目錄中進行。後加的硬碟也會出現在這個目錄中。當程式通路這個目錄進行讀寫後,mergerfs會自動的實時處理,将資料放置在正确的磁盤檔案目錄中。測試結果看來最高cpu占用率在15%左右就可以實作近100mb/s的讀寫了。

snapraid

和zfs 不同的是,mergerfs 沒有備援功能來保障資料安全。這時候我們可以采用snapraid來實作一個軟體的raid支援。此功能類似raid5,需要額外的一個硬碟來存放校驗資料。此盤的容量必須大于等于其他資料盤。其他資料盤裡面也要儲存一些稱之為“content”的資料資訊。也就是說snapraid需要占用一些額外空間來做資料備援。

為什麼snapraid比其他硬體raid,zfs更讓我覺得推薦呢?首先,snapraid 不需要所有盤的大小是完全一緻的,也不關心每個硬碟的格式。

snapraid 功能如其名,是采用快照的方式來做資料備援的。具體說就是定時執行一次同步操作後,會生成備援資料。相比硬體raid方式,這種設計及避免了所有硬碟在沒有資料操作情況下也要運轉以滿足實時資料同步帶來不必要的耗費。如果修複失敗,也不會讓整個硬碟上的資料丢失,隻會有個别檔案無法恢複。

snapraid 的缺點也是明顯的,它不太适合大量小檔案,頻繁更改的系統。更适合像是存放照片和電影的家庭nas,有很多尺寸比較大,很少變更的存儲系統。

設定snapraid 需要将資料盤——也就是映射在mergerfs下的磁盤全部都加入到資料盤清單中,而另外一塊專用的校驗資料盤不要加入到mergerfs中,在這裡隻儲存校驗資料和備援資訊。

相比于mergerfs近乎實時的工作方式,snapraid 則是需要定時維護的。而且要避免在生成校驗資訊的時候進行資料操作。可以選擇在omv 網頁管理界面裡面,人工選擇同步,然後校驗和備援資料就會同步好。另外,也可以建立一個定時任務,每天深夜沒有資料寫入的時候來執行來實作生成同步資訊。

作者:佚名

來源:51cto

繼續閱讀