rbd的image快照与Pool快照
前言
这个问题是不久前在ceph社区群里看到的,创建image的时候,当时的报错如下:
2016-12-13 23:13:10.266865 7efbfb7fe700 -1 librbd::image::CreateRequest: pool not configured for self-managed RBD snapshot support
rbd: create error: (22) Invalid argument
这个错我之前也没见过,并且因为很少用到快照,所以可能也就没有触发这个问题,在查看了一些资料以后,明白了原因,这里就梳理一下
Ceph实质上有两种Snapshot模式,并且两种Snapshot是不能同时应用到同一个Pool中。
Pool Snapshot: 对整个Pool打一个Snapshot,该Pool中所有的对象都会受影响
Self Managed Snapshot: 用户管理的Snapshot,简单的理解就是这个Pool受影响的对象是受用户控制的。这里的用户往往是应用如librbd。
上面这段话引用自 麦子迈:解析ceph-snapshot
本篇就将讲述下用两种的互斥是如何实现的,又如何解决
实践
我们创建两个存储池
[root@lab8106 ~]# ceph osd pool create testpool1 8
pool 'testpool1' created
[root@lab8106 ~]# ceph osd pool create testpool2 8
pool 'testpool2' created
我们在testpool1当中创建一个image,testpool2保留为空
[root@lab8106 ~]# rbd -p testpool1 create testimage --size 4000
我们检查下存储池
[root@lab8106 ~]# ceph osd dump
···
pool 5 'testpool1' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 85 flags hashpspool stripe_width 0
removed_snaps [1~3]
pool 6 'testpool2' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 82 flags hashpspool stripe_width 0
···
创建了image的存储池多了一个标记 removed_snaps [1~3] ,而没有创建的存储池没有这个标记
我们现在来对两个存储池创建快照
[root@lab8106 ~]# ceph osd pool mksnap testpool1 testpool1-snap
Error EINVAL: pool testpool1 is in unmanaged snaps mode
[root@lab8106 ~]# ceph osd pool mksnap testpool2 testpool2-snap
created pool testpool2 snap testpool2-snap
可以看到创建了image的存储池无法创建存储池的快照,因为存储池当前已经为unmanaged snaps mode了,而没有创建image的 就可以做存储池快照
我们再继续创建image,看下会发生什么
[root@lab8106 ~]# rbd -p testpool1 create testimag2 --size 4000
[root@lab8106 ~]# rbd -p testpool2 create testimag3 --size 4000
2016-12-13 23:31:58.105932 7fd9cb7fe700 -1 librbd::image::CreateRequest: pool not configured for self-managed RBD snapshot support
rbd: create error: (22) Invalid argument
可以看到做了存储池快照的存储池无法创建image了,并且提示了没有配置成self-managed RBD snapshot,创建的时候会去检查是否是自管理模式
这个地方有个配置项目是
rbd_validate_pool = true
我们把这个参数改成false,然后再次创建
[root@lab8106 ~]# rbd -p testpool2 create testimag3 --size 4000
就可以创建了
本篇共出现了两次抛错,所以,这个是需要我们去做好选择的,总结下大概是这样的

总结
本篇总结了快照的两个出错的原因,尽量提前做好规划,再去选择哪种
rbd的image快照与Pool快照的更多相关文章
- xencenter创建快照和恢复快照
创建快照 恢复快照
- 为elastic的索引做快照并恢复快照到新集群
1. 为指定的所有做快照 curl -XPUT "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_compl ...
- ceph 006 rbd高级特性 rbd快照 镜像克隆 rbd缓存 rbd增量备份 rbd镜像单向同步
版本 [root@clienta ~]# ceph -v ceph version 16.2.0-117.el8cp (0e34bb74700060ebfaa22d99b7d2cdc037b28a57 ...
- 7. Ceph 高级篇 - RBD块设备回收站、快照、克隆
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485298&idx=1&sn=b83fda07 ...
- Actifio快照池(snapshot pool)空间占用说明
快照池是什么? 快照池是根据定义的SLA(Service Level Agreement)来保存应用数据各时间点的黄金副本空间. 快照池空间的消耗 快照池空间由三种不同类型的虚拟磁盘使用: Stagi ...
- CEPH块设备创建及快照
1.创建image rbd create foo --size 1024 {--image-format 2}//创建一个名为foo的image,大小为1024M,当需要克隆快照时,需要添加大括号中的 ...
- Ceph 块设备 - 命令,快照,镜像
目录 一.Ceph 块设备 二.块设备 rbd 命令 三.操作内核模块 四.快照基础 rbd snap 五.分层快照 六.镜像 rbd mirror 七.QEMU 八.libvirt 九.Openst ...
- KVM 介绍(7):使用 libvirt 做 QEMU/KVM 快照和 Nova 实例的快照 (Nova Instances Snapshot Libvirt)
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- 基于Ceph快照的异地灾备设计
作者:吴香伟 发表于 2017/02/06 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 喜欢请点击右边打赏,谢谢支持! 引子 技术改变生活. 越来越方便的手机 ...
随机推荐
- 【图论】USACO11JAN Roads and Planes G
题目内容 洛谷链接 Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查.他想把牛奶送到\(T\)个城镇 (\(1 <= T <= 25,000\)),编号为\(1\)到\ ...
- spring boot:使用log4j2做异步日志打印(spring boot 2.3.1)
一,为什么要使用log4j2? log4j2是log4j的升级版, 升级后更有优势: 性能更强/吞吐量大/支持异步 功能扩展/支持插件/支持自定义级别等 这些优 ...
- python 操作conf配置文件方法
参考文章链接:https://blog.csdn.net/qq_23587541/article/details/85019610
- windows10下IntelliJ IDEA使用logback设置日志输出目录
1.在项目的src/main/resources目录下新建文件:logback-spring.xml 2:在logback-spring.xml中进行如下配置: <?xml version=&q ...
- apktool的下载,安装,反编译和重新打包
一.环境要求 安装java 1.8 以上 命令行运行 java -version 返回版本大于1.8 如果没有,请安装java 1.8 二.下载与安装 下载apktool_x.x.x.jar到本地 官 ...
- 一文快速入门分库分表中间件 Sharding-JDBC (必修课)
书接上文 <一文快速入门分库分表(必修课)>,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名, ...
- D. Generating Sets 解析(思維)
Codeforce 722 D. Generating Sets 解析(思維) 今天我們來看看CF722D 題目連結 題目 略,請直接看原題 前言 真的是沒想到... @copyright petje ...
- day1-linux基础命令
1.创建文件 ①touch 1.txt ②echo > 2.txt ③vim 3.txt 以上方式都能直接创建文件 批量创建文件 2.创建目录 ①mkdir /software ②创建连续目录 ...
- 回顾C#各版本特性
C# 6.0 Read-only auto-properties(只读自动属性) 以前版本,声明只读属性时,示例: public string FirstName { get; private set ...
- mysql 事务的日志
事务的日志 1.redo log redo:"重做",记录的是,内存数据页的变化过程 1)作用 在事务ACID过程中,实现的是 "D" 持久化的作用. 2)工作 ...