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