Ceph 块存储系统 RBD 接口

news2024/11/26 18:39:45

-创建 Ceph 块存储系统 RBD 接口-

1、创建一个名为 rbd-demo 的专门用于 RBD 的存储池

ceph osd pool create rbd-demo 64 64

在这里插入图片描述

2、将存储池转换为 RBD 模式

ceph osd pool application enable rbd-demo rbd

3、初始化存储池

rbd pool init -p rbd-demo			# -p 等同于 --pool

4、创建镜像

rbd create -p rbd-demo --image rbd-demo1.img --size 10G
可简写为:
rbd create rbd-demo/rbd-demo2.img --size 10G

5、镜像管理

//查看存储池下存在哪些镜像
rbd ls -l -p rbd-demo

在这里插入图片描述

//查看镜像的详细信息
rbd info -p rbd-demo --image rbd-demo1.img
rbd image 'rbd-demo.img':
	size 10 GiB in 2560 objects							#镜像的大小与被分割成的条带数
	order 22 (4 MiB objects)							#条带的编号,有效范围是12到25,对应4K到32M,而22代表2的22次方,这样刚好是4M
	snapshot_count: 0
	id: 5fc98fe1f304									#镜像的ID标识
	block_name_prefix: rbd_data.5fc98fe1f304			#名称前缀
	format: 2											#使用的镜像格式,默认为2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten			#当前镜像的功能特性
	op_features: 																	#可选的功能特性
	flags: 

在这里插入图片描述

//修改镜像大小
rbd resize -p rbd-demo --image rbd-demo1.img --size 20G

rbd info -p rbd-demo --image rbd-demo1.img

#使用 resize 调整镜像大小,一般建议只增不减,如果是减少的话需要加选项 --allow-shrink
rbd resize -p rbd-demo --image rbd-demo1.img --size 5G --allow-shrink

在这里插入图片描述
在这里插入图片描述

//删除镜像
#直接删除镜像
rbd rm -p rbd-demo --image rbd-demo2.img
或
rbd remove rbd-demo/rbd-demo2.img

在这里插入图片描述

#推荐使用 trash 命令,这个命令删除是将镜像移动至回收站,如果想找回还可以恢复
rbd trash move rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

rbd trash list -p rbd-demo
5fc98fe1f304 rbd-demo1.img

在这里插入图片描述
在这里插入图片描述

#还原镜像
rbd trash restore rbd-demo/5fc98fe1f304

rbd ls -l -p rbd-demo

在这里插入图片描述

6、Linux客户端使用

客户端使用 RBD 有两种方式:
●通过内核模块KRBD将镜像映射为系统本地块设备,通常设置文件一般为:/dev/rbd*
●另一种是通过librbd接口,通常KVM虚拟机使用这种接口。

本例主要是使用Linux客户端挂载RBD镜像为本地磁盘使用。开始之前需要在所需要客户端节点上面安装ceph-common软件包,因为客户端需要调用rbd命令将RBD镜像映射到本地当作一块普通硬盘使用。并还需要把ceph.conf配置文件和授权keyring文件复制到对应的节点。
//在管理节点创建并授权一个用户可访问指定的 RBD 存储池
#示例,指定用户标识为client.osd-mount,对另对OSD有所有的权限,对Mon有只读的权限
ceph auth get-or-create client.osd-mount osd "allow * pool=rbd-demo" mon "allow r" > /etc/ceph/ceph.client.osd-mount.keyring
//修改RBD镜像特性,CentOS7默认情况下只支持layering和striping特性,需要将其它的特性关闭
rbd feature disable rbd-demo/rbd-demo1.img object-map,fast-diff,deep-flatten
//将用户的keyring文件和ceph.conf文件发送到客户端的/etc/ceph目录下
cd /etc/ceph
scp ceph.client.osd-mount.keyring ceph.conf root@client:/etc/ceph

在这里插入图片描述

//linux客户端操作
#安装 ceph-common 软件包
yum install -y ceph-common

#执行客户端映射
cd /etc/ceph
rbd map rbd-demo/rbd-demo1.img --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount

#查看映射
rbd showmapped
rbd device list

在这里插入图片描述

#断开映射
rbd unmap rbd-demo/rbd-demo1.img

在这里插入图片描述

#格式化并挂载
mkfs.xfs /dev/rbd0

mkdir -p /data/bb
mount /dev/rbd0 /data/bb

在这里插入图片描述

#在线扩容
在管理节点调整镜像的大小
rbd resize rbd-demo/rbd-demo1.img --size 30G

