当前位置: 首页 > news >正文

Restore Volume 操作 - 每天5分钟玩转 OpenStack(60)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前面我们 backup 了 voluem,今天我们将讨论如何 restore volume。

restore 的过程其实很简单,两步走:

  1. 在存储节点上创建一个空白 volume。

  2. 将 backup 的数据 copy 到空白 voluem 上。

下面我们来看 restore 操作的详细流程:

  1. 向 cinder-api 发送 backup 请求

  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 的启动盘。

 

转载于:https://my.oschina.net/u/2397560/blog/712088

相关文章:

  • jsp页面实现局部刷新
  • k8s如何管理Pod
  • 全屏无标题栏解决方法
  • SQL Server 2008 中SQL查询语句中字段值不区分大小写问题处理
  • 初识JavaScript
  • iOS: 如何调节UITabbarItem的图片和文字位置
  • Python学习笔记——文件写入和读取
  • C/C++动态分配与释放内存的区别详细解析
  • I.MX6 简单电路模拟USB设备的插入
  • MySQL备份 博客---MYSQLDBA 黄杉
  • java-工具-Webservice wsdl解析
  • 重定向 管道
  • [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
  • 微信公众号开发小记——5.python微信红包
  • Android 开发之布局细节对比:Gravity相关
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • canvas 五子棋游戏
  • Codepen 每日精选(2018-3-25)
  • Create React App 使用
  • eclipse(luna)创建web工程
  • Iterator 和 for...of 循环
  • Java比较器对数组,集合排序
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • learning koa2.x
  • Lucene解析 - 基本概念
  • MobX
  • MYSQL 的 IF 函数
  • nodejs:开发并发布一个nodejs包
  • Quartz初级教程
  • spring cloud gateway 源码解析(4)跨域问题处理
  • win10下安装mysql5.7
  • windows-nginx-https-本地配置
  • Yii源码解读-服务定位器(Service Locator)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 服务器从安装到部署全过程(二)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关于extract.autodesk.io的一些说明
  • 记一次和乔布斯合作最难忘的经历
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 蓝海存储开关机注意事项总结
  • 理解在java “”i=i++;”所发生的事情
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 数据科学 第 3 章 11 字符串处理
  • 算法---两个栈实现一个队列
  • #include
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (黑马C++)L06 重载与继承
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)80c52学习之旅-起始篇
  • (一)WLAN定义和基本架构转
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建