最近小編老是會被問:如果抽出一塊正常工作的服務器硬盤,結果會怎樣?
數(shù)據(jù)會不會丟?
業(yè)務會不會受影響?
答案是,不會丟!不受影響!
保護“使命重大”的硬盤,分兩步走:
先判斷硬盤狀態(tài),看看數(shù)據(jù)丟沒丟
如果一塊正常工作的硬盤被抽出,服務器首先會做出反應。
服務器在硬盤讀寫數(shù)據(jù)時,設有特殊校驗節(jié)點進行定時檢查。
校驗節(jié)點是數(shù)據(jù)存儲的“邊界”,節(jié)點之間的數(shù)據(jù)構成了存儲的一個單位。服務器通過檢查這些節(jié)點是否正常、完備,可以判斷存儲服務是否正常。
如果抽出的硬盤重新插入后,服務器發(fā)現(xiàn)節(jié)點正常,就會判斷數(shù)據(jù)沒有缺失,硬盤會進入正常運行狀態(tài)。
但如果被抽出的硬盤正在讀寫數(shù)據(jù),節(jié)點丟失,服務器會發(fā)起請求,申請?zhí)鎿Q新硬盤,并在其他硬盤上恢復損失的用戶數(shù)據(jù)。(損壞硬盤的歸宿,可點擊:《在騰訊云,有一個鮮為人知的硬盤毀滅計劃……》)
如果數(shù)據(jù)丟了,怎么找回來?
如果被抽出的硬盤正在讀寫數(shù)據(jù),怎么保證用戶服務不受影響?
分情況。
根據(jù)存儲需求的不同,騰訊云為用戶準備了CBS(云硬盤)、CFS(文件存儲)、COS(對象存儲)等多種服務來存儲數(shù)據(jù)、運行業(yè)務。
這些服務都使用多副本技術保障用戶服務。但服務不同,技術也不同:
一種是COS使用的騰訊自研存儲引擎YottaStore中采用的糾刪碼冗余技術。
當用戶寫入1份數(shù)據(jù)時,YottaStore技術會將其均勻分成若干份數(shù)據(jù)塊、校驗塊。每個分組由k個數(shù)據(jù)塊和n個校驗塊組成,最后打散存儲到磁盤中。
這些數(shù)據(jù)塊和校驗塊分組數(shù)量可以多達兩位數(shù),分別放置在不同園區(qū)、不同機架、不同服務器的硬盤中,同一塊硬盤上只放一個副本數(shù)據(jù)。
如果檢查到硬盤出現(xiàn)掉線或損壞等故障——YottaStore檢測到某處數(shù)據(jù)塊或校驗塊被判斷為不可用時,就會立即停用這部分數(shù)據(jù)。
緊接著,會用糾刪碼等技術將其他組的數(shù)據(jù)塊、校驗塊重建丟失數(shù)據(jù),并更新到其他硬盤當中。
另一種是是騰訊自研存儲產(chǎn)品CBS和CFS采用的「三副本技術」。
CBS和CFS服務,會把用戶存儲數(shù)據(jù),拆分成若干固定大小的數(shù)據(jù)塊,寫入不同機柜不同服務器的不同硬盤中,共有三個副本。
如果硬盤被抽出,用戶發(fā)起的請求,將指向正常工作的副本,用戶服務不受影響。
CBS和CFS的系統(tǒng)也會進行自檢。檢查到因硬盤故障(設備只讀、節(jié)點宕機)或網(wǎng)絡故障(如鏈路異常或斷開、網(wǎng)絡探測延遲增大等)導致其中一個副本不可用時,系統(tǒng)會將其剔除。
三副本技術會自動發(fā)起副本恢復,在最短的時間內(nèi)將用戶數(shù)據(jù)恢復成三副本的工作狀態(tài)。
當然,如果因為一些其他原因,導致多副本或三副本全部丟失,不在本文討論范圍之內(nèi)。
其實,服務器和底層存儲技術方面的技術只是硬盤、用戶數(shù)據(jù)保護中的冰山一角。
現(xiàn)實中,抽出一塊正常運行硬盤幾乎不可能:
硬盤本身有生命周期,硬盤替換是常規(guī)操作。為準確運維,騰訊云的硬盤都給拉手條設計LED指示燈,作為待運維硬盤的位置指示,顏色和閃爍頻率代表硬盤的健康狀態(tài);
抽出硬盤對服務器整體幾乎不會造成影響。硬盤設有獨立電子斷路器eFuse,可實現(xiàn)插拔電源緩啟動、去抖和硬盤故障隔離,避免電壓變化影響其它硬盤和服務器工作;
未經(jīng)用戶授權,騰訊云絕不主動觸碰用戶硬盤中數(shù)據(jù)。即便用戶授權,騰訊云也會通過權限劃分確保權限最小化,所有額外權限均需要經(jīng)過多級評審批準......
現(xiàn)在,你知道為了保護一塊硬盤和其中的數(shù)據(jù),騰訊云有多努力了吧!