如何避免騰訊云徹底搞丟“天價(jià)數(shù)據(jù)”事件再次發(fā)生?
前沿?cái)?shù)控的程序員,登錄云服務(wù)器時(shí),發(fā)現(xiàn)無(wú)法登錄,于是反饋給騰訊云。得到的回復(fù)是,北京三區(qū)部分云硬盤(pán)出現(xiàn)故障,正在緊急恢復(fù)中。
幾天后,騰訊云告知前沿?cái)?shù)控,這些數(shù)據(jù)丟了,再也找不回來(lái)了。這時(shí),雙方開(kāi)始進(jìn)入賠償協(xié)商。
但是因?yàn)榍把財(cái)?shù)控索賠1101.6萬(wàn)元,而騰訊云只愿意賠償13.29萬(wàn),所以雙方陷入了僵持。
而這件事之所以,成為新聞,就是因?yàn)榍把財(cái)?shù)控,在9個(gè)9(騰訊云承諾99.9999999%的數(shù)據(jù)可靠性)的騰訊云上的數(shù)據(jù),徹底丟失了。
騰訊云表示,“雖經(jīng)多方努力,最終仍有部分?jǐn)?shù)據(jù)完整性校驗(yàn)失敗。經(jīng)過(guò)分析,該硬盤(pán)靜默錯(cuò)誤是在極小概率下被觸發(fā)”。
對(duì)于本次事件和云服務(wù)使用攻略,互聯(lián)網(wǎng)運(yùn)維技術(shù)專(zhuān)家劉曉明給CSDN投稿,詳細(xì)為大家分析了“騰訊云與前沿?cái)?shù)控的磁盤(pán)數(shù)據(jù)丟失事件”。
以下為正文:
8月6日,騰訊云官微發(fā)布關(guān)于用戶(hù)“前沿?cái)?shù)控”數(shù)據(jù)完整性受損及騰訊云補(bǔ)償措施的說(shuō)明 。近日,騰訊云用戶(hù)“前沿?cái)?shù)控”平臺(tái)一塊操作系統(tǒng)云盤(pán),因受所在物理硬盤(pán)固件版本Bug導(dǎo)致的靜默錯(cuò)誤(寫(xiě)入數(shù)據(jù)和讀取出來(lái)的不一致)影響,文件系統(tǒng)元數(shù)據(jù)損壞。
騰訊云表示,監(jiān)控到異常后,第一時(shí)間向用戶(hù)告知故障狀態(tài),并立即組織文件系統(tǒng)專(zhuān)家并聯(lián)合廠商技術(shù)專(zhuān)家嘗試修復(fù)數(shù)據(jù)。雖經(jīng)多方努力,最終仍有部分?jǐn)?shù)據(jù)完整性校驗(yàn)失敗。經(jīng)過(guò)分析,該硬盤(pán)靜默錯(cuò)誤是在極小概率下被觸發(fā),騰訊云隨即對(duì)固件版本有Bug的硬盤(pán)全部進(jìn)行下線處理,確保相關(guān)隱患全部排除。
作為運(yùn)維專(zhuān)家,純從技術(shù)角度分析騰訊云與前沿?cái)?shù)控的磁盤(pán)數(shù)據(jù)丟失事件,避免類(lèi)似的問(wèn)題再次發(fā)生。
硬盤(pán)固件詳解和數(shù)據(jù)保護(hù)機(jī)制
固件又稱(chēng)Firmware,就是“固化在硬件中的軟件”,不太恰當(dāng)?shù)呛美斫獾木褪牵汗碳褪怯脖P(pán)的操作系統(tǒng)。固件firmware是安裝在硬盤(pán)的一個(gè)小記憶芯片上的,用于引導(dǎo)硬盤(pán)工作。擔(dān)任著一個(gè)系統(tǒng)最基礎(chǔ)最底層的工作。是用匯編語(yǔ)言編寫(xiě)的引導(dǎo)命令、控制語(yǔ)句和執(zhí)行語(yǔ)句,協(xié)調(diào)和控制硬盤(pán)各個(gè)內(nèi)部部件之間相互作用。
對(duì)于固件的保存位置來(lái)說(shuō),不同品牌的硬盤(pán)各不相同。硬盤(pán)在工作時(shí),用戶(hù)可以訪問(wèn)的是零磁道以后的位置,因此固件區(qū)是無(wú)法訪問(wèn)的。只有通過(guò)專(zhuān)業(yè)工具,將硬盤(pán)置于工廠狀態(tài)下,才能實(shí)現(xiàn)對(duì)硬盤(pán)進(jìn)行讀寫(xiě)固件區(qū)信息、獲取固件區(qū)模塊和表格配置圖、獲取扇區(qū)分配表、進(jìn)行LBA(邏輯地址)與CHS(物理地址)互換、進(jìn)行低級(jí)格式化以及讀、寫(xiě)硬盤(pán)的閃存芯片等操作。
固件就是硬件設(shè)備的靈魂,因?yàn)橐恍┯布O(shè)備除了固件以外沒(méi)有其它軟件組成,因此固件也就決定著硬件設(shè)備的功能及性能。在硬盤(pán)中,固件負(fù)責(zé)驅(qū)動(dòng)、控制、解碼、傳送、檢測(cè)等工作,如管理數(shù)據(jù)的存放位置、記錄己經(jīng)損壞的缺陷扇區(qū)、避免使用過(guò)程中再次用到這些壞的缺陷扇區(qū)、記錄硬盤(pán)在工作中的溫度或出現(xiàn)的錯(cuò)誤 等。少了固件的硬盤(pán)就只是一堆機(jī)械和電子元件,不能正常運(yùn)轉(zhuǎn),更不用說(shuō)在其中讀寫(xiě)數(shù)據(jù)了。
硬盤(pán)固件分為幾個(gè)不同的工作區(qū),不同品牌、不同型號(hào)的硬盤(pán),其工作區(qū)各不相同,不同工作區(qū)的組成模塊也不盡相同,有的硬盤(pán)只有A、B兩個(gè)工作區(qū),而有的硬 盤(pán)有A、B、C 三個(gè)工作區(qū)。硬盤(pán)的固件信息以模塊的形式表現(xiàn)出來(lái),可能每個(gè)模塊記錄一個(gè)信息,也可能一個(gè)模塊記錄多個(gè)信息。這些模塊的大小并不一致,有些模塊只有幾個(gè)字節(jié),有些則達(dá)到幾十個(gè)字節(jié),它們并不是連續(xù)存放的,而是各有其固定的位置。硬盤(pán)固件的信息模塊包括管理模塊、配置和設(shè)置表、缺陷列表以及工作記錄表等。
為了解決為了組合廉價(jià)的小磁盤(pán)來(lái)代替昂貴的大磁盤(pán),同時(shí)在磁盤(pán)失效的時(shí)候能保護(hù)數(shù)據(jù)。引入了RAID機(jī)制,RAID可以充分發(fā)揮出多塊磁盤(pán)的優(yōu)勢(shì),可以提升磁盤(pán)速度,增大容量,提供容錯(cuò)等能力,此種RAID方案被服務(wù)器、存儲(chǔ)廠家延用至今。
RAID 0
又稱(chēng)為Stripe或Striping(分條),即數(shù)據(jù)分條技術(shù)。RAID 0可以把多塊硬盤(pán)連成一個(gè)容量更大的硬盤(pán)群,從而提高磁盤(pán)的性能和吞吐量,要求至少兩個(gè)磁盤(pán)。
優(yōu)點(diǎn) :
讀寫(xiě)性能高,可用容量為各個(gè)磁盤(pán)的容量和;
缺點(diǎn)
無(wú)容錯(cuò),無(wú)冗余,不適用于安全性要求高的類(lèi)型。
RAID 1
又稱(chēng)為Mirror或Mirroring(鏡像)。RAID 1把一個(gè)磁盤(pán)的數(shù)據(jù)鏡像放在另一個(gè)磁盤(pán)上面,在不影響性能的情況下最大限度的保證系統(tǒng)的可靠性和可修復(fù)性。
優(yōu)點(diǎn)
很高的數(shù)據(jù)冗余能力,安全性高 ;
缺點(diǎn)
磁盤(pán)容量是總?cè)萘康囊话?,成本高?/span>
RAID 5
是RAID 0和RAID 1的折衷方案,但沒(méi)有完全使用RAID 1鏡像概念,而是使用了“奇偶校驗(yàn)信息”來(lái)作為數(shù)據(jù)恢復(fù)的方式,需要至少三個(gè)或更多的磁盤(pán)。
優(yōu)點(diǎn)
容錯(cuò)性,數(shù)據(jù)冗余能力,讀性能高,安全性較高 ;
缺點(diǎn)
與RAID 1相比,由于采用的是奇偶校驗(yàn)方式,數(shù)據(jù)保障程度要差一些,而磁盤(pán)利用率要高一些。
RAID 10
又稱(chēng)為鏡像陣列條帶。如RAID 0一樣,數(shù)據(jù)跨磁盤(pán)抽取,也如RAID 1一樣,每個(gè)磁盤(pán)都有一個(gè)鏡像磁盤(pán)。因此RAID 10又稱(chēng)為RAID 0+1。
優(yōu)點(diǎn)
100%數(shù)據(jù)冗余,安全性高 ;
缺點(diǎn)
價(jià)格相對(duì)較高,磁盤(pán)利用率50%。
硬盤(pán)固件Bug?
在騰訊云的公告稱(chēng)因硬盤(pán)固件Bug,導(dǎo)致文件系統(tǒng)元數(shù)據(jù)受損,數(shù)據(jù)無(wú)法恢復(fù)。相信一線的運(yùn)維同學(xué)對(duì)公告也有同樣的疑惑:
硬盤(pán)是哪一品牌的硬盤(pán)?
服務(wù)器或存儲(chǔ)是否進(jìn)行RAID進(jìn)行數(shù)據(jù)保護(hù)?
硬盤(pán)的固件的哪一版本有Bug?升級(jí)到哪個(gè)版本能避免此問(wèn)題?
極小概率觸發(fā)Bug,觸發(fā)的場(chǎng)景又是什么?
存在問(wèn)題硬盤(pán)下線策略是什么,會(huì)不會(huì)對(duì)使用的用戶(hù)有二次影響?
建議把Bug的詳情和升級(jí)方案進(jìn)行公布,讓更多的公司來(lái)避免相似的問(wèn)題,相信也是一種貢獻(xiàn)。
服務(wù)可用性?
騰訊云的承諾的“99.9999999%的數(shù)據(jù)可靠性,搭載了云硬盤(pán)提供三副本存儲(chǔ)策略,保障了數(shù)據(jù)在任何一副本出現(xiàn)故障時(shí)快速進(jìn)行遷移和恢復(fù)”。按照正常思維邏輯,前沿?cái)?shù)控的數(shù)據(jù)有三個(gè)副本,三個(gè)副本不可能在一臺(tái)機(jī)器、同一塊磁盤(pán)上。難道是一個(gè)宣傳銷(xiāo)售的一個(gè)噱頭?
公有云不需要備份?
前沿?cái)?shù)控顯然存在失誤,云服務(wù)的使用者要對(duì)數(shù)據(jù)負(fù)責(zé),不是完全依賴(lài)于云服務(wù)提供商。出現(xiàn)數(shù)據(jù)丟失跟災(zāi)備措施有直接的關(guān)系,建議使用云架構(gòu)方式的企業(yè),所有的數(shù)據(jù)必須進(jìn)行多云或者異地方式進(jìn)行備份。本次騰訊云與前沿?cái)?shù)控的磁盤(pán)數(shù)據(jù)丟失事件就是血的教訓(xùn)。
墨菲定律告訴我們,容易犯錯(cuò)誤是人類(lèi)與生俱來(lái)的弱點(diǎn),不論科技多發(fā)達(dá),事故都會(huì)發(fā)生。而且我們解決問(wèn)題的手段越高明,面臨的麻煩就越嚴(yán)重。所以,我們?cè)谑虑皯?yīng)該是盡可能想得周到、全面一些。
作者簡(jiǎn)介:劉曉明,某知名互聯(lián)網(wǎng)公司運(yùn)維技術(shù)負(fù)責(zé)人,擁有 10 年的互聯(lián)網(wǎng)開(kāi)發(fā)和運(yùn)維經(jīng)驗(yàn)。一直致力于運(yùn)維工具的開(kāi)發(fā)和運(yùn)維專(zhuān)家服務(wù)的推進(jìn),賦能開(kāi)發(fā),提高效能。