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