雲磁碟故障的技術解讀

騰訊雲磁盤故障導致“前沿數控”數據丟失一事,有關各方進行了一系列解讀,但大多沒有擺脫借題炒作之嫌,真正地技術解讀倒是被棄之一旁,這也是一種悲哀!

在國內環境條件下,對於故障進行技術解讀是一個很困難的事情,主要障礙在於事件的信息披露,牽涉到追責的問題,當事方常常不能如實透露事件真相,從而讓技術解讀成為了無源之水。

與國內大多數故障事件不同,騰訊雲對於雲磁盤故障信息披露,實事求是的態度值得點贊!

試想如果騰訊雲堅持以“部分雲硬盤IO異常”為由進行搪塞,那麼真相就不會公之於眾,更談不上什麼技術分析。就像人會生病一樣,IT系統會發生故障,其實是最正常不過的事情,沒有什麼好隱瞞的!

在8月8日聲明中,騰訊雲故障進行了還原。

首先是雲存儲系統擴容要進行數據遷移,在數據遷移過程中,為了追求速度,人為/運維違章操作,沒有進行數據校驗,原有數據過早刪除。恰逢磁盤靜默錯誤,導致數據無法恢復!

這裡提到了磁盤靜默錯誤,簡單說就是數據處理過程都是正常的,但是使用時才會發現數據錯誤,造成靜默數據錯誤,磁盤本身的原因主要是固件錯誤以及硬盤介質本身的原因(如噪聲、電磁等)。

橫向擴展和數據遷移

此次故障原因清楚了,但也衍生、延展出來更多技術話題。

首先,數據遷移是由存儲系統擴容引起的。對於雲存儲來說,不是橫向擴展Scale out嗎?擴容就是了,為什麼要進行數據遷移呢?

這是一個非常有意思的話題。

為此,我也請教了軟件定義存儲的專業廠商,得到鵬雲網絡、華雲網際等廠商專家的支持!在技術方面,他們是很有實力的廠商。以鵬雲網絡為例,創始人陳靚曾長期擔任美國亞馬遜AWS 核心構架師,帶領團隊進行 S3 雲存儲系統深度優化,並主持 Glacier 存儲系統的設計和研發。

專家提示說,軟件定義存儲或者稱雲存儲有不同的技術實現方式,有Paxos /Raft 、Zookeeper、DHT(Distributed Hash Table)等不同元數據管理方法。

其中,DHT是根據一致性哈希的方式計算出來,其好處是極大降低了元數據服務存儲壓力和訪問壓力。但弱點在於對於容量規模要有很好的預計,如果涉及添加節點,移除節點,添加磁盤,移除磁盤的情況,由於哈希環會發生變化,一部分數據需要重新分佈,會在集群中產生不必要的數據遷移,而且數據量往往非常大。

這也是為什麼,有推測認為騰訊雲存儲採用了DHT方式來構建,當然推測未經過證實。

實際上,即使不採用DHT。雲存儲單一資源池的規模也是有上限的,也就是說,集群內節點數量是由最佳實踐的。以VSAN為例,有64個節點數量的限制;Ceph(DHT)是256,超過出這個限,節點之間網絡通信的複雜度,以及效率都難以得到保障。

對於騰訊雲存儲來說,對外提供公有云服務,同時支持多個用戶,數據規模和增長速度達到上限,這是可以想象的事情。因此,數據遷移在所難免!這一點,鵬雲網絡、華雲網際的專家都是肯定的。

數據遷移的話題

專家指出:數據遷移不是災難,磁盤靜默錯誤也不是大問題,甚至違章操作關閉檢驗也不是致命的問題!

那麼數據是怎麼丟的呢?

實際上,磁盤靜默錯誤是非常小概率的事件,是個別磁盤問題。要知道雲存儲

數據有多副本保護,完全可以應對小概率事件導致的錯誤

試想一下,如果是對雲存儲系統進行完整的數據遷移,即使關閉了校驗,仍然有三副本(或者兩副本)數據存儲,應該可以應對磁盤靜默錯誤。

那麼,副本為什麼沒有發揮作用呢?

據專家推測,其數據遷移的過程並沒有進行完整的數據遷移;估計就是遷移了主數據樣本,並製作了三副本保護,遷移過程違章關閉了檢驗。如果主數據有誤,其製作的副本數據也是錯誤的。加上,原有數據刪除過早,造成了難以挽回的錯誤。

所以數據遷移、靜默錯誤、關閉校驗都不是問題的元兇!一系列問題疊加才是數據丟失的根本原因。

試想,騰訊雲支持租戶眾多,為什麼只有“前沿數控”中招了呢?只能說這是一個小概率事件!

“對於雲存儲或稱軟件定義存儲,高性能和高可擴展度是必須考慮的因素,以鵬雲ZettaStor DBS為例,可從幾臺服務器起步,擴展至上百萬臺服務器規模 , 且保持穩定和高性能。從底層進行磁盤性能優化,實現了同樣數量磁盤3倍以上的性能表現。”專家說。

全流程數據校驗更是需要著重考慮問題。分佈式緩存一致、全流程數據校驗、磁盤修復等全方位技術手段,也是鵬雲ZettaStor DBS的顯著特徵。

快照和備份的話題

當事件發生之後,數據保護肯定是一個繞不開的話題。

很可悲的是,很多雲租戶會認為:備份、快照是雲存儲天生具備的屬性,這樣的想法就太天真了。

一來不是所有的應用都需要保護的;二來如果作為默認的屬性,那麼由此導致的價格提升,這是用戶願意承受的嗎?

有人指出:作為一家1000萬元業務規模的公司,“前沿數據”不知都對數據進行保護,數據處於近乎“裸奔”的狀態,這樣的經營意識也是沒誰了!咎由自取!

類似的事情很多,很多時候,也不是水平和意識的問題,還是跟錢有關係。

數據保護是要花錢的!

而且應對的是小概率事件!

鋌而走險,有時候也是無奈之舉。

那麼,騰訊雲不是提供了免費的快照服務嗎?

既然,如此當事者就應該責怪自己,為什麼不在快照的選項上打個√呢?即使打了√,用戶也應該知道並不是萬事大吉的。

快照有它的作用和限制。

首先,沒有辦法無限制的打快照,因為會影響性能;二來,快照只是記錄了磁盤數據變化的一種狀態,數據恢復需要依賴磁盤原始的數據;單純依賴快照是沒有辦法恢復數據的。

有關數據備份,所針對的包括硬件故障,其這一點的作用和副本是相同;不同之處在於,數據備份還可以針對邏輯故障,在這種情況下,錯誤不是硬件造成的,而是人員操作失誤造成的,如輸入錯誤,刪錯數據等。藉助快照、日誌等數據備份,可以對錯誤進行修正。

一句話,不同的應用需要不同的數據保護。

從雙活數據中心,到CDP、備份,等級不同,效果和作用也不同,當然其費用支出也不同。鋌而走險也是可以的,需要的前提是:你的運氣足夠好!

小結

亡羊補牢,從中汲取教訓是當務之急!

但是更加重要的,還是應該是對於技術的掌握和了解!相同的是:它們都叫軟件定義存儲或者雲存儲,不同的是,他們的技術方案不盡相同。以校驗為例,鵬雲網絡的方案設計、華雲網際、VASN、Ceph的方案設計各不相同。

對於這些不同設計方案的選型,其實沒有捷徑的方法可以選擇!惟有不斷地瞭解技術,並根據應用的實際情況加以選擇,別無他法!


分享到:


相關文章: