天天看點

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)失靈時通知你。

繼續閱讀