前言

这个问题是不久前在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快照的更多相关文章

  1. xencenter创建快照和恢复快照

    创建快照 恢复快照

  2. 为elastic的索引做快照并恢复快照到新集群

    1. 为指定的所有做快照 curl -XPUT "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_compl ...

  3. ceph 006 rbd高级特性 rbd快照 镜像克隆 rbd缓存 rbd增量备份 rbd镜像单向同步

    版本 [root@clienta ~]# ceph -v ceph version 16.2.0-117.el8cp (0e34bb74700060ebfaa22d99b7d2cdc037b28a57 ...

  4. 7. Ceph 高级篇 - RBD块设备回收站、快照、克隆

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485298&idx=1&sn=b83fda07 ...

  5. Actifio快照池(snapshot pool)空间占用说明

    快照池是什么? 快照池是根据定义的SLA(Service Level Agreement)来保存应用数据各时间点的黄金副本空间. 快照池空间的消耗 快照池空间由三种不同类型的虚拟磁盘使用: Stagi ...

  6. CEPH块设备创建及快照

    1.创建image rbd create foo --size 1024 {--image-format 2}//创建一个名为foo的image,大小为1024M,当需要克隆快照时,需要添加大括号中的 ...

  7. Ceph 块设备 - 命令,快照,镜像

    目录 一.Ceph 块设备 二.块设备 rbd 命令 三.操作内核模块 四.快照基础 rbd snap 五.分层快照 六.镜像 rbd mirror 七.QEMU 八.libvirt 九.Openst ...

  8. 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设备直接分 ...

  9. 基于Ceph快照的异地灾备设计

    作者:吴香伟 发表于 2017/02/06 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 喜欢请点击右边打赏,谢谢支持! 引子 技术改变生活. 越来越方便的手机 ...

随机推荐

  1. centos6.8 配置 yum 仓库

    挂载方式 mkdir /mnt/cdrom 加载光盘: mount /dev/cdrom /mnt/cdrom/ 挂载光盘到 /mnt/cdrom/ 挂载成功 cd /etc/yum.repos.d/ ...

  2. [转]CSS学习笔记

    原文:http://www.fx114.net/qa-266-93710.aspx 01.什么是CSS.    CSS指层叠样式表(Cascading Style Sheets).    ·样式定义如 ...

  3. asp.net 获取网站根目录总结 Global.asax文件里获取获取网站根目录

    1:  获取网站根目录的方法有几种如: Server.MapPath(Request.ServerVariables["PATH_INFO"])Server.MapPath(&qu ...

  4. 干掉hao123的第n+1种方法

    最近看见我小弟无精打采的样子,问他怎么了,他说所有浏览器主页被hao123流氓劫持了,嚯,这回流氓碰同行--没辙. 我说这多大点事,百毒一下,以毒攻毒.于是便有了下面的这些方法: 适合小白: 第一种: ...

  5. 如何解决 An error occured executing the Microsoft VC+runtime installer

    安装 postgresql 时遇见了 这个问题 There  has been an error.An error occured executing the Microsoft VC+ runtim ...

  6. PowerShell类grep

    PowerShell类grep 方法一: windows下没有grep不过有findstr, 功能差不多 方法二: powershell自带的正择功能 xxx | where {$_ -match & ...

  7. springboot集成spring security(一)

    一,添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  8. 那些鼓吹国内首个.NET 5框架的,该醒醒了!

    前两天看过园子里有篇[国内首个 .NET 5 框架 XX 斩获 XXX stars,XXX 发布],一顿羡慕嫉妒恨啊.我这.net core 3.1才上手没几天,还没用热乎呢,你这.NET 5的框架都 ...

  9. 2020-2021-1 20209306 《linux内核原理与分析》第二周作业

    一.实验一内容及分析 1.实验一内容过程截图 2.实验一完成后收获 可以看到汇编代码中出现了eax.esp.ebp.eax是累加寄存器,esp是堆栈指针寄存器,ebp是基指针寄存器.汇编代码中用到了m ...

  10. linux启动oracle服务 和监听

    (1) su - oracle 切换成oracle 用户 (2)sqlplus / as sysdba (3)startup: (4)quit:退出sql模式 exit 退出oracle用户 (5)l ...