Redis容災備份

數據備份的原因
磁盤故障, 節點失效, 諸如此類的問題都可能讓你的數據消失不見, 不進行備份是非常危險的。
備份數據的方式
Redis 對於數據備份是非常友好的, 因爲你可以在服務器運行的時候對 RDB 文件進行復制: RDB 文件一旦被創建, 就不會進行任何修改。 當服務器要創建一個新的 RDB 文件時, 它先將文件的內容保存在一個臨時文件裏面, 當臨時文件寫入完畢時, 程序才使用 rename(2) 原子地用臨時文件替換原來的 RDB 文件。
這也就是說, 無論何時, 複製 RDB 文件都是絕對安全的。
容災備份
Redis 的容災備份基本上就是對數據進行備份, 並將這些備份傳送到多個不同的外部數據中心。容災備份可以在 Redis 運行併產生快照的主數據中心發生嚴重的問題時, 仍然讓數據處於安全狀態。

因爲很多 Redis 用戶都是創業者, 他們沒有大把大把的錢可以浪費, 所以下面介紹的都是一些實用又便宜的容災備份方法:

  • Amazon S3 ,以及其他類似 S3 的服務,是一個構建災難備份系統的好地方。 最簡單的方法就是將你的每小時或者每日 RDB
    備份加密並傳送到 S3 。 對數據的加密可以通過 gpg -c 命令來完成(對稱加密模式)。
    記得把你的密碼放到幾個不同的、安全的地方去(比如你可以把密碼複製給你組織裏最重要的人物)。
    同時使用多個儲存服務來保存數據文件,可以提升數據的安全性。
  • 傳送快照可以使用 SCP 來完成(SSH 的組件)。 以下是簡單並且安全的傳送方法: 買一個離你的數據中心非常遠的 VPS , 裝上
    SSH , 創建一個無口令的 SSH 客戶端 key , 並將這個 key 添加到 VPS 的 authorized_keys 文件中,
    這樣就可以向這個 VPS 傳送快照備份文件了。 爲了達到最好的數據安全性,至少要從兩個不同的提供商那裏各購買一個 VPS
    來進行數據容災備份。
  • 需要注意的是, 這類容災系統如果沒有小心地進行處理的話, 是很容易失效的。最低限度下, 你應該在文件傳送完畢之後,
    檢查所傳送備份文件的體積和原始快照文件的體積是否相同。 如果你使用的是 VPS , 那麼還可以通過比對文件的 SHA1
    校驗和來確認文件是否傳送完整。

另外, 你還需要一個獨立的警報系統, 讓它在負責傳送備份文件的傳送器(transfer)失靈時通知你。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章