云磁盤故障的技術(shù)解讀 鵬云網(wǎng)絡(luò)ZettaStor有答案
騰訊云磁盤故障導(dǎo)致“前沿?cái)?shù)控”數(shù)據(jù)丟失一事,有關(guān)各方進(jìn)行了一系列解讀,但大多沒(méi)有擺脫借題炒作之嫌,真正地技術(shù)解讀倒是被棄之一旁,這也是一種悲哀!
在國(guó)內(nèi)環(huán)境條件下,對(duì)于故障進(jìn)行技術(shù)解讀是一個(gè)很困難的事情,主要障礙在于事件的信息披露,牽涉到追責(zé)的問(wèn)題,當(dāng)事方常常不能如實(shí)透露事件真相,從而讓技術(shù)解讀成為了無(wú)源之水。
為騰訊云點(diǎn)贊!
與國(guó)內(nèi)大多數(shù)故障事件不同,騰訊云對(duì)于云磁盤故障信息披露,實(shí)事求是的態(tài)度值得點(diǎn)贊!
試想如果騰訊云堅(jiān)持以“部分云硬盤IO異常”為由進(jìn)行搪塞,那么真相就不會(huì)公之于眾,更談不上什么技術(shù)分析。就像人會(huì)生病一樣,IT系統(tǒng)會(huì)發(fā)生故障,其實(shí)是最正常不過(guò)的事情,沒(méi)有什么好隱瞞的!
在8月8日聲明中,騰訊云故障進(jìn)行了還原。
首先是云存儲(chǔ)系統(tǒng)擴(kuò)容要進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)遷移過(guò)程中,為了追求速度,人為/運(yùn)維違章操作,沒(méi)有進(jìn)行數(shù)據(jù)校驗(yàn),原有數(shù)據(jù)過(guò)早刪除。恰逢磁盤靜默錯(cuò)誤,導(dǎo)致數(shù)據(jù)無(wú)法恢復(fù)!
這里提到了磁盤靜默錯(cuò)誤,簡(jiǎn)單說(shuō)就是數(shù)據(jù)處理過(guò)程都是正常的,但是使用時(shí)才會(huì)發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤,造成靜默數(shù)據(jù)錯(cuò)誤,磁盤本身的原因主要是固件錯(cuò)誤以及硬盤介質(zhì)本身的原因(如噪聲、電磁等)。
橫向擴(kuò)展和數(shù)據(jù)遷移
此次故障原因清楚了,但也衍生、延展出來(lái)更多技術(shù)話題。
首先,數(shù)據(jù)遷移是由存儲(chǔ)系統(tǒng)擴(kuò)容引起的。對(duì)于云存儲(chǔ)來(lái)說(shuō),不是橫向擴(kuò)展Scale out嗎?擴(kuò)容就是了,為什么要進(jìn)行數(shù)據(jù)遷移呢?
這是一個(gè)非常有意思的話題。
為此,我也請(qǐng)教了軟件定義存儲(chǔ)的專業(yè)廠商,得到鵬云網(wǎng)絡(luò)、華云網(wǎng)際等廠商專家的支持!在技術(shù)方面,他們是很有實(shí)力的廠商。以鵬云網(wǎng)絡(luò)為例,創(chuàng)始人陳靚曾長(zhǎng)期擔(dān)任美國(guó)亞馬遜AWS 核心構(gòu)架師,帶領(lǐng)團(tuán)隊(duì)進(jìn)行 S3 云存儲(chǔ)系統(tǒng)深度優(yōu)化,并主持 Glacier 存儲(chǔ)系統(tǒng)的設(shè)計(jì)和研發(fā)。
專家提示說(shuō),軟件定義存儲(chǔ)或者稱云存儲(chǔ)有不同的技術(shù)實(shí)現(xiàn)方式,有Paxos /Raft 、Zookeeper、DHT(Distributed Hash Table)等不同元數(shù)據(jù)管理方法。
其中,DHT是根據(jù)一致性哈希的方式計(jì)算出來(lái),其好處是極大降低了元數(shù)據(jù)服務(wù)存儲(chǔ)壓力和訪問(wèn)壓力。但弱點(diǎn)在于對(duì)于容量規(guī)模要有很好的預(yù)計(jì),如果涉及添加節(jié)點(diǎn),移除節(jié)點(diǎn),添加磁盤,移除磁盤的情況,由于哈希環(huán)會(huì)發(fā)生變化,一部分?jǐn)?shù)據(jù)需要重新分布,會(huì)在集群中產(chǎn)生不必要的數(shù)據(jù)遷移,而且數(shù)據(jù)量往往非常大。
這也是為什么,有推測(cè)認(rèn)為騰訊云存儲(chǔ)采用了DHT方式來(lái)構(gòu)建,當(dāng)然推測(cè)未經(jīng)過(guò)證實(shí)。
實(shí)際上,即使不采用DHT。云存儲(chǔ)單一資源池的規(guī)模也是有上限的,也就是說(shuō),集群內(nèi)節(jié)點(diǎn)數(shù)量是由***實(shí)踐的。以VSAN為例,有64個(gè)節(jié)點(diǎn)數(shù)量的限制;Ceph(DHT)是256,超過(guò)出這個(gè)限,節(jié)點(diǎn)之間網(wǎng)絡(luò)通信的復(fù)雜度,以及效率都難以得到保障。
對(duì)于騰訊云存儲(chǔ)來(lái)說(shuō),對(duì)外提供公有云服務(wù),同時(shí)支持多個(gè)用戶,數(shù)據(jù)規(guī)模和增長(zhǎng)速度達(dá)到上限,這是可以想象的事情。因此,數(shù)據(jù)遷移在所難免!這一點(diǎn),鵬云網(wǎng)絡(luò)、華云網(wǎng)際的專家都是肯定的。
數(shù)據(jù)遷移的話題
專家指出:數(shù)據(jù)遷移不是災(zāi)難,磁盤靜默錯(cuò)誤也不是大問(wèn)題,甚至違章操作關(guān)閉檢驗(yàn)也不是致命的問(wèn)題!
那么數(shù)據(jù)是怎么丟的呢?
實(shí)際上,磁盤靜默錯(cuò)誤是非常小概率的事件,是個(gè)別磁盤問(wèn)題。要知道云存儲(chǔ)數(shù)據(jù)有多副本保護(hù),完全可以應(yīng)對(duì)小概率事件導(dǎo)致的錯(cuò)誤。
試想一下,如果是對(duì)云存儲(chǔ)系統(tǒng)進(jìn)行完整的數(shù)據(jù)遷移,即使關(guān)閉了校驗(yàn),仍然有三副本(或者兩副本)數(shù)據(jù)存儲(chǔ),應(yīng)該可以應(yīng)對(duì)磁盤靜默錯(cuò)誤。
那么,副本為什么沒(méi)有發(fā)揮作用呢?
據(jù)專家推測(cè),其數(shù)據(jù)遷移的過(guò)程并沒(méi)有進(jìn)行完整的數(shù)據(jù)遷移;估計(jì)就是遷移了主數(shù)據(jù)樣本,并制作了三副本保護(hù),遷移過(guò)程違章關(guān)閉了檢驗(yàn)。如果主數(shù)據(jù)有誤,其制作的副本數(shù)據(jù)也是錯(cuò)誤的。加上,原有數(shù)據(jù)刪除過(guò)早,造成了難以挽回的錯(cuò)誤。
所以數(shù)據(jù)遷移、靜默錯(cuò)誤、關(guān)閉校驗(yàn)都不是問(wèn)題的元兇!一系列問(wèn)題疊加才是數(shù)據(jù)丟失的根本原因。
試想,騰訊云支持租戶眾多,為什么只有“前沿?cái)?shù)控”中招了呢?只能說(shuō)這是一個(gè)小概率事件!
“對(duì)于云存儲(chǔ)或稱軟件定義存儲(chǔ),高性能和高可擴(kuò)展度是必須考慮的因素,以鵬云ZettaStor DBS為例,可從幾臺(tái)服務(wù)器起步,擴(kuò)展至上百萬(wàn)臺(tái)服務(wù)器規(guī)模 , 且保持穩(wěn)定和高性能。從底層進(jìn)行磁盤性能優(yōu)化,實(shí)現(xiàn)了同樣數(shù)量磁盤3倍以上的性能表現(xiàn)。”專家說(shuō)。
全流程數(shù)據(jù)校驗(yàn)更是需要著重考慮問(wèn)題。分布式緩存一致、全流程數(shù)據(jù)校驗(yàn)、磁盤修復(fù)等全方位技術(shù)手段,也是鵬云ZettaStor DBS的顯著特征。
快照和備份的話題
當(dāng)事件發(fā)生之后,數(shù)據(jù)保護(hù)肯定是一個(gè)繞不開(kāi)的話題。
很可悲的是,很多云租戶會(huì)認(rèn)為:備份、快照是云存儲(chǔ)天生具備的屬性,這樣的想法就太天真了。
一來(lái)不是所有的應(yīng)用都需要保護(hù)的;二來(lái)如果作為默認(rèn)的屬性,那么由此導(dǎo)致的價(jià)格提升,這是用戶愿意承受的嗎?
有人指出:作為一家1000萬(wàn)元業(yè)務(wù)規(guī)模的公司,“前沿?cái)?shù)據(jù)”不知都對(duì)數(shù)據(jù)進(jìn)行保護(hù),數(shù)據(jù)處于近乎“裸奔”的狀態(tài),這樣的經(jīng)營(yíng)意識(shí)也是沒(méi)誰(shuí)了!咎由自取!
類似的事情很多,很多時(shí)候,也不是水平和意識(shí)的問(wèn)題,還是跟錢有關(guān)系。
數(shù)據(jù)保護(hù)是要花錢的!而且應(yīng)對(duì)的是小概率事件!
鋌而走險(xiǎn),有時(shí)候也是無(wú)奈之舉。
那么,騰訊云不是提供了免費(fèi)的快照服務(wù)嗎?
既然,如此當(dāng)事者就應(yīng)該責(zé)怪自己,為什么不在快照的選項(xiàng)上打個(gè)√呢?即使打了√,用戶也應(yīng)該知道并不是萬(wàn)事大吉的。
快照有它的作用和限制。
首先,沒(méi)有辦法***制的打快照,因?yàn)闀?huì)影響性能;二來(lái),快照只是記錄了磁盤數(shù)據(jù)變化的一種狀態(tài),數(shù)據(jù)恢復(fù)需要依賴磁盤原始的數(shù)據(jù);單純依賴快照是沒(méi)有辦法恢復(fù)數(shù)據(jù)的。
有關(guān)數(shù)據(jù)備份,所針對(duì)的包括硬件故障,其這一點(diǎn)的作用和副本是相同;不同之處在于,數(shù)據(jù)備份還可以針對(duì)邏輯故障,在這種情況下,錯(cuò)誤不是硬件造成的,而是人員操作失誤造成的,如輸入錯(cuò)誤,刪錯(cuò)數(shù)據(jù)等。借助快照、日志等數(shù)據(jù)備份,可以對(duì)錯(cuò)誤進(jìn)行修正。
一句話,不同的應(yīng)用需要不同的數(shù)據(jù)保護(hù)。從雙活數(shù)據(jù)中心,到CDP、備份,等級(jí)不同,效果和作用也不同,當(dāng)然其費(fèi)用支出也不同。因此,鋌而走險(xiǎn)也是可以的,需要的前提是:你的運(yùn)氣足夠好!
小結(jié)
亡羊補(bǔ)牢,從中汲取教訓(xùn)是當(dāng)務(wù)之急!
但是更加重要的,還是應(yīng)該是對(duì)于技術(shù)的掌握和了解!相同的是:它們都叫軟件定義存儲(chǔ)或者云存儲(chǔ),不同的是,他們的技術(shù)方案不盡相同。以校驗(yàn)為例,鵬云網(wǎng)絡(luò)的方案設(shè)計(jì)、華云網(wǎng)際、VASN、Ceph的方案設(shè)計(jì)各不相同。
對(duì)于這些不同設(shè)計(jì)方案的選型,其實(shí)沒(méi)有捷徑的方法可以選擇!惟有不斷地了解技術(shù),并根據(jù)應(yīng)用的實(shí)際情況加以選擇,別無(wú)他法!