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