Ceph集群RBD块存储:快照与Copy-on-Write克隆的基本操作

文章目录

    • 1.RBD块存储镜像克隆概念
    • 2.copy-on-write克隆的基本使用
      • 2.1.在块存储中创建一个快照
      • 2.2.将快照配置成保护模式
      • 2.3.基于快照克隆出镜像
      • 2.4.使用克隆的镜像
      • 2.5.查看一个快照下有哪些克隆的镜像

1.RBD块存储镜像克隆概念

镜像克隆官方文档:https://docs.ceph.com/en/pacific/rbd/rbd-snapshot/#getting-started-with-layering

像阿里云、OpenStack等等虚拟化平台,创建一个虚拟机的速度都非常的快,这个原理就和RBD块存储的镜像克隆有关,这个机制叫做copy-on-write,简称COW。

copy-on-write机制其实就是将一个快照快速克隆成了一个写时复制镜像,快照是只读的,写数据都是在克隆的镜像里进行的,使用这个克隆的镜像就可以快速创建出虚拟机。

镜像克隆分为完整克隆和链接克隆两种,完整克隆的速度比较慢 ,链接克隆的速度非常快,相当于Windows中的快捷方式。

链接克隆是基于父镜像(快照)中快速创建出来的一个链接镜像(写时复制镜像),链接镜像读取数据是从父镜像中进行的,写数据是在链接镜像中进行的,通过链接克隆可以快速的克隆出很多个镜像,并行这些镜像都可以直接使用。

链接镜像与父镜像存在依赖关系,一定要将父镜像保护好,如果父镜像丢失,就会导致链接镜像无法使用。

image-20220409144544842

父镜像指的是块设备的快照,从快照中克隆出来的镜像就是子镜像,也就是链接镜像。

父镜像都是只读类型的,将块设备进行快照的创建和保护快照,就可以创建出任意数量的写时复制克隆,也就是链接镜像。

克隆镜像的流程如下:

首先创建出块设备文件,然后基于块设备文件创建一个快照,将快照添加一个保护机制,防止快照被删除,最后从快照中克隆镜像。

image-20220409145439198

copy-on-write克隆常应用于快速创建虚拟机,作为虚拟机使用的iso镜像文件,基于一个环境配置完好的快照,将这个快照通过链接克隆的方式,快速克隆出n个镜像,秒级创建出虚拟机。

2.copy-on-write克隆的基本使用

2.1.在块存储中创建一个快照

[root@ceph-node-1 ~]# rbd snap create pool-test/rbd-storage.img@snap-system-image

[root@ceph-node-1 ~]# rbd snap ls pool-test/rbd-storage.img
SNAPID NAME              SIZE   PROTECTED TIMESTAMP                
     6 snap-system-image 10 GiB           Sat Apr  9 15:09:09 2022

2.2.将快照配置成保护模式

配置成保护模式后,快照将无法删除。

基于快照做克隆,一定要将快照完完整整的保护好,一旦丢失,克隆出来的镜像也无法使用。

[root@ceph-node-1 ~]# rbd snap protect pool-test/rbd-storage.img@snap-system-image

尝试删除快照,发现无法删除。

[root@ceph-node-1 ~]# rbd snap remove pool-test/rbd-storage.img@snap-system-image
Removing snap: 2022-04-09 15:12:10.684 7f4652554c80 -1 librbd::Operations: snapshot is protected0
% complete...failed.
rbd: snapshot 'snap-system-image' is protected from removal.

取消的命令格式:rbd snap unprotect {快照名称}

2.3.基于快照克隆出镜像

[root@ceph-node-1 ~]# rbd clone pool-test/rbd-storage.img@snap-system-image pool-test/vm1-clone.img
[root@ceph-node-1 ~]# rbd clone pool-test/rbd-storage.img@snap-system-image pool-test/vm2-clone.img

[root@ceph-node-1 ~]# rbd -p pool-test ls
ceph-trash.img
rbd-storage.img
vm1-clone.img
vm2-clone.img

克隆的速度非常快,可以查看镜像的信息,发现会包含父镜像的信息,也就是来源于哪个快照克隆的。

[root@ceph-node-1 ~]# rbd info pool-test/vm1-clone.img
rbd image 'vm1-clone.img':
	size 10 GiB in 2560 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: 8ab1b874b899
	block_name_prefix: rbd_data.8ab1b874b899
	format: 2
	features: layering
	op_features: 
	flags: 
	create_timestamp: Sat Apr  9 15:14:10 2022
	access_timestamp: Sat Apr  9 15:14:10 2022
	modify_timestamp: Sat Apr  9 15:14:10 2022
	parent: pool-test/rbd-storage.img@snap-system-image				#父镜像
	overlap: 10 GiB

2.4.使用克隆的镜像

1.将镜像映射成裸磁盘
[root@ceph-node-1 ~]# rbd device map pool-test/vm1-clone.img
/dev/rbd1

2.直接挂在无需格式,因为里面有父镜像的数据
[root@ceph-node-1 ~]# mount /dev/rbd1 /mnt
[root@ceph-node-1 ~]# ls /mnt
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9  lost+found

2.5.查看一个快照下有哪些克隆的镜像

[root@ceph-node-1 ~]# rbd children pool-test/rbd-storage.img@snap-system-image
pool-test/vm1-clone.img
pool-test/vm2-clone.img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636847.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt for android 添加自己的java包

