Restore Volume 操作 - 每天5分鍾玩轉 OpenStack(60)


前面我們 backup 了 voluem,今天我們將討論如何 restore volume。

restore 的過程其實很簡單,兩步走:

  1. 在存儲節點上創建一個空白 volume。

  2. 將 backup 的數據 copy 到空白 voluem 上。

下面我們來看 restore 操作的詳細流程:

  1. 向 cinder-api 發送 restore 請求

  2. cinder-api 發送消息

  3. cinder-scheduler 挑選最合適的 cinder-volume

  4. cinder-volume 創建空白 volume

  5. cinder-backup 將 backup 數據 copy 到空白 volume 上

我們先來看第 1 步。

向 cinder-api 發送 restore 請求

客戶(可以是 OpenStack 最終用戶,也可以是其他程序)向 cinder-api 發送請求:“請 restore 指定的 backup。這里我們將 restore 之前創建的 backup。

目前 restore 只能在 CLI 中執行。

image454.png

cinder-api 接收到 restore 請求。日志文件在 /opt/stack/logs/c-api.log。

這里看到 cinder-api 轉發請求,為 restore 創建 volume。 之后 cinder-scheduler 和 cinder-volume 將創建空白 volume,這個過程與 create volume 一樣,不再贅述。

接下來分析數據恢復的過程。 首先,在 cinder-api 日志中可以看到相關信息。

這里注意日志中的 volume_id 和 backup_id 與前面 backup-restore 命令的輸出是一致的。

下面來看 cinder-backup 是如何恢復數據的。

cinder-backup 執行 restore 操作

日志為 /opt/stack/logs/c-vol.log。

  1. 啟動 restore 操作,mount NFS。

  2. 讀取 container 目錄中的 metadata。

  3. 將數據解壓並寫到 volume 中。

  4. 恢復 volume 的 metadata,完成 restore 操作。

此時,在 GUI 中已經可以看到 restore 創建的 volume。


以上就是 volume restore 的分析,下一節我們討論如何將 volume 作為 instance 的啟動盤。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM