亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
Google如何備份互聯(lián)網(wǎng)? zz
[打印本頁(yè)]
作者:
ChinaUnixViewer
時(shí)間:
2014-02-25 21:29
標(biāo)題:
Google如何備份互聯(lián)網(wǎng)? zz
http://www.infoq.com/cn/news/2014/02/google-video-internet
作者 馬國(guó)耀 發(fā)布于 二月 19, 2014
近日,在視頻“How Google Backs Up the Internet”中,Raymond Blum介紹了許多值得互聯(lián)網(wǎng)公司學(xué)習(xí)的有關(guān)備份、恢復(fù)方面的技術(shù)與思想。Blum的演講幽默詼諧,信息量巨大,洋洋灑灑地講了一個(gè)多小時(shí),處處閃現(xiàn)智慧的光芒,非常值得一聽(tīng)。Blum用典型的Google式說(shuō)法解釋了為何常規(guī)的備份策略對(duì)Google不起作用:它們?cè)趯?shí)現(xiàn)容量倍增的同時(shí)需要付出倍增的付出(成本和資源)。若備份兩倍的數(shù)據(jù)需要兩倍的資源(時(shí)間、能源、空間等),那就沒(méi)什么用,這不叫擴(kuò)展。當(dāng)要備份的數(shù)據(jù)量從1艾字節(jié)(exabyte)增長(zhǎng)到2艾字節(jié)時(shí),你需要一份不同的工作計(jì)劃。感謝Todd Hoff ,他對(duì)該視頻做了非常詳盡的梳理與總結(jié)(原文在這里),并歸納出演講的幾大主題:
永不丟失數(shù)據(jù):即便Gmail的確發(fā)生過(guò)臭名遠(yuǎn)播的服務(wù)不可用事件,但它卻能永不丟失數(shù)據(jù),這一點(diǎn)遠(yuǎn)非單純地通過(guò)許多個(gè)磁帶備份和跨多個(gè)數(shù)據(jù)中心就可以實(shí)現(xiàn),實(shí)際工作要復(fù)雜得多。每次讀取數(shù)據(jù)都需要經(jīng)過(guò)技術(shù)棧的多個(gè)層級(jí),而每一層都要做許多工程工作,包括人力。
僅備份是不夠的:你更需要的是恢復(fù)(restore)而非備份(backup)。備份只是在消費(fèi)奢侈的恢復(fù)時(shí)所繳的稅?梢允箓浞葑銐驈(fù)雜,以保證恢復(fù)變得足夠簡(jiǎn)單。
不應(yīng)讓消耗資源與獲得容量線性擴(kuò)展:不能說(shuō)數(shù)據(jù)增長(zhǎng)100倍,就需要100倍的人力和機(jī)器資源。應(yīng)該尋找力量倍增的方法。自動(dòng)化是改善利用率和效率的主要方法。
萬(wàn)物皆需冗余:Google的東西也不斷失效,就像人體內(nèi)的細(xì)胞不斷死去一樣。Google并不奢望它的東西能夠永遠(yuǎn)不死,相反,Google做好應(yīng)對(duì)計(jì)劃。
萬(wàn)物皆需多樣化:若擔(dān)心站點(diǎn)本地出事,就把數(shù)據(jù)在多個(gè)站點(diǎn)存放;若擔(dān)心用戶(hù)操作錯(cuò)誤,就對(duì)用戶(hù)的交互進(jìn)行多層隔離;若希望免遭某個(gè)軟件bug的破壞,就換一個(gè)軟件,把東西存在不同的廠商介質(zhì)上以降低嚴(yán)重的軟件bug產(chǎn)生的影響。
把人從決策環(huán)路中解放出來(lái):一份郵件被Gmail保存了幾個(gè)備份?諸如此類(lèi)事情,就不應(yīng)是人該操心的,它由Gmail和系統(tǒng)通過(guò)某些參數(shù)進(jìn)行配置和管理的。設(shè)定高層策略,由系統(tǒng)來(lái)負(fù)責(zé)。只有在異常情況下才去打擾人。
不斷地驗(yàn)證:不斷對(duì)備份和恢復(fù)進(jìn)行測(cè)試,以驗(yàn)證其正確性。不對(duì)其進(jìn)行嘗試,它就不可能正確工作。
下面,根據(jù)Todd Hoff 的整理,對(duì)演講中的相關(guān)觀點(diǎn)進(jìn)行詳細(xì)描述,由于篇幅較大,為簡(jiǎn)化閱讀,筆者對(duì)內(nèi)容做了部分刪節(jié),并對(duì)若干條目進(jìn)行了轉(zhuǎn)譯。如需要閱讀英文原文,可轉(zhuǎn)到這里:
保證100%的數(shù)據(jù)可用性,永不丟失數(shù)據(jù) 從統(tǒng)計(jì)學(xué)角度看,一個(gè)2G的文件丟失200K聽(tīng)起來(lái)不錯(cuò),但是文件卻可能已經(jīng)失效了。所以,數(shù)據(jù)的可用性遠(yuǎn)比可訪問(wèn)性重要;Google通過(guò)位置隔離、應(yīng)用層問(wèn)題隔離、存儲(chǔ)問(wèn)題隔離、存儲(chǔ)介質(zhì)問(wèn)題隔離等多種混合手段保證數(shù)據(jù)的可用性。
冗余不同于可恢復(fù)性 多份備份不足以保證數(shù)據(jù)不丟失(軟件的錯(cuò)誤會(huì)導(dǎo)致所有副本都是壞數(shù)據(jù));但是備份在某些情況下是有用的,比如一個(gè)數(shù)據(jù)中心不可用時(shí)可用另一個(gè)異地的數(shù)據(jù)中心的備份進(jìn)行恢復(fù);冗余有益于引用局部性,而當(dāng)希望使所有的數(shù)據(jù)引用盡可能是本地訪問(wèn)時(shí),拷貝就很好用。
從整體上看,Google系統(tǒng)非常健壯,因?yàn)橛刑嗟膫浞?Google的東西始終在出錯(cuò),就像人體內(nèi)的細(xì)胞不斷地死亡一樣。冗余就是應(yīng)對(duì)之策,通過(guò)冗余可得到了比單臺(tái)高質(zhì)量機(jī)器更可靠的聚集可靠性。
大規(guī)模并行系統(tǒng)更容易出錯(cuò) 若沒(méi)有bug的情況下,運(yùn)行在3萬(wàn)臺(tái)機(jī)器上的MapReduce看起來(lái)很棒,但是一旦有bug,所有機(jī)器都等著運(yùn)行此bug,其影響就會(huì)放大。
本地拷貝不能防止站點(diǎn)失效 如果機(jī)房被水淹了,RAID也無(wú)力回天;GFS(Google File System)采用RAID的概念,通過(guò)編碼技術(shù)一次性將數(shù)據(jù)寫(xiě)到多個(gè)數(shù)據(jù)中心,你只需要使用n-1個(gè)備份就可以重構(gòu)數(shù)據(jù)。所以,當(dāng)你有三個(gè)數(shù)據(jù)中心時(shí),其中一個(gè)數(shù)據(jù)中心失效,還可以通過(guò)另外兩個(gè)來(lái)進(jìn)行數(shù)據(jù)重構(gòu)。
可用性和數(shù)據(jù)一致性是整個(gè)公司層面的特征 Google工程師、BigTable、GFS、Colossus都將數(shù)據(jù)持久性和一致性視為第一要?jiǎng)?wù)。
萬(wàn)事皆需多樣性 若擔(dān)心本地站點(diǎn)出問(wèn)題,就把數(shù)據(jù)存放在多個(gè)站點(diǎn)上;若擔(dān)心用戶(hù)操作錯(cuò)誤,就對(duì)用戶(hù)的交互進(jìn)行多層隔離;若希望免遭某個(gè)軟件bug的破壞,就換一個(gè)軟件,把東西存在不同的廠商介質(zhì)上以減低嚴(yán)重的軟件bug帶來(lái)的影響。
通過(guò)磁帶備份數(shù)據(jù)的確很好 磁帶之所以好,因?yàn)樗皇谴疟P(pán)。磁盤(pán)的驅(qū)動(dòng)程序里可能存在bug,但磁帶不會(huì),它提升了存儲(chǔ)多樣性。磁帶容量遵循摩爾定律,所以樂(lè)見(jiàn)人們采用磁帶作為備份介質(zhì);磁帶是加密的,惡意分子很難從其中得到有價(jià)值的信息。
相對(duì)于備份,更應(yīng)該關(guān)注恢復(fù) 在人們使用數(shù)據(jù)之前就要發(fā)現(xiàn)問(wèn)題,恢復(fù)是必不可少的;進(jìn)行連續(xù)的恢復(fù)嘗試,通過(guò)一個(gè)滑動(dòng)窗口選擇 5%的備份進(jìn)行恢復(fù)并與先前備份的原始數(shù)據(jù)進(jìn)行比對(duì),在問(wèn)題出現(xiàn)之前就解決它;比對(duì)也是自動(dòng)執(zhí)行的;
對(duì)失敗率的變化做出告警 如果有些事情不對(duì)勁,你應(yīng)該立刻知曉;預(yù)期恢復(fù)過(guò)程中一定有失敗,文件第一次嘗試恢復(fù)時(shí)失敗暫不告警;如果第一次嘗試恢復(fù)時(shí)的錯(cuò)誤率是N,而第二次嘗試恢復(fù)時(shí)的錯(cuò)誤率為Y,則意味著某個(gè)地方出問(wèn)題了,因此必須告警(在數(shù)據(jù)使用之前就能夠發(fā)現(xiàn)問(wèn)題)。
萬(wàn)事皆可出錯(cuò) 磁盤(pán)不斷地出錯(cuò),但是你知道它何時(shí)出錯(cuò),因?yàn)樗谀愕谋O(jiān)視之中;而對(duì)于磁帶,在你使用它之前你并不知道它是否有錯(cuò)。磁帶存放的時(shí)間久,但你應(yīng)該在使用它之前對(duì)其進(jìn)行測(cè)試。
在磁帶上做RAID 對(duì)4個(gè)滿載磁帶通過(guò)XOR生成第5個(gè)編碼帶,這樣,任意一個(gè)丟失了你都可以從其他四個(gè)中進(jìn)行恢復(fù)。磁帶時(shí)常丟失數(shù)據(jù),通過(guò)不斷地恢復(fù)來(lái)檢測(cè)磁帶的丟失,通過(guò)其兄弟磁帶來(lái)重新構(gòu)建該磁帶。
備份是為奢侈的恢復(fù)所繳的稅。 這是一個(gè)恢復(fù)系統(tǒng)而非備份系統(tǒng);根據(jù)需要,允許備份足夠復(fù)雜并跑的時(shí)間很長(zhǎng),但要使恢復(fù)盡可能地自動(dòng)化并快速;因?yàn)閭浞菘赡芎苈瑪?shù)據(jù)源必須把原始數(shù)據(jù)保存一段時(shí)間,可能有幾天,直到備份已經(jīng)完成。為了使恢復(fù)足夠快速,可以降低備份的介質(zhì)使用效率,通常讀一個(gè)磁帶需要兩小時(shí),這太久了,如果把同樣多的內(nèi)容寫(xiě)到兩個(gè)磁帶里(每個(gè)磁帶的利用率只有一半),然后并行地去讀,時(shí)間就只需要一小時(shí)。
擴(kuò)展是個(gè)問(wèn)題 但你擁有艾字節(jié)的數(shù)據(jù)時(shí),你還會(huì)面臨一些現(xiàn)實(shí)問(wèn)題,如果不得不拷貝10艾字節(jié),那么為了備份一天的數(shù)據(jù)你可能要花10周的時(shí)間;在全球范圍內(nèi)擁有數(shù)據(jù)中心時(shí),你必須要做出一些選擇,比如是否每個(gè)中心都有無(wú)限的備份容量?是否要根據(jù)區(qū)域劃分來(lái)進(jìn)行備份?帶寬能否支持?帶寬是否要用于其他用來(lái)賺錢(qián)的業(yè)務(wù)?考慮相對(duì)成本,做出權(quán)衡,并非每個(gè)中心都有備份設(shè)備,需要權(quán)衡網(wǎng)絡(luò)上的可用容量。
不應(yīng)讓消耗資源與獲得容量線性增長(zhǎng) 不能簡(jiǎn)單地說(shuō)需要更多的帶寬和磁帶。比如,對(duì)于10000個(gè)磁帶,需要10000個(gè)操作員去操作它們。在Google,雖然磁帶的數(shù)量增長(zhǎng)了一個(gè)數(shù)量級(jí),但卻沒(méi)有對(duì)應(yīng)的人員增長(zhǎng)比例;即便有一定的增長(zhǎng)幅度,卻遠(yuǎn)不如線性增長(zhǎng);一個(gè)很好的例子是,人們?cè)A(yù)測(cè),當(dāng)電話機(jī)數(shù)量增長(zhǎng)30%時(shí),美國(guó)人都要成為電話接線員,因?yàn)楫?dāng)時(shí)沒(méi)有料到自動(dòng)交換機(jī)的出現(xiàn)。
一切都要自動(dòng)化 程序安排是自動(dòng)化的;備份、恢復(fù)測(cè)試、一致性測(cè)試等等,都是自動(dòng)執(zhí)行的。一旦檢測(cè)到壞掉的磁帶,后續(xù)的處理也是自動(dòng)的。你看不到它們的運(yùn)行,你所能看到的是,也許有一天你會(huì)關(guān)心平均有多少個(gè)磁帶壞掉了,或者當(dāng)磁帶的出錯(cuò)率變化時(shí)發(fā)出一個(gè)告警。
讓人擺脫穩(wěn)定狀態(tài)的操作 包裝并運(yùn)送驅(qū)動(dòng)器仍需要由人來(lái)執(zhí)行。自動(dòng)化接口來(lái)準(zhǔn)備運(yùn)送標(biāo)簽,獲取RMA號(hào)、檢查包裝是否正常、接收確認(rèn)單,如果這些環(huán)節(jié)出錯(cuò)則需要人來(lái)干預(yù)。同樣,軟件庫(kù)的維護(hù)也是自動(dòng)化的。
自動(dòng)處理死機(jī) 每30秒就有一臺(tái)機(jī)器死掉,如果一個(gè)正在執(zhí)行MapReduce任務(wù)的機(jī)器死掉,不要告訴我,自動(dòng)處理并繼續(xù)執(zhí)行。找另一臺(tái)機(jī)器,轉(zhuǎn)移工作并重新啟動(dòng)。如果機(jī)器的執(zhí)行中存在依賴(lài)關(guān)系,則將機(jī)器調(diào)度成等待狀態(tài),如果等待時(shí)間太長(zhǎng)了才需要人工干預(yù)。
恢復(fù)的優(yōu)先級(jí)設(shè)置 歸檔數(shù)據(jù)的恢復(fù)可放在更重要的數(shù)據(jù)(如當(dāng)前收件箱和發(fā)件箱)的恢復(fù)之后;一個(gè)月未登錄的賬戶(hù)的用戶(hù)數(shù)據(jù)的恢復(fù)可放在活躍用戶(hù)的數(shù)據(jù)恢復(fù)之后。
備份系統(tǒng)被視為巨大的全球組織 不要指望只在紐約備份Gmail;把備份看作一個(gè)巨大的全球性系統(tǒng),一處發(fā)生備份,也一定同時(shí)在別的地方發(fā)生。
需要良好的基礎(chǔ)設(shè)施 MapReduce的作者在編寫(xiě)它時(shí)可能永遠(yuǎn)也無(wú)法想象它現(xiàn)在正在用于備份。但是,若沒(méi)有MapReduce,就不會(huì)出現(xiàn)將其用于備份的想法。
不斷進(jìn)行驗(yàn)證 不要想當(dāng)然,僥幸不是一種策略;對(duì)于每個(gè)備份都要通過(guò)恢復(fù)進(jìn)行驗(yàn)證。不到最后你都無(wú)法證明任何事情有效,這種態(tài)度幫助我們發(fā)現(xiàn)了許多問(wèn)題。
災(zāi)難恢復(fù)測(cè)試(DRT) 災(zāi)難時(shí)有發(fā)生,你能做的只能適應(yīng)。尋找基礎(chǔ)設(shè)施和物理安全的漏洞;不能只有一條通向數(shù)據(jù)中心的道路,需要預(yù)備多條備選方案;需要對(duì)供應(yīng)鏈設(shè)計(jì)冗余方案。
在不同軟件棧,不同位置和不同時(shí)間點(diǎn)進(jìn)行冗余 不要讓只對(duì)數(shù)據(jù)進(jìn)行遷移,需要在軟件棧的各個(gè)層上把數(shù)據(jù)保留一段時(shí)間,即便你丟失了這里和那里的數(shù)據(jù),你仍然可以在某個(gè)地方找到數(shù)據(jù)。
只有信任你的同伴并扛起責(zé)任時(shí),一個(gè)巨大組織才能運(yùn)轉(zhuǎn)起來(lái) 相信他們理解自己所負(fù)責(zé)的部分;確保整個(gè)公司的軟件接口都是良定義的,在不同層之間進(jìn)行驗(yàn)證測(cè)試。
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2