Restore Volume 操做 - 天天5分鐘玩轉 OpenStack(60)

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

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

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

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

下面咱們來看 restore 操做的詳細流程: 日誌

  1. 向 cinder-api 發送 restore 請求 orm

  2. cinder-api 發送消息 ci

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

  4. cinder-volume 建立空白 volume class

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

咱們先來看第 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 的啓動盤。

 

相關文章
相關標籤/搜索