還在把資料備份到謎之 D 槽嗎? 現在都什麼時候了? 2020 年,這篇文章將提到怎麼利用現代科技進行資料的備份與恢復,Elastic 提供的快照功能,搭配對應的 plugins 能將資料備份到不同的雲端儲存服務。
Elastic Cloud Snapshots
為什麼備份跟快照很重要?
- 快照可以在不影響系統運行的狀況下做快速且低成本的備份
- 遇到病毒感染或錯誤可以用最快的速度恢復系統運行,通常做快照跟備份的位置會是不同的機台與服務,所以當主要的虛擬機被打掛了,快照跟備份還會活得好好的
Elastic Snapshots 可以做什麼?
在啟用 Elastic Cloud 服務後,會預設幫我們啟動快照的功能,快照預設自動每 30 分鐘做一次且會透過 Repositories 進行存放。
Repositories 可以是本機或是任何遠端有提供支援 plugins 的雲端服務像是 Amazon S3、HDFS、Microsoft Azure、Google Cloud Storage 等等,目前 7.6 版以上就可以透過 kibana 的 GUI 進行快照跟恢復的動作了,可以說是非常方便。
建立快照與恢復
首先第一個步驟就是要註冊 Repository,Stack Management > Data > Snapshot and Restore
點選 Repositories 的 Tab 就可以進行建立,當然也可以透過 API 的方式進行,這個部分可以參考相關文件,目前 Elastic Cloud 試用帳號只支援 AWS S3 跟 GCP,這個帳號目前是建立在 GCP 上。
- 建立 Repository
Kibana 的介面中
也有提供支援 S3,要使用其他平台應該就要裝額外的 plug-in,這個部分目前沒有去嘗試
Elastic Cloud Enterprise 的介面也是類似
- 建立快照並設定相關週期,透過 GUI 其實蠻方便的,就是下一步下一步。
建立的過程中可以設定像是要多久快照一次快照保存多久
設定完成後也可以在 Policy 的 Tab 進行管理
Snapshots 可以看到系統自動製作的快照列表
- 從快照恢復資料,從快照恢復也很方便就是點選然後按恢復就完成,也同樣能透過 API 進行操作。
從快照恢復資料
SLM (snapshot lifecycle management)
這篇文章示範的 UI 背後其實是一套叫做 SLM (snapshot lifecycle management) 的管理機制,會自動依照設定的 SLM policy 做備份跟老舊快照的移除,也提供相關 API 提供管理,更詳細的資訊可以參考SLM 相關文件,底下附上 API 的範例,看完之後建議直接使用 Kibana 的介面,畢竟 Kibana 已經做好 API 的串接。
1 | curl -X PUT "localhost:9200/_slm/policy/nightly-snapshots?pretty" -H 'Content-Type: application/json' -d' |
喜歡這篇文章,請幫忙拍拍手喔 🤣