Backup Volume 操做 - 天天5分鐘玩轉 OpenStack(59)

本節咱們討論 volume 的 Backup 操做。python

Backup 是將 volume 備份到別的地方(備份設備),未來能夠經過 restore 操做恢復。api

Backup VS Snapshot

初看 backup 功能好像與 snapshot 很類似,均可以保存 volume 的當前狀態,以備之後恢復。但兩者在用途和實現上仍是有區別的,具體表如今:架構

  1. Snapshot 依賴於源 volume,不能獨立存在;而 backup 不依賴源 volume,即使源 volume 不存在了,也能夠 restore。ide

  2. Snapshot 與源 volume 一般存放在一塊兒,都由同一個 volume provider 管理;而 backup 存放在獨立的備份設備中,有本身的備份方案和實現,與 volume provider 沒有關係。加密

  3. 上面兩點決定了 backup 具備容災功能;而 snapshot 則提供 volume provider 內便捷的回溯功能。spa

配置 cinder-backup

Cinder 的 backup 功能是由 cinder-backup 服務提供的,devstack 默認沒有啓用該服務,須要手工啓用。與 cinder-volume 相似,cinder-backup 也經過 driver 架構支持多種備份 backend,包括 POSIX 文件系統、NFS、Ceph、GlusterFS、Swift 和 IBM TSM。支持的driver 源文件放在 /opt/stack/cinder/cinder/backup/drivers/rest

本節咱們將以 NFS 爲 backend 來研究 backup 操做。日誌

在實驗環境中,存放 volume backup 的 NFS 遠程目錄爲 192.168.104.11:/backup cinder-backup 服務節點上 mount point 爲 /backup_mount。ci

須要在 /etc/cinder/cinder.conf 中做相應配置。rem

而後手工啓動 cinder-backup 服務。

/usr/bin/python /usr/local/bin/cinder-backup --config-file /etc/cinder/cinder.conf

一切準備就緒,下面咱們來看 backup 操做的流程

  1. 向 cinder-api 發送 backup 請求

  2. cinder-api 發送消息

  3. cinder-backup 執行 backup 操做

下面咱們詳細討論每個步驟。

向 cinder-api 發送 backup 請求

客戶(能夠是 OpenStack 最終用戶,也能夠是其餘程序)向 cinder-api 發送請求:「請 backup 指定的 volume。

這裏咱們將 backup volume 「vol-1」,目前 backup 只能在 CLI 中執行。

這裏由於 vol-1 已經 attach 到 instance,須要使用 --force 選項。

cinder-api 接收到 backup volume 的請求。日誌文件在 /opt/stack/logs/c-api.log。

cinder-api 發送消息

cinder-api 發送 backup 消息。cinder-api 沒有打印發送消息的日誌,只能經過源代碼查看 /opt/stack/cinder/cinder/backup/api.py,方法爲 create。

cinder-backup 執行 backup 操做

cinder-backup 收到消息後,經過以下步驟完成 backup 操做,日誌爲 /opt/stack/logs/c-vol.log。

  1. 啓動 backup 操做,mount NFS。

  2. 建立 volume 的臨時快照。

  3. 建立存放 backup 的 container 目錄。

  4. 對臨時快照數據進行壓縮,並保存到 container 目錄。

  5. 建立並保存 sha256(加密)文件和 metadata 文件。

  6. 刪除臨時快照。

Backup 完成後,咱們能夠查看一下 container 目錄的內容

裏面有三個文件,根據前面的日誌咱們能夠知道:

  1. backup-00001,壓縮後的 backup 文件。

  2. backup_metadata,metadata 文件。

  3. backup_sha256file,加密文件。

能夠經過 cinder backup-list 查看當前存在的 backup。

另外咱們能夠查看一下 cinder backup-create 的用法。

這裏有 --incremental 選項,表示能夠執行增量備份。 若是以前作過普通(全量)備份,以後能夠經過增量備份大大減小須要備份的數據量,是個很不錯的功能。增量備份的操做和日誌分析留給你們作練習。

以上就是 volume backup 的分析,下一節咱們討論如何經過 restore 操做恢復備份的 volume。

  

相關文章
相關標籤/搜索