Raid

如何從多個驅動器創建一個大卷,但如果失敗僅釋放儲存在一個磁碟上的文件?

  • July 13, 2012

我正在執行一個儲存系統。容錯是在應用程序級別處理的(文件儲存在多個伺服器上,甚至是數據中心)。

因此,我不需要,甚至不需要一台伺服器內的冗餘(Raid 5 可以,但我執行的是商品預算伺服器,所以任何資源密集型或需要昂貴硬體的東西都是不好的)。

目前我正在使用 LVM 從伺服器中的所有驅動器中創建一個卷組,然後在其上放置一個大卷。

到目前為止,這工作正常。

問題是我想在將來使用包含多達 40 多個驅動器的更大伺服器。

一個驅動器發生故障並因此破壞整個卷組的可能性高得令人無法接受。數據儲存在其他地方,可以由應用程序恢復,但通過網際網路對等恢復 100+ TB 非常昂貴,而且需要很長時間。

如果一個驅動器出現故障,我只想失去儲存在該磁碟上的文件。

如果文件可以作為一個整體儲存在一個磁碟上並稍微均勻地分佈在多個磁碟上(出於性能原因並減少一個驅動器發生故障時需要恢復的數據量),那也是完美的。

有什麼適合我的需要嗎?

我認為這是大型 lvm 卷組中非常普遍的問題。

一個呈現“合併視圖”並通過保險絲安裝的小程序將是完美的。

不幸的是,我的應用程序不夠靈活,無法在一台伺服器內處理多個卷。

我知道 lvm 有恢復方法,但老實說,我真的不想在生產系統中執行它們……

另外:lvm 如何在卷組中的多個設備上“傳播”數據?它會添加到第一個直到它滿然後開始第二個嗎?還是更像是隨機的某個地方?

編輯:

這怎麼不是一個真正的問題???這個問題不是關於“什麼也是一個好方法……”這個問題也不是關於容錯的冗餘。

我的問題非常具體。這只是有點不尋常。這就是為什麼我需要問一個問題而不是把它輸入Google。

我可以使用什麼程序將多個驅動器連接到一個大卷中,並且如果一個驅動器出現故障,則只釋放儲存在一個驅動器上的文件。

Raid -> 不會那樣做。Raid 可以儲存冗餘資訊以防止失去。Raid 還可以將多個驅動器合二為一。

想像一個小秘書拿到一份文件。將其放在有可用空間的驅動器上。如果你要求它,他會搜尋它或記住它在哪裡,然後從那個驅動器給你。

如果一個驅動器不見了,小秘書道歉並說他沒有那個設備上的文件,但他可以給你所有其他的。

我沒有對此進行測試,但我會單獨安裝每個磁碟,並使用像UnionFSmhddfs這樣的文件系統將它們合併在一起。這樣,如果磁碟發生故障,只有該磁碟上的文件會失去,而這正是您要尋找的。

這可能有點牽強,但由於您只關心特定儲存單元上文件的完整性,請查看此處提到的 ZFS 文件系統副本選項以及此處此處的 Oracle 站點上的詳細資訊(作為“同上塊”)。這非常關注文件級保護,但可能與您正在尋找的內容保持一致。

如今,ZFS 可用於某些 Linux 發行版,因此源自 Solaris 的作業系統不再是嚴格要求。

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