多副本和Raid根本扛不了快照備份容災(zāi)的活兒!
本文目錄:
- 數(shù)據(jù)損毀的幾種類型
- 數(shù)據(jù)恢復(fù)的幾種方式
- 多副本和Raid頂不了快照備份容災(zāi)
最近,關(guān)于騰訊云用戶前沿數(shù)控公司數(shù)據(jù)受損一事讓數(shù)據(jù)安全再次成為大家關(guān)注的焦點。騰訊云也終于發(fā)布了事情原委,詳見:關(guān)于客戶“前沿數(shù)控”數(shù)據(jù)完整性受損的技術(shù)復(fù)盤。
總結(jié)起來三句話:管理員在遷移數(shù)據(jù)時違反規(guī)程關(guān)閉了校驗(比如大家熟知的md5和sha1),數(shù)據(jù)傳遞到新空間之后,沒等24小時就把原有副本刪除了。結(jié)果發(fā)現(xiàn)遷移過來的數(shù)據(jù)出現(xiàn)了問題。這個過程具體的細(xì)節(jié)冬瓜哥就不再追了。
本文冬瓜哥嘗試全方位的論述一下數(shù)據(jù)安全,云上的用戶到底該怎么做才能保證自己的數(shù)據(jù)安全。
1.數(shù)據(jù)損毀的幾種類型
1.1 介質(zhì)物理損壞。比如磁盤扇區(qū)磁疇分布出了問題,介質(zhì)出現(xiàn)各種不穩(wěn)定問題,直接讀不出來了。這種即便是找開盤恢復(fù)數(shù)據(jù)的公司,就算再牛逼,比如這家,也無能為力了。據(jù)說FBI有種技術(shù),可以通過磁力顯微鏡,通過磁疇的分布狀況,經(jīng)過各種復(fù)雜分析,探測出該區(qū)域之前的數(shù)據(jù),而且還不是100%。
1.2 盤內(nèi)部物理部件損壞。比如機械硬盤的磁頭定位出了問題,音圈無法校準(zhǔn),電機出現(xiàn)機械故障,轉(zhuǎn)速不穩(wěn)或者不轉(zhuǎn),各種傳感器出了問題,等等。固態(tài)硬盤PCB上的電容出了問題,供電部分出了問題,等等。這種損毀,是可以通過開盤修復(fù)數(shù)據(jù)的,數(shù)據(jù)恢復(fù)公司可以承接這類業(yè)務(wù)。
1.3 硬盤內(nèi)部軟件崩潰或bug。比如硬盤固件崩潰,啟動參數(shù)錯誤導(dǎo)致固件無法啟動?;蛘吖碳ug、硬件bug導(dǎo)致數(shù)據(jù)邏輯上的靜默損毀。
1.4 數(shù)據(jù)上層邏輯層面的損毀。最典型的比如誤刪了數(shù)據(jù),中了病毒等。誤刪數(shù)據(jù)和中病毒純屬人為導(dǎo)致,與系統(tǒng)無關(guān)。
1.5 數(shù)據(jù)底層邏輯層面的損壞。出現(xiàn)不可修復(fù)亂碼,文件系統(tǒng)丟失或者文件錯亂,卷丟失或者容量錯亂,等。這些就屬于底層系統(tǒng)問題。冬瓜哥的兩篇文章大家可以擴展閱讀:原子寫,靜默損毀。
2.數(shù)據(jù)的恢復(fù)方法
數(shù)據(jù)丟了就得恢復(fù),如果你沒有快照和備份的話,就只能用下面方式嘗試恢復(fù)數(shù)據(jù)。
2.1 軟件修復(fù)邏輯錯誤。一些誤刪除的數(shù)據(jù),只要對應(yīng)文件所在的區(qū)域還沒有被分配給其他文件并寫入新數(shù)據(jù),一些數(shù)據(jù)恢復(fù)軟件可以通過掃描文件系統(tǒng)元數(shù)據(jù)的方式來將文件恢復(fù)出來。一些更專業(yè)的恢復(fù)工具(一般都是數(shù)據(jù)恢復(fù)公司自己開發(fā)的)可以識別更精細(xì)深度的數(shù)據(jù),做更智能的分析,從而將數(shù)據(jù)恢復(fù)出來,還有可能提供多個不同的恢復(fù)出來的副本供用戶選擇那個正確率最高的。
2.2 開盤修復(fù)物理損毀。發(fā)生盤內(nèi)固件等損毀時,整個硬盤已經(jīng)無法正常工作,此時一般需要返廠,或者找專業(yè)數(shù)據(jù)恢復(fù)公司,通過特殊接口恢復(fù)固件,或者直接做開盤修復(fù),繞過原生固件,直接控制。
2.3 各種Raid。Raid可以防止單盤數(shù)據(jù)的部分或者整體的數(shù)據(jù)物理損壞以及由于系統(tǒng)層導(dǎo)致的邏輯損壞,比如某個硬盤寫入時發(fā)生靜默損毀,但是Raid組中其他盤上的數(shù)據(jù)依然是完好的,此時,讀出數(shù)據(jù)時發(fā)現(xiàn)校驗有誤,就可以從Raid條帶中其他數(shù)據(jù)塊讀出數(shù)據(jù)恢復(fù)出目標(biāo)數(shù)據(jù)。但是Raid無法防止上層的邏輯損壞,比如誤刪、中病毒等,因為這種數(shù)據(jù)是在源頭就被損毀了,已經(jīng)被損毀的數(shù)據(jù)寫入到Raid系統(tǒng)之后,后者對這種層面的損毀無法感知。
2.4 多副本(Raid1)。多副本是大型互聯(lián)網(wǎng)廠商慣用的架構(gòu),由于普遍采用分布式系統(tǒng),跨網(wǎng)絡(luò)做校驗型Raid的話不適合隨即寫入場景,只適合大塊順序?qū)懭?,而且寫一次讀多次場景比如網(wǎng)盤之類。而更多場景只能采用跨網(wǎng)絡(luò)的非校驗型Raid,那就是Raid1了,或者說多副本,存三份,一主兩副。多副本的本質(zhì)還是Raid,所以無法防止上層邏輯層面的損毀,也就是說,無法防止源頭上的數(shù)據(jù)損毀。
所以,多副本和Raid基本上只能防止硬盤級的物理故障,和底層邏輯層面故障。顯然,只靠這兩個操作,數(shù)據(jù)仍然是不安全的。
3.多副本和Raid頂不了快照備份容災(zāi)
數(shù)據(jù)邏輯層損毀,這是被很多用戶完全忽略掉的。很不幸,多數(shù)用戶依然認(rèn)為Raid和多副本,數(shù)據(jù)安心無憂。那么到底如何防止數(shù)據(jù)源頭上的損毀?無法防止,這種損毀永遠都是存在的,比如中了勒索病毒,黑客入侵,騰訊云的這次人為操作失誤,不過騰訊云這次也的確加強了這方面管理。雖然無法做到事前防止,但是可以做到事后恢復(fù)。有2個技術(shù)可以做到:快照、備份。
3.1 快照的重要性??煺障喈?dāng)于對用戶的數(shù)據(jù)拍了一張歷史照片,用戶可以做多個不同時間點的快照,將那些數(shù)據(jù)沒有損壞的時刻的數(shù)據(jù)映像保存下來。快照有個特點就是它的尺寸會隨著數(shù)據(jù)更改的量而增加,如果數(shù)據(jù)不更改,則快照占用的空間只是那些記錄表等元數(shù)據(jù)空間,可忽略不計。所以,只要數(shù)據(jù)沒有在底層發(fā)生邏輯或者物理損壞,那么歷史快照就可以被用于快速恢復(fù)或者回滾。
3.2 備份的重要性??煺湛梢杂糜诳焖倩貪L數(shù)據(jù),但是快照本身并不是備份??煺毡举|(zhì)上是:指針表+增量數(shù)據(jù)塊。它保存的只是增量數(shù)據(jù)塊,而如果基礎(chǔ)數(shù)據(jù)塊有任何邏輯或者物理錯誤,快照就會一損俱損。此時,必須將數(shù)據(jù)完完整整的復(fù)制出一份或者多份保存,與生產(chǎn)數(shù)據(jù)完全脫離。但是備份和恢復(fù)數(shù)據(jù)時,由于存在完整拷貝,需要更長時間,架構(gòu)也更復(fù)雜,比如塊級備份、CDP、文件極、數(shù)據(jù)庫級等等。
3.3 容災(zāi)的重要性。數(shù)據(jù)備份一般與生產(chǎn)數(shù)據(jù)放在同一個數(shù)據(jù)中心,在發(fā)生大型災(zāi)難時,整個數(shù)據(jù)中心可能被損毀。所以需要容災(zāi),而容災(zāi)一般是實時的,生產(chǎn)系統(tǒng)的寫I/O數(shù)據(jù)會被實時的復(fù)制到遠端的數(shù)據(jù)中心。目前有些做備份容災(zāi)一體機的廠商,都支持云-本地、多云容災(zāi)。
4.云用戶的數(shù)據(jù)保障
綜合而言,數(shù)據(jù)安全等級如下圖所示。
對于云用戶而言,多副本、快照、備份,最好都用,起碼做到快照不要停,這是你唯一的速效后悔藥。值得一提的是,這次丟數(shù)據(jù)的騰訊云反而針對每塊云盤提供了7個免費快照額度,而其他廠商都是收費的,價格從一毛五到三毛五每GB/月不等。
根據(jù)上表顯示,快照業(yè)務(wù)收費微軟的Azure和亞馬遜AWS基本相當(dāng),而國內(nèi)阿里云的一毛四分八厘每GB每月有點滑稽,為何不干脆一毛五算了。而騰訊云則是不限容量,直接為每個云盤提供免費快照,但是上限為7個,一般來講還是可以滿足日?;貪L需求的。騰訊云和阿里云的自動快照時間粒度精確到小時,也就是說RPO額定為1小時。而微軟僅支持手動快照,AWS的額定RPO要長一些,為12小時,處于劣勢。
如果碰到不可修復(fù)或者人為損壞,除了從云廠商日常運維規(guī)程方面入手解決之外,用戶自身也決不能100%依靠云,必須同時購買云廠商提供的備份服務(wù),或者自己部署云-本地備份系統(tǒng),自己留一份,雖然不是最新的數(shù)據(jù),但是關(guān)鍵時刻好死不如賴活著。借用最近p2p暴雷的段子:雞蛋不能放到一個籃子里,但是如果所有籃子都在一輛車上,整個車翻了,無人幸免。前沿數(shù)控公司如果當(dāng)時購買了備份服務(wù)的話,或者起碼定期把數(shù)據(jù)從云端備份到本地的話,也不至于像現(xiàn)在這樣的結(jié)果。