java 包 目录 .pro 中添加 OTHER_FILES $$PWD/android/src/ScytheStudio \$$PWD/android/src/Serial 或 DISTFILES android/src/ScytheStudio \android/src/Serial \或(可以在Qt Creator中显示) DISTFILES android/src/ScytheStudio/*.java \android/src/Serial/*.java \

QQ沐个人引导页html源码

好看的QQ沐个人引导页html源码,鼠标移动滑出美丽的线条收缩特效,界面美观大气,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 …

【分享】3种方法取消PPT的“限制保护”

PPT如果设置了有密码的“只读方式”,每次打开PPT,都会出现对话框,提示需要输入密码才能修改文件,否则只能以“只读方式”打开。 以“只读方式”打开的PPT就会被限制,无法进行编辑修改等操作。那如果后续不需要“限制保…

Springboot阶段项目---《书城项目》

一 项目介绍 本项目采用集成开发平台IntelliJ IDEA开发了在线作业成绩统计系统的设计与实现,实现了图书商城系统的综合功能和图形界面的显示,可以根据每个用户登录系统后,动态展示书城首页图书,实现了分类还有分页查询&#xff0c…

MySQL -- 相关知识点

1.数据库相关介绍 数据库的选择通常取决于具体的应用需求,如性能、扩展性、数据一致性和易用性等因素。 1. 关系型数据库(RDBMS) MySQL: 广泛使用的开源数据库,支持大多数操作系统。强调易用性、灵活性和广泛的社区支…

Flutter Text导致A RenderFlex overflowed by xxx pixels on the right.

使用Row用来展示两个Text的时候页面出现如下异常,提示"A RenderFlex overflowed by xxx pixels on the right." The following assertion was thrown during layout: A RenderFlex overflowed by 4.8 pixels on the right.The relevant error-causing widget was:…

ClickHouse课件

列式存储数据库:hbase clickhouse 简介 ClickHouse入门 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用…

K8S中YAML案例

目录 案例:自主式创建service并关联上面的pod 案例:部署redis 案例:部署myapp 案例:部署MySQL数据库 总结 1.K8S集群中访问流向 K8S集群外部:客户端——nodeIP:nodeport——通过target port——podIP…

【排序算法】堆排序(Heapsort)

✨✨✨专栏:排序算法 🧑‍🎓个人主页:SWsunlight 目录 ​编辑 前言: 一、堆排序: 时间复杂度: 空间复杂度: 算法稳定性: 二、升序的实现:通过建大堆实…

find 几招在 Linux 中高效地查找目录

1. 介绍 在 Linux 操作系统中,查找目录是一项常见的任务。无论是系统管理员还是普通用户,都可能需要查找特定的目录以执行各种操作,如导航文件系统、备份数据、删除文件等。Linux 提供了多种命令和工具来帮助我们在文件系统中快速找到目标目…

百度软件测试面试经历,期望薪资27K

一面 1、 请为百度搜索框设计测试用例? 2、百度设计框上线前需要进行那些测试? 界面测试,功能测试,性能测试,安全性测试,易用性测试,兼容性测试,UI测试。 3、如何查看http状态码…

高通 Android 12/13冻结屏幕

冻结屏幕很多第一次听到以为是Android一种异常现象,实则不然,就是防止用户在做一些非法操作导致问题防止安全漏洞问题。 1、主要通过用户行为比如禁止下拉状态栏和按键以及onTouch事件拦截等,不知道请看这篇文章(Touch事件传递流…

WPF模板样式Style用法

在Windows Presentation Foundation (WPF) 中,样式(Style)和模板(Template)是创建丰富且可重用的UI元素的强大工具。样式允许你定义一组属性设置,这些设置可以应用于一个或多个控件,而模板则允许…

Flink-cdc更好的流式数据集成工具

What’s Flink-cdc? Flink CDC 是基于Apache Flink的一种数据变更捕获技术,用于从数据源(如数据库)中捕获和处理数据的变更事件。CDC技术允许实时地捕获数据库中的增、删、改操作,将这些变更事件转化为流式数据,并能够…

正反向shell

正反向shell 在实际的应用场景中一般是先找到可以命令执行的漏洞,如果目标主机没有ncat我们要先执行下载ncat命令在被控的服务器上 正向shell 应用场景:在被控端的访问没有限制的时候,控制端向被控端发起了链接,控制端可以是公…

在aspNetCore中 使用System.Text.Json的定制功能, 将定制化的json返回给前端

C# 默认大写, 而大部分的前端默认小写, 这时候可以如此配置: builder.Services.AddControllers().AddJsonOptions((opt) > {opt.JsonSerializerOptions.PropertyNamingPolicy System.Text.Json.JsonNamingPolicy.CamelCase;opt.JsonSerializerOptions.WriteIndented true…

InfLLM的笔记

文件中提供的代码是一个Python函数chat_loop,它是聊天系统的核心循环。以下是对这段代码逻辑的梳理: 函数定义与参数 chat_loop函数接收多个参数,用于配置聊天模型和聊天环境。参数包括模型路径、设备类型、GPU数量、最大GPU内存、数据类型…

安装测缝计安装事项详解

在建筑和工程领域,测量缝隙和裂缝的准确性对于工程质量和安全性至关重要。测缝计作为一种专业的测量工具,能够帮助工程师和施工人员准确测量和监测建筑结构的缝隙情况,进而采取合适的修复和加固措施,保证建筑物的稳定性和安全性。…

Covalent的CQT质押迁移比率在以太坊上升至13%,超Moonbeam记录

Covalent Network(CQT)作为领先的结构化模块化数据基础设施层,目前其在以太坊上的 CQT 质押比率已超过之前在 Moonbeam 上达到的历史最高水平。自从将质押合约迁移到以太坊不到一个月的时间里,超过总供应量的 13% 的 CQT 代币已被…

Unity中计数器的实现

Unity中计数器的实现 一、前言二、效果与逻辑(一) 实现效果(二)功能逻辑 三、功能代码四、应用实现五、结语 一、前言 最近在开发中用到计数器,但是unity自带的UI组件中没有,所以只好自己手撸了一个&#x…