生活中三大必然要發(fā)生的事:稅收,死亡,硬盤故障
硬盤的質(zhì)量越好——比如說SAS硬盤,或者光纖通道的硬盤——它們的URE率就越低。在你重建存儲系統(tǒng)時(shí),這些硬盤能顯著減少災(zāi)難性陣列故障的機(jī)會,而且還會讓你的陣列使用壽命延長。一個(gè)好的硬件RAID控制器可以在RAID6中應(yīng)對URE,并在周圍做出標(biāo)注。在RAID6中,在同一時(shí)刻,在兩個(gè)硬盤中,在兩個(gè)標(biāo)注區(qū)域發(fā)生URE的幾率非常小。
這些高質(zhì)量的硬盤只會為我們服務(wù)一定的時(shí)間,更長的重建時(shí)間和更多的硬盤故障相關(guān)的問題都需要解決。陣列中的硬盤使用時(shí)間相同,都進(jìn)行同樣的工作,有相同的缺點(diǎn),出現(xiàn)故障也會成組出現(xiàn)。閃存也有自己的問題,無法拯救RAID??磥砦覀儗AID的希望要放到接下來的10年里,那個(gè)時(shí)候或許會有設(shè)計(jì)完美的,用于企業(yè)級的RAID產(chǎn)品,也許還會有消費(fèi)級的產(chǎn)品出現(xiàn)呢。
來自Sun的ZFS
ZFS感覺像是由瘋子設(shè)計(jì)出來的文件系統(tǒng)。它還被認(rèn)為能取代RAID。它的真實(shí)的保證數(shù)據(jù)完整性的技術(shù)已經(jīng)遠(yuǎn)遠(yuǎn)超出了本文所要討論的范圍,但是據(jù)說它能承受三倍的硬盤故障,更能與URE血戰(zhàn)到底。它那幾乎如同魔法般的數(shù)據(jù)完整性保障能力使人們在使用ZFS時(shí)只需要注意一點(diǎn):在任何情況下,永遠(yuǎn)永遠(yuǎn)都不要對ZFS撒謊。
不要在虛擬磁盤(超級監(jiān)管程序創(chuàng)建的,ISCSI或FCoE)上使用ZFS,也不要在硬件RAID上使用。ZFS必須完全透明地控制硬件。可以使用像VMware“原始設(shè)備映射”那樣的功能,但要保證你映射的是本地硬盤。
一些管理員在無論什么樣的硬件RAID上運(yùn)行ZFS都禁止ZFS Intent Log,同時(shí)還配置硬件控制器忽略ZFS的刷新磁盤上數(shù)據(jù)的命令。這就可以讓RAID控制器決定硬盤的刷新,并且可以依靠電池來應(yīng)對電力中斷。
這是一種提升性能的調(diào)試策略,最終以IOPS來衡量。這種做法很常見,主要用在混合使用ZFS,NFS的系統(tǒng)中,NFS會要求系統(tǒng)在每次寫入后都刷新數(shù)據(jù),這和ZFS更高級的用于IOPS的算法和數(shù)據(jù)完整性平衡有沖突。其它的管理員——也包括我自己——并不贊同這種做法,因?yàn)樗艞壛薢FS保持?jǐn)?shù)據(jù)完整性的一些功能。如果對IPOS有要求,我更傾向于依賴使用了固態(tài)硬盤或NVRAM硬盤的混合存儲池。它可以更好地配置ZFS,也可以滿足NFS對數(shù)據(jù)寫入刷新的要求,同時(shí),還能使ZFS的保護(hù)機(jī)制完整。
來自微軟的ReFS
微軟的ReFS被認(rèn)為是對ZFS的回應(yīng)。我在這里得說清楚:這絕不是指形狀或形式。ReFS相對于NTFS來說是個(gè)巨大的進(jìn)步,但是還有許多不足。令人充滿期待的是,微軟的彈性存儲技術(shù)可以彌補(bǔ)不止一個(gè)硬盤故障的損失,但是目前來看,我個(gè)人認(rèn)為它還僅僅是個(gè)技術(shù)展示。
ReFS和Storage Spaces需要整合在一起,積累一些用戶基礎(chǔ),這樣它們再去正面挑戰(zhàn)ZFS。在目前的情況下,就在這個(gè)領(lǐng)域中,微軟的管理員在其服務(wù)器中使用本地存儲,最好還是使用硬件RAID。
來看看RAIN怎么樣
RAIN是一個(gè)冗余的(或可靠的)廉價(jià)節(jié)點(diǎn)陣列。簡而言之,RAIN可以跨越多個(gè)個(gè)人電腦復(fù)制你的數(shù)據(jù)從而進(jìn)行冗余。
現(xiàn)在,有許多不同的RAIN的實(shí)現(xiàn)形式,這也是目前“大數(shù)據(jù)混戰(zhàn)”造成的結(jié)果。當(dāng)你了解了HDFS,GlusterFS或是亞馬遜的S3之后,你再 討論RAIN。一般情況下,RAIN設(shè)備并不像傳統(tǒng)的文件系統(tǒng)那樣工作,而Gluster的團(tuán)隊(duì)正在研發(fā)用在GlusterFS上的技術(shù)來改變其工作方 式。
對于大部分RAIN設(shè)備來說,操作系統(tǒng)并不會安裝它們,你不用創(chuàng)建NFS或SMB共享。如果你真的想去做這種類型的工作,你需要在RAIN陣列上使 用某種類似FUSE的東西來建立虛擬硬盤。這個(gè)時(shí)候你就不在正軌了,你需要重新評價(jià)你的整個(gè)工程了。如果,你仍然想這么做,那你可以借助一個(gè)NFS服務(wù)器 轉(zhuǎn)換器在Gluster上運(yùn)行VMware虛擬機(jī),不過這有點(diǎn)奇怪。
你可以減少RAIN設(shè)備頂層上轉(zhuǎn)化過來的層次,這樣可以使它看起來像是一個(gè)傳統(tǒng)的硬盤,RAIN通常用于對象存儲(不是文件)。最好還是把RAIN設(shè)備當(dāng)成一個(gè)特別大的數(shù)據(jù)庫,而不是傳統(tǒng)的文件系統(tǒng)。
防彈的集群
當(dāng)然,如果ZFS和RAID都加強(qiáng)了你的存儲層,那如果我攻擊你的存儲服務(wù)器呢?RAIN可以很有彈性地應(yīng)對個(gè)人系統(tǒng)的損失,但是對于ZFS和RAID來說,沒有什么本地的東西能應(yīng)對來自CPU的故障。
這就是集群出現(xiàn)的原因。對于容錯(cuò)來說,理想的部署應(yīng)該是有兩個(gè)服務(wù)器同步。在免費(fèi)的軟件世界里你可以尋找采用Linux的DRBD和采用FreeBSD的HAST。
假如你有一個(gè)穩(wěn)定的硬件RAID基礎(chǔ),微軟的Server 2012實(shí)際上是可靠性很好的集群基礎(chǔ)。
Cluster Shared Volumes v2表明我是如何實(shí)現(xiàn)RAID 61的:在每個(gè)節(jié)點(diǎn)上都采用硬件RAID 6.同時(shí)采用鏡像(我把它們寫入緩存了,這樣即使一個(gè)節(jié)點(diǎn)出現(xiàn)問題,也可以保證我不會丟失數(shù)據(jù),這很慢,但是更安全)。
把Server 2012新的NFS 4.1,ISCSI target或SMB 3.0(支持多渠道,透明的故障轉(zhuǎn)移和節(jié)點(diǎn)容錯(cuò))聯(lián)合起來,我對我的微軟服務(wù)器就放心了,不需要VMware集群(通過它們可以了解存儲的情況)。
說到VMware,它們提供vSphere存儲產(chǎn)品。這是一個(gè)可靠的技術(shù),可用來創(chuàng)建存儲節(jié)點(diǎn),但是在每個(gè)存儲設(shè)備上它只能擴(kuò)展到3個(gè)物理系統(tǒng)。
現(xiàn)在你的大腦是不是一片混亂?
如果你現(xiàn)在感覺到了存儲產(chǎn)品功能可用性上的漏洞,那么恭喜你,你并不是一個(gè)人在戰(zhàn)斗,大家都感同身受。這就是為什么存儲產(chǎn)品生產(chǎn)商們都作為獨(dú)立的廠 商存在的原因。有開源工具的容錯(cuò)存儲技術(shù)絕對是各大廠商追逐的對象,微軟也需要時(shí)間來把所有的技術(shù)梳理出來(在它真正成為一支重要力量之前,它需要把其3 個(gè)硬盤冗余的RdFS用在集群共享卷上,在擴(kuò)展到成百上千個(gè)節(jié)點(diǎn)中),VMware有基本的技術(shù),但是它需要好好發(fā)展自己的技術(shù)。
這就是為什么如此多的廠商出現(xiàn)在這里的原因,這也是為什么那些存儲巨頭們還在銷售大的,昂貴的SAN產(chǎn)品的原因。如今,在你計(jì)劃你的存儲部署的時(shí)候,即使你只有一個(gè)單一的服務(wù)器,你也要考慮許多東西,你10年前了解的東西現(xiàn)在已經(jīng)過時(shí)了。
當(dāng)然,這些技術(shù)并不僅僅用于容錯(cuò)。容錯(cuò)并不是備份。如果你的數(shù)據(jù)沒有存在至少兩個(gè)物理位置中,你的數(shù)據(jù)就相當(dāng)于沒存。你要保證在你對容錯(cuò)躍躍欲試時(shí) 你已經(jīng)有了一個(gè)完美的備份計(jì)劃。另外你還要記?。阂粋€(gè)容錯(cuò)系統(tǒng)(或者一個(gè)備份系統(tǒng))如果未經(jīng)過測試的話,那它就起不到任何形式的保護(hù)作用。