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 objectsorder 22 (4 MiB objects)snapshot_count: 0id: 8ab1b874b899block_name_prefix: rbd_data.8ab1b874b899format: 2features: layeringop_features: flags: create_timestamp: Sat Apr  9 15:14:10 2022access_timestamp: Sat Apr  9 15:14:10 2022modify_timestamp: Sat Apr  9 15:14:10 2022parent: 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/rbd12.直接挂在无需格式,因为里面有父镜像的数据
[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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞睿智能超宽带UWB标签模组,简化设备开发流程,实时高速率数传交互应用

在科技飞速发展的今天,UWB超宽带技术因其高精度、低功耗和高安全性的特点,正逐渐成为智能设备定位和数据传输的新宠。 UWB技术是一种无线通信技术,它通过使用非常宽的频带进行数据传输,从而实现高数据传输速率和高精度定位。 飞…

【机器学习】基于核的机器学习算法应用

大数据时代下,基于核的机器学习算法:原理、应用与未来展望 一、引言二、核函数的概念与重要性三、基于核的算法原理与步骤四、基于核的算法应用实例五、总结与展望 一、引言 在大数据时代的浪潮下,数据的价值被无限放大,而如何高…

java操作Redis缓存设置过期时间

如何用java操作Redis缓存设置过期时间?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 在应用中我们会需要使用redis设置过期时间&…

华为云认证和阿里云认证区别在哪?建议考哪个?

在云计算的浪潮中,专业认证成为提升个人技能和职场竞争力的重要途径。 华为云认证和阿里云认证,作为两大国内云服务商提供的专业技术认证,各自承载着不同的特点和行业认可度,各自以独特的优势服务于企业和个人。 对于追求专业成长…

vue三级联动组件

背景 项目中经常出现三级下拉框组件的要求,这种组件其中一级发生变化,子级的组件就会发生变化如果这一个组件,单独作为搜索条件使用,很好写,同时作为搜索条件和form回写组件,回显就比较困难 子组件代码 将与…

FaceFusion源码框架解读

FaceFusion源码框架解读 我的视频讲解:FaceFusion入门教学 FaceFusion官网 FaceFusion是一款开源的AI换脸工具,一款非常好用的换脸工具,操作简单,上手容易。 Facefusion:GitHub - facefusion/facefusion: Next gene…

我怎么使用AI大语言模型学英语

今天已经是我开始英语拉练任务的第39天了,一直在笃定的、雷打不动的、机械笨拙的重复做一件事,那就是使用AI工具,将我想要说的话翻译成英文,生成语音文件,每天朗读三小时,最终整个背下来。我也在思考&#…

【Java】手把手学会数组的使用

数组的基本用法 创建数组 基本语法: // 动态初始化 数据类型 [] 数组名称 new 数据类型 [] { 初始化数据 }; // 静态初始化 数据类型 [] 数组名称 { 初始化数据 }; 代码示例: int[] array1 {1,2,3,4,5};int[] array2 new int[]…

JS、Go、Rust 错误处理的不同 - JS 可以不用 Try/Catch 吗?

原文:Mateusz Piorowski - 2023.07.24 先来了解一下我的背景吧。我是一名软件开发人员,有大约十年的工作经验,最初使用 PHP,后来逐渐转向 JavaScript。 大约五年前,我开始使用 TypeScript,从那时起&#…

Flume 的基本介绍和安装部署

一、Flume 概述 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的框架服务 Flume 基于流式架构,灵活简单,能够实时读取服务器本地磁盘的数据,将数据写入到 HDFS 二、Flume 基础架构…

Cloneable 接口和深拷贝,浅拷贝

目录 一.Cloneable 接口 二.浅拷贝 三.深拷贝 四.comparable接口、 五.comparator接口 1.Java 中内置了一些很有用的接口 , Cloneable 就是其中之一 . Object 类中存在一个 clone 方法 , 调用这个方法可以创建一个对象的 " 拷贝 ". 2.来说说调用 clone 方法…

基于深度学习的表情识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着人工智能技术的快速发展,表情识别成为了人机交互领域的一个研究热点。表情识别技术旨…

Python数字比大小获取大的数

目录 一、引言 二、数字比较的基本语法 三、获取较大的数 使用条件语句 使用内置函数 四、处理特殊情况 比较非数字类型 处理无穷大和NaN 五、应用实例 在游戏开发中比较分数 在数据分析中找出最大值 六、优化与性能 七、总结 一、引言 在Python编程的广阔天地中…

巧秒用AI写作工具做影视解说文案,效率高!

在自媒体内容输出的快节奏当下,影视解说已经成为一种受欢迎的内容形式。然而,创作高质量的影视解说文案往往需要花费大量的时间和精力。随着人工智能技术的不断发展,AI写作工具为我们提供了一种全新的、高效的解决方案。 AI写作工具利用先进的…

AI服务器 IO互联芯片解决方案pcie switch国产替代博通

服务器是大数据、人工智能、区块链、云计算、元宇宙等的基础设施,全国每年400万台服务器出货,预计 2025年超过500万台(中商产业研究院),高性能企业级互联芯片控制着服务器的神经系统和循环系统。 市场痛点&#xff1…

大厂程序员离职,开发一个盲盒小程序2万,一周开发完!

大家好,我是程序员小孟! 前面接了一个盲盒的小程序,主要的还是商城,盲盒的话只是其中的有一个活动。 现在的年轻人是真的会玩,越来越新的东西出来,越来越好玩的东西流行。 就像最近很火的地摊盲盒。 讲…

第N4周:中文文本分类——Pytorch实现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 数据集:train 一.加载数据 import torch import torch.nn as nn import torchvision from torchvision import transforms,d…

vue3的核心API功能:computed()API使用

常规使用方法: 这样是常规使用方法. 另一种使用方法: 这样分别定义computed的get回调函数和set回调函数, 上面例子定义了plusOne.value的值为1, 那么这时候就走了computed的set回调函数,而没有走get回调函数. 当我们打印plusOne.value的值的时候,走的是get的回调函数而不是…

ios 原生项目迁移flutter第一天环境

由于公司已经有第一个吃螃蟹的项目组,我在迁移的时候想着站在巨人的肩膀上,但是搭配环境一定要问清楚对方flutter版本,路径也要安排好,不然就不行。 对着自己的项目照着葫芦画瓢,我刚开始为了配置管理图个方便随便放&…

Unity3D读取Excel表格写入Excel表格

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、读取Excel表格👉二、写入Excel表格👉三、Fileinfo和Directoryinfo的操作👉四、壁纸分享👉总结 👉前言 有时候难免会遇到读取文件写…