冗余云存儲如何確保高可用性
正如高可用性和靈活性是本地存儲應(yīng)用的重要性能要素一樣,這兩個性能指標(biāo)對于使用云存儲服務(wù)的組織也是同等重要的。云存儲供應(yīng)商幾乎都是使用了冗余的硬件,從而能夠以服務(wù)水平協(xié)議(SLA)為客戶提供服務(wù),而采用這樣的冗余策略來規(guī)避有可能導(dǎo)致停機事件或者甚至數(shù)據(jù)丟失的現(xiàn)有保護漏洞也是較為常見的做法。
雖然云供應(yīng)商通常都會在他們的各級基礎(chǔ)設(shè)施中增加冗余,但是單獨使用冗余策略并不足以防止停機事件的發(fā)生。本地組件故障、WAN故障或者云供應(yīng)商中斷都會導(dǎo)致數(shù)據(jù)變得不可用。至少,使用云存儲服務(wù)的組織應(yīng)當(dāng)部署冗余的云存儲網(wǎng)關(guān)和冗余的WAN鏈路。另外,如果預(yù)算允許,應(yīng)通過采用冗余獨立云(BRIC)集合架構(gòu)以實施更高級別的冗余措施。
確定云存儲服務(wù)的高可用性的第一步就是驗證你從你的云算儲服務(wù)供應(yīng)商那里得到的保護等級。確定你的云存儲服務(wù)供應(yīng)商針對你的業(yè)務(wù)需求而提供的冗余等級是非常重要的工作。例如,如果你的企業(yè)的數(shù)據(jù)存儲策略要求所有數(shù)據(jù)都有三個副本,那么僅僅把用戶數(shù)據(jù)復(fù)制至二級數(shù)據(jù)中心的云存儲供應(yīng)商可能就無法滿足你的數(shù)據(jù)存儲策略需求了。你可能會發(fā)現(xiàn)你需要更高層次的服務(wù)才能實現(xiàn)你所需的冗余等級。
正如云存儲冗余是非常重要的一樣,還有必須予以考慮的其它注意事項。為了實現(xiàn)云存儲的真正高可用性,你還需要把冗余策略應(yīng)用于你與云存儲的連接方式上。云計算供應(yīng)商們是以一種“首先失敗”的心理在建設(shè)他們自己的基礎(chǔ)設(shè)施的,但是供應(yīng)商們對于在你的本地基礎(chǔ)設(shè)施中所使用架構(gòu)是沒有控制權(quán)的。
需要考慮應(yīng)用冗余策略的關(guān)鍵所在:WAN連接,網(wǎng)關(guān)
通常,我們會使用兩種組件來提供云存儲的連接性:一個WAN連接和一個云存儲網(wǎng)關(guān),也就是所謂的云存儲控制器。這是兩個為實現(xiàn)高可用性而必須被解決的問題。
WAN冗余的一個通用解決方案就是從不同的WAN供應(yīng)商那里租用冗余的網(wǎng)絡(luò)連接。從理論上來說,如果其中有一家供應(yīng)商發(fā)生了中斷事件,那么你應(yīng)當(dāng)能夠通過另一個供應(yīng)商的鏈路來保持云的連接性。
大多數(shù)的云存儲服務(wù)都是基于一個對象存儲平臺的。因為大部分的本地存儲都是基于塊存儲的,所有我們需要有一個機制來執(zhí)行塊存儲和對象存儲之間的轉(zhuǎn)換。通常,這樣的一個任務(wù)是由云存儲網(wǎng)關(guān)設(shè)施來完成的,它可以為本地和云存儲提供一個全局的命名空間。
有鑒于云存儲網(wǎng)關(guān)的重要性,防止云存儲網(wǎng)關(guān)因出現(xiàn)單點故障而造成整體系統(tǒng)停機是至關(guān)重要的。如果云網(wǎng)關(guān)是一個物理設(shè)施,那么顯而易見的解決方案就是根據(jù)你企業(yè)的具體冗余需求來部署一個或多個附加的設(shè)施。但是物理設(shè)施的價格是相當(dāng)昂貴的。如果附加設(shè)施并不在你的預(yù)算中,那么你還可以與你的供應(yīng)商溝通以確定是否可能有其它選擇方案存在。如果高可用性是你的唯一目標(biāo),那么你可能會發(fā)現(xiàn)你可以使用一個較低端的設(shè)施或者甚至一個虛擬設(shè)施來達(dá)到目的。
在使用虛擬云存儲網(wǎng)關(guān)設(shè)施的情況下,你將不得不考慮所需的冗余等級。因為,一個虛擬云網(wǎng)關(guān)設(shè)施真的只不過就是一個虛擬機(VM),通過在你的服務(wù)器虛擬化基礎(chǔ)設(shè)施中的冗余措施,你就可以保護該設(shè)施。值得一提的是,雖然諸如Hyper-V故障轉(zhuǎn)移這樣的高可用性功能可以保護虛擬設(shè)施出現(xiàn)物理硬件故障,但是硬件集群對于防止發(fā)生在虛擬機中的故障并沒有發(fā)揮任何作用。因此,你應(yīng)考慮是否可能需要通過部署并行虛擬設(shè)施來提供附加的保護,這是有必要的。
當(dāng)談及云存儲的高可用性時,從過去的經(jīng)歷中獲得經(jīng)驗是比較重要的。例如,在2011年,亞馬遜網(wǎng)絡(luò)服務(wù)就由于單一可用區(qū)域中的彈性塊存儲資源發(fā)生故障而遭遇了一次重大的中斷事件,進而無法對讀寫操作請求作出響應(yīng)。雖然這種類型的大問題并沒有再次出現(xiàn),但這也說明了,即便云供應(yīng)商擁有他們內(nèi)置的高可用性機制,他們還是有可能發(fā)生問題的。所以,制定一個針對云存儲供應(yīng)商遭遇數(shù)據(jù)丟失事件的到位的應(yīng)急預(yù)案是一個好主意。
BRIC架構(gòu)保護數(shù)據(jù)和訪問
傳統(tǒng)觀點一直認(rèn)為,當(dāng)談及確保存儲可用性時,客戶往往會聽任云存儲供應(yīng)商的擺布。畢竟,如果一個供應(yīng)商出現(xiàn)了一次亞馬遜曾遭遇過的中斷事件,這終究還是會影響到他們客戶的。但是,BRIC的架構(gòu)是大有裨益的。
BRIC的工作方式類似于一個RAID存儲陣列,所以用戶不必?fù)?dān)憂單個磁盤出現(xiàn)問題,BRIC可跨多個云運行。通過使用這種方法,如果云供應(yīng)商發(fā)生了故障或數(shù)據(jù)丟失事件,數(shù)據(jù)也將可以得到保護,同時在其它云中保持了數(shù)據(jù)的可訪問性。
使用BRIC架構(gòu)的最大缺點就是成本。雖然也有諸如Tahoe Least-Authority文件系統(tǒng)(Tahoe-LAFS)這樣免費的開源BRIC實施,但是云計算存儲供應(yīng)商通常會根據(jù)用戶所消費的存儲資源數(shù)量來計費。如果某家組織使用BRIC在單獨的幾個云中存儲數(shù)據(jù)的多個副本,那么他們的云存儲成本將成倍增加。情況就是如此,如果某家組織想要考慮實施一個BRIC架構(gòu),那么他們應(yīng)準(zhǔn)確地預(yù)測他們未來的存儲量需求并選擇一個能夠以最小化成本實現(xiàn)最大限度保護的存儲方法,這是非常重要的。否則,客戶的云存儲成本很快就會失控。