Backup Volume 操作 - 每天5分钟玩转 OpenStack(59)

本节我们讨论 volume 的 Backup 操作。
Backup 是将 volume 备份到别的地方(备份设备),将来可以通过 restore 操作恢复。

Backup VS Snapshot

初看 backup 功能好像与 snapshot 很相似,都可以保存 volume 的当前状态,以备以后恢复。但二者在用途和实现上还是有区别的,具体表现在:

  1. Snapshot 依赖于源 volume,不能独立存在;而 backup 不依赖源 volume,即便源 volume 不存在了,也可以 restore。
  2. Snapshot 与源 volume 通常存放在一起,都由同一个 volume provider 管理;而 backup 存放在独立的备份设备中,有自己的备份方案和实现,与 volume provider 没有关系。
  3. 上面两点决定了 backup 具有容灾功能;而 snapshot 则提供 volume provider 内便捷的回溯功能。

配置 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/

本节我们将以 NFS 为 backend 来研究 backup 操作。

在实验环境中,存放 volume backup 的 NFS 远程目录为 192.168.104.11:/backup
cinder-backup 服务节点上 mount point 为 /backup_mount。

需要在 /etc/cinder/cinder.conf 中作相应配置。

然后手工启动 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。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

LibSVM在Java中的简单应用 - 2016-07-14 18:07:36

首先,在这里首先感谢台湾林智仁先生的开源工具包libsvm。使SVM算法更加普及。大家可以到下面的libsvm官网去了解相关的信息。 Libsvm官方网站- https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 其次,我在使用过程中发现,先生svm_scale文件中无法将经过规约的文件输出到本地txt文件中,只能在控制台重定向,而我并不想在程序运行中打开控制台进行较为繁琐的操作。 所以我改造了svm_scale文件,实现了文件的写入,在这里可以和大家分享一下。 改造后新增参
最新消息 Docker在上周的DockerCon技术大会上发布了1.12版核心产品Docker Engine,最大的新特性是Docker Swarm已经被整合到了Docker Engine里面而不再是一个单独的工具了,这样就可以更容易的把多个Docker主机组合成一整个规模更大可靠性更高的逻辑单元。Docker的掌舵者 Adrian Mouat相信这种新的集群模式可以大大增强Docker在相关领域的竞争力。 把Docker Swarm整合进Docker Engine是一个重大改进,但它也只是一个附加功能,
本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。 1. 环境 机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134 操作系统: CentOS 6.6 Java: 1.7 Hadoop: 2.6.0 请确保JDK已安装,使用 java -version 确认。 hosts配置 配置主机hosts文件: vim /etc/hosts 192.168.1.

Docker的安装配置及使用详解 - 2016-07-14 14:07:12

基本概念 Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 先理解了这三个概念,就理解了 Docker 的整个生命周期。 1、docker安装与启动 yum install -y epel-releaseyum install docker-io # 安装docker # 配置文件 /etc/sysconfig/docker chkconfig docker on # 加入开机启动 service docker start # 启动docker服
mahout之推荐系统源码笔记(4) —总结与优化 花了几天的时间阅读分析了mahout推荐系统中基于java单机和基于hadoop的分布式mapreduce源码。根据其推荐系统hadoop程序的job划分写了笔记1、2、3。在这里,基于笔记1,2,3做一个总结。 我们先从相似度开始。 什么是相似度,就是我们在构建推荐系统时,基于user或者基于item都需要计算出相应的候选item或者是user。那么在mahout的hadoop程序中,他运用的是基于item的推荐系统,同样的,也需要计算相似度。 计算相
分享主要分为以下五个部分: HAWQ基本介绍; HAWQ架构以及各重要组件的基本原理; HAWQ的中短期规划; 如何贡献到HAWQ和成为Apache Committer; Q A。 一、HAWQ基本介绍 HAWQ是一个Hadoop原生大规模并行SQL分析引擎,针对的是分析性应用。和其他关系型数据库类似,接受SQL,返回结果集。但它具有大规模并行处理很多传统数据库以及其他数据库没有的特性及功能。主要如下: 对标准的完善支持:ANSI SQL标准,OLAP扩展,标准JDBC/ODBC支持,比其他Hadoop
Hadoop 的 HDFS 集群在使用一段时间后,各个 DataNode 节点的磁盘使用率肯定会出现不平衡的情况,也就是数据量层面的数据倾斜,如图: 引起这种情况的方式很多: 1.        添加新的 Datanode 节点 2.        人为干预将数据的副本数降低或者增加   我们都知道当 HDFS 出现数据不平衡的时候,就会造成 MapReduce 或 Spark 等应用程序无法很好的利用本地计算的优势,而且 Datanode 节点之间也没有更好的网络带宽利用率,某些 Datanode 节点
线性判别分析(Linear Discriminant Analysis) 标签(空格分隔): 监督学习 @author : duanxxnj@163.com @time : 2016-07-11 线性判别分析Linear Discriminant Analysis 线性分类器 判别式函数discriminant functions 从判别式或后验概率到决策面 线性判别分析Linear Discriminant Analysis 二次判别分析QDA Fisher判别式 类间距离 类内距离 Fisher线性判

Jenkins 2.0新时代:从CI到CD - 2016-07-12 14:07:50

2.0 破茧重生 自从去年9月底Jenkins的创始人Kohsuke Kawaguchi提出Jenkins 2.0(后称2.0)的愿景和草案之后,整个Jenkins社区为之欢欣鼓舞,不管是官方博客还是Google论坛,大家都在热烈讨论和期盼2.0的到来。4月20日,历经Alpha(2/29),Beta(3/24),RC(4/7)3个版本的迭代,2.0终于正式发布。这也是Jenkins面世11年以来(算上前身Hudson)的首次大版本升级。那么,这次升级具体包含了哪些内容呢? 外部 从外部来看,2.0最大的
基本流程图如下: 命令如下: 将用sqoop导入Oracle数据到HDFS./sqoop import --connect jdbc:oracle:thin:@192.168.146.128:1521:orcal -- username scoot --passwd tiger --table emp --columns 'empno, ename, job, sal, deptno' -m 1 --target -dir '/sqoop/emp'使用sqoop导入oracle数据到hive中,./sqo