幾天前接到一個客戶的求援,說是阿裡雲上誤删除了伺服器,問我有沒有什麼辦法進行恢複,我當時的第一反應是:希望渺茫!因為據我所知,可能是出于資料隐私保護的角度考慮,假如客戶主動删除了ECS,阿裡雲的技術人員也是沒有辦法幫客戶恢複的。
是以我首先詢問有沒有做快照的備份?得到的答複是否定的。這下更懸了,我建議客戶還是盡快清點線下的備份資料吧,大機率是沒轍了。
接下來,客戶的技術人員告訴我們是這樣删除的:

看起來本意就是要删除日志目錄下的所有檔案,但加了一個斜杠把根下的所有檔案及目錄都連根拔起了。
看到這裡情況發生了反轉,我立即告訴客戶,資料可能還有救,因為畢竟隻是Linux下的檔案系統操作,假如沒有後續的寫入操作,通過Linux 的檔案系統調試指令是有可能恢複一些關鍵資料的。這些指令包括debugfs、dd等,具體操作可以自行百度,我在這裡就不再贅述了。
接下來,因為伺服器已經無法登入,需要将伺服器的資料盤挂載到其他伺服器進行恢複,在進行恢複之前還可以為資料盤生成快照以支援随時回退到最初狀态。另外,還可以通過資料盤生成的快照來克隆出新的資料盤用于資料的并行恢複。
最後,客戶那裡傳來喜訊,資料庫全都找了回來,删除并沒有删除到資料庫,可能是管理人員發現情況不對及時終止了删除程序吧。
通過這件事情,客戶為所有的伺服器都配置了自動快照政策,畢竟這樣的驚喜誰也不想要。
其實對于快照很對客戶都存在誤區,認為每一次快照都會占用完整的空間,其實阿裡雲的ECS快照隻會記錄變化的資料塊,當資料的變化不是特别劇烈的情況下快照所占用的空間其實不大。
另外一個啟發就是阿裡雲支援将ECS的系統盤、資料盤先進行解除安裝後再作為資料盤挂載到其他的ECS,這樣出現一些系統無法啟動的問題可以友善的進行故障修複和資料恢複。也可以利用系統盤或資料盤的快照來建立新的資料盤挂載到更多的伺服器來進行并行的恢複操作。
希望上面的案例對大家有所幫助。