在客户端刷新设备文件
xfs_growfs /dev/rbd0		#刷新xfs文件系统容量
resize2fs /dev/rbd0			#刷新ext4类型文件系统容量

在这里插入图片描述
在这里插入图片描述

7、快照管理
对 rbd 镜像进行快照,可以保留镜像的状态历史,另外还可以利用快照的分层技术,通过将快照克隆为新的镜像使用。

//在客户端写入文件
echo 1111 > /data/bb/11.txt
echo 2222 > /data/bb/22.txt
echo 3333 > /data/bb/33.txt
//在管理节点对镜像创建快照
rbd snap create --pool rbd-demo --image rbd-demo1.img --snap demo1_snap1

可简写为:
rbd snap create rbd-demo/rbd-demo1.img@demo1_snap1
//列出指定镜像所有快照
rbd snap list rbd-demo/rbd-demo1.img

#用json格式输出:
rbd snap list rbd-demo/rbd-demo1.img --format json --pretty-format

在这里插入图片描述
在这里插入图片描述

//回滚镜像到指定
在回滚快照之前,需要将镜像取消镜像的映射,然后再回滚。

#在客户端
rm -rf /data/bb/*
umount /data/bb
rbd unmap rbd-demo/rbd-demo1.img

#在管理节点操作,回滚
rbd snap rollback rbd-demo/rbd-demo1.img@demo1_snap1

#在客户端重新映射并挂载
rbd map rbd-demo/rbd-demo1.img --keyring /etc/ceph/ceph.client.osd-mount.keyring --user osd-mount
mount /dev/rbd0 /data/bb
ls /data/bb				#发现数据还原回来了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//限制镜像可创建快照数
rbd snap limit set <RDB存储池名>/<镜像名> --limit 3

#解除限制:
rbd snap limit clear <RDB存储池名>/<镜像名>
//删除快照
#删除指定快照:
rbd snap rm <RDB存储池名>/<镜像名>@<快照名>

#删除所有快照:
rbd snap purge <RDB存储池名>/<镜像名>
//快照分层
快照分层支持用快照的克隆生成新镜像,这种镜像与直接创建的镜像几乎完全一样,支持镜像的所有操作。唯一不同的是克隆镜像引用了一个只读的上游快照,而且此快照必须要设置保护模式。

#快照克隆
1)将上游快照设置为保护模式:
rbd snap create rbd-demo/rbd-demo1.img@demo1_snap666

rbd snap protect rbd-demo/rbd-demo1.img@demo1_snap666

2)克隆快照为新的镜像
rbd clone rbd-demo/rbd-demo1.img@demo1_snap666 --dest rbd-demo/rbd-demo666.img

rbd ls -p rbd-demo

3)命令查看克隆完成后快照的子镜像
rbd children rbd-demo/rbd-demo1.img@demo1_snap666

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//快照展平
通常情况下通过快照克隆而得到的镜像会保留对父快照的引用,这时候不可以删除该父快照,否则会有影响。
rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap666
#报错 snapshot 'demo1_snap666' is protected from removal.

如果要删除快照但想保留其子镜像,必须先展平其子镜像,展平的时间取决于镜像的大小
1) 展平子镜像
rbd flatten rbd-demo/rbd-demo666.img

2)取消快照保护
rbd snap unprotect rbd-demo/rbd-demo1.img@demo1_snap666

3)删除快照
rbd snap rm rbd-demo/rbd-demo1.img@demo1_snap666

rbd ls -l -p rbd-demo			#在删除掉快照后,查看子镜像依然存在

在这里插入图片描述
在这里插入图片描述

8、镜像的导出导入

//导出镜像
rbd export rbd-demo/rbd-demo1.img  /opt/rbd-demo1.img

在这里插入图片描述

//导入镜像
#卸载客户端挂载,并取消映射
umount /data/bb
rbd unmap rbd-demo/rbd-demo1.img

#清除镜像下的所有快照,并删除镜像
rbd snap purge rbd-demo/rbd-demo1.img
rbd rm rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

#导入镜像
rbd import /opt/rbd-demo1.img  rbd-demo/rbd-demo1.img

rbd ls -l -p rbd-demo

在这里插入图片描述
在这里插入图片描述

- OSD 故障模拟与恢复 -

1、模拟 OSD 故障
如果 ceph 集群有上千个 osd,每天坏 2~3 个太正常了,我们可以模拟 down 掉一个 osd

#如果 osd 守护进程正常运行,down 的 osd 会很快自恢复正常,所以需要先关闭守护进程
ssh root@node01 systemctl stop ceph-osd@0

#down 掉 osd
ceph osd down 0

ceph osd tree

2、将坏掉的 osd 踢出集群
//方法一:

#将 osd.0 移出集群,集群会开始自动同步数据
ceph osd out osd.0
#将 osd.0 移除 crushmap
ceph osd crush remove osd.0
#删除守护进程对应的账户信息
ceph auth rm osd.0

ceph auth list
#删掉 osd.0
ceph osd rm osd.0

ceph osd stat
ceph -s

//方法二:

ceph osd out osd.0

#使用综合步骤,删除配置文件中针对坏掉的 osd 的配置
ceph osd purge osd.0 --yes-i-really-mean-it

3、把原来坏掉的 osd 修复后重新加入集群

#在 osd 节点创建 osd,无需指定名,会按序号自动生成
cd /etc/ceph

ceph osd create
#创建账户
ceph-authtool --create-keyring /etc/ceph/ceph.osd.0.keyring --gen-key -n osd.0 --cap mon 'allow profile osd' --cap mgr 'allow profile osd' --cap osd 'allow *'
#导入新的账户秘钥
ceph auth import -i /etc/ceph/ceph.osd.0.keyring

ceph auth list
#更新对应的 osd 文件夹中的密钥环文件
ceph auth get-or-create osd.0 -o /var/lib/ceph/osd/ceph-0/keyring
#加入 crushmap
ceph osd crush add osd.0 1.000 host=node01		#1.000 代表权重
#加入集群
ceph osd in osd.0

ceph osd tree
#重启 osd 守护进程
systemctl restart ceph-osd@0

ceph osd tree		#稍等片刻后 osd 状态为 up	
//如果重启失败
报错:
Job for ceph-osd@0.service failed because start of the service was attempted too often. See "systemctl  status ceph-osd@0.service" and "journalctl -xe" for details.
To force a start use "systemctl reset-failed ceph-osd@0.service" followed by "systemctl start ceph-osd@0.service" again.

#运行
systemctl reset-failed ceph-osd@0.service && systemctl restart ceph-osd@0.service

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

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

相关文章

前端多行文本省略号

.title {height: 4rem;line-height: 2rem;// 多行文本省略号overflow: hidden;font-size: 1.4rem;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;}

Rancher 系列文章-Rancher 升级

概述 之前在 天翼云上用 4 台机器安装了一个 1 master&#xff08;及 etcd) 3 node 的 K3S 集群&#xff0c;并在其上使用 Helm 安装了 Rancher 2.6.3 版本。 前几天发现 Rancher 官方推荐的最新版为&#xff1a;v2.6.4 所以决定先后对 Rancher 和 K3S 集群进行升级。 根据…

迁移到强化学习的 6 个理由

胡巴雷拉 从 https://en.wikipedia.org/wiki/Reinforcement_learning 一、说明 强化学习&#xff08;RL&#xff09;是机器学习的一个领域&#xff0c;涉及智能体应该如何在环境中采取行动&#xff0c;以最大化累积奖励的概念。强化学习是三种基本的机器学习范式之一&#xff…

RHCSA/RHCE考试模拟环境搭建

RHCSA/RHCE考试模拟环境搭建 1. 使用VMware workstation部署2. 使用U盘通过物理服务器部署1. 使用VMware workstation部署 RHCSA环境内存至少16G,RHCE环境内存至少12G,处理器配置8核   网络适配器选择NAT方式   取消显示器的“加速3D图形”:   另外添加一块硬…

Time Series Classification

时间序列分类 我第一次遇到时间序列分类的概念时&#xff0c;我最初的想法是&#xff1a;我们如何对时间序列进行分类&#xff1f;时间序列分类的数据是什么样子的&#xff1f; 可以想象&#xff0c;时间序列分类数据不同于常规分类问题&#xff0c;因为属性具有有序的序列。…

【业务功能篇47】 idea自动生成代码插件EasyCode

业务越来越多需求的情况下&#xff0c;对应的表也是逐渐增多&#xff0c;许多的文件都是一些重复操作&#xff0c;比如表的实体类&#xff0c;mapper接口类&#xff0c;xml映射文件&#xff0c;业务层接口&#xff0c;接口实现类等。亟需一个自动化生成固定代码文件的工具&…

【24】SCI易中期刊推荐——计算机人工智能(中科院4区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【Java从0到1学习】02 Java 开发环境配置

1. 安装 1、方式一&#xff1a;进入官网https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载JDK 方式二&#xff1a;博主提供的百度网盘版本下载&#xff1a;https://pan.baidu.com/s/1liNHej2hGXJU_L8yQNRZmQ?pwd9w3f 2、下载后双击即可安装…

4、VScode、WAMP、Xdebug调试

1、查看Xdebug的版本 Xdebug是随WAMP一起安装的&#xff0c;版本号可以通过PHP扩展菜单下查看&#xff0c;为3.1.6 2、配置系统环境变量 将PHP的安装目录&#xff0c;添加到系统的环境变量中&#xff0c;配置完成后&#xff0c;通过命令行 输入命令 PHP -V&#xff0c;查看是…

33. bio和nio

文章目录 一、bio网络模型1.1 bio网络模型示意图1.2 bio网络模型缺点 二、NIO网络模型2.1 nio网络模型示意图2.2 nio网络模型的改进 三、NIO核心- Channel&#xff08;通道&#xff09;3.1 Channel 简介3.2 Channel 实现类3.3 bio的socket 和 nio的channel代码实现 四、NIO核心…

“小小消防员 立志勇向前”未成年人就业创业意识技能指导培训活动

为培养未成年人沉着冷静处理突发事件的应变能力&#xff0c;提高未成年人的个人技能和社会实践能力&#xff0c;2023年7月13日&#xff0c;在吴忠市利通区民政局的支持指导下&#xff0c;吴忠市利通区新时代文明传播公益服务中心组织开展了“小小消防员 立志勇向前”—未成年人…

求根节点到叶节点数字之和

给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字&#xff1a; 例如&#xff0c;从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。…

ubuntu22.0.4 tar命令不管用

问题&#xff1a; 解决方法&#xff1a;sudo tar sudo tar -zxvf flex-2.5.39.tar.gz不知道为什么需要sudo 去执行才可以正常工作。

关于电脑显示器屏幕看不出灰色,灰色和白色几乎一样无法区分,色彩调整方法

问题&#xff1a; 电脑显示器屏幕看不出灰色&#xff0c;灰色和白色几乎一样无法区分。白色和灰色有色差。 解决方法&#xff1a; 打开“控制面板” ->“色彩管理” ->“高级” ->“校正显示器” 在下一步调节中调成中间这一个实例的样子就可以了 进行微调&#x…

Java - Iterator迭代器

Iterator(迭代器) Iterator介绍 1、Iterator对象称为迭代器&#xff0c;主要用于遍历 Collection 集合中的元素 2、所有实现了Collection 接口的集合类都有一个iterator()方法&#xff0c;用以返回一个实现了Iterator接口的对象&#xff0c;即可以返回一个迭代器 3、Iterat…

我在VScode学Java类与对象(Java显式参数和隐式参数、静态方法+main方法、Java访问修饰符、static关键字、Java的包、对象数组)第三辑

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客&#xff1a;《我在VScode学Java》 续《我在VScode学Java&#xff08;Java的类与对象&#xff09;》 方法会操作对象并访问他们的实例字段。 伍._. 显式参…

springboot整合ehcache和redis实现多级缓存实战案例

一、概述 在实际的工作中&#xff0c;我们通常会使用多级缓存机制&#xff0c;将本地缓存和分布式缓存结合起来&#xff0c;从而提高系统性能和响应速度。本文通过springboot整合ehcache和redis实现多级缓存案例实战&#xff0c;从源码角度分析下多级缓存实现原理。 二、实战案…

STM32F407-- DMA使用

目录 1. DMA结构体 STM32F103&#xff1a; STM32F407&#xff1a; 2. F4系列实现存储器到存储器数据传输 1&#xff09;结构体配置&初始化 2&#xff09;主函数 补充知识点&#xff1a;关于变量存储的位置&#xff0c;关于内部存储器一般存储什么内容 3. F4系列实现…

Word 常用操作总结

文章目录 【公式篇】编号右对齐自动编号多行公式对齐编号右靠下编号右居中 公式引用更新编号 【公式篇】 简述&#xff1a;通过“#换行”的方式使编号右对齐&#xff0c;通过插入题注的方式使其自动编号&#xff0c;通过交叉引用的方式引用公式编号。 编号右对齐自动编号 在公…

【chrome】谷歌浏览器地址栏右侧“安装”按钮实现

这玩意学名叫PWA&#xff1a; 全称&#xff1a;Progressive Web App&#xff0c;是提升 Web App 的体验的一种新方法&#xff0c;能给用户原生应用的体验。 一、PWA安装条件&#xff1a; 在 Chrome 中&#xff0c;渐进式 Web 应用程序必须满足以下条件才能触发 beforeinstallpr…