記一次redis磁盤故障

故障描述

redis機器的一個ssd盤出故障,只能讀不能寫。其他盤寫入速度也很慢。導(dǎo)致redis實例的aof刷新一直失敗,最終掛掉。


故障原因

ssd盤早期沒有格式化好,4k對齊沒做好


處理過程

該redis機器是用來存儲collector采集到的日志的meta信息,比較關(guān)鍵,而且一臺機器上開啟了8個redis實例,所以不好處理。

一開始準備把redis的aof文件轉(zhuǎn)移到一個新的盤上,并且把aof的dir動態(tài)更改到其他盤,結(jié)果發(fā)現(xiàn)redis實例掛掉了,就沒有動態(tài)更換aof目錄。這其中,redis的數(shù)據(jù)可能有所丟失,不過通過collector和redis日志發(fā)現(xiàn),磁盤掛了后redis寫入已經(jīng)失敗,估計有丟失數(shù)據(jù)也不多。collector有實現(xiàn)meta寫入redis失敗時轉(zhuǎn)為寫入本地磁盤,所以在redis實例down掉時,數(shù)據(jù)也不會丟失。

34 * 512 / 4096 = 4.25 ? 非整數(shù),4k沒對齊,有幾塊沒做好。

接著,處理4k對齊。先把所有redis實例進行bgwrite. ?redis-cli -h redis02 -p 6379 bgrewriteaof, 停掉所有redis實例。

處理4k對齊, 重啟機器。結(jié)果發(fā)現(xiàn)機器重啟失敗,陣列卡或線松了。

重啟機器后,趕緊把所有aof文件都備份到其他機器上。結(jié)果有發(fā)現(xiàn),有一塊盤丟了,嘗試mount回來。發(fā)現(xiàn)有很多block錯誤,要修復(fù)又怕丟數(shù)據(jù)。但現(xiàn)在盤有錯誤,只能先fsck修復(fù),如果修復(fù)成功再從里面拷貝出來。要是覺得不保險,就先備份正常盤的數(shù)據(jù),空出一塊盤,把cache3的盤做個鏡像,再做修復(fù)。最后aof文件終于弄出來了,啟動redis實例,發(fā)現(xiàn)aof文件有問題,啟動失敗。使用redis-check-aof --fix修復(fù)了aof文件,再啟動,成功。redis數(shù)據(jù)是被截斷一部分丟失了。

數(shù)據(jù)恢復(fù)后,開始重新把redis機器上的ssd盤一個個重新格式化。


經(jīng)驗教訓(xùn)

因為redis的meta信息,是銜接collector采集,以及storm處理和hadoop camus入庫。本次redis故障,大動干戈,對集群影響比較大。

還好collector有redis失敗轉(zhuǎn)存文件的功能,所以日志采集一直正常。

接下來的深圳新機房,存儲meta的redis準備使用cluster,避免單點故障。保障可用性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NOSQL類型簡介鍵值對:會使用到一個哈希表,表中有一個特定的鍵和一個指針指向特定的數(shù)據(jù),如redis,volde...
    MicoCube閱讀 4,150評論 2 27
  • Redis雜談 Redis是近年來發(fā)展迅速的內(nèi)存數(shù)據(jù)庫,網(wǎng)上也已經(jīng)有多Redis的文章。但不管是英文還是中文,多數(shù)...
    迷失于重逢閱讀 1,698評論 0 14
  • 本文翻譯自官方文檔http://redis.io/topics/persistence 。 Redis 持久化 R...
    六尺帳篷閱讀 1,686評論 1 15
  • 小歐和她的小狗狗相遇的時候,是在一個飄著柳絮的春天。彼時的她正在一條林蔭小路上閑逛,那只小狗在路旁覓食,小狗看到她...
    YAYAangel7766閱讀 690評論 0 1
  • 我要踏遍萬里河山 走在歷史的長廊上 看著以前大唐的繁華 北戴河的波濤、雨巷的幽靜 回暮流過無數(shù)英雄鮮血的疆土 或是...
    小笑易亦閱讀 180評論 0 0

友情鏈接更多精彩內(nèi)容