【Ceph Block Device】块设备挂载使用

文章目录

  • 前言
  • 创建pool
  • 创建user
  • 创建image
  • 列出image
  • 检索image信息
  • 调整image大小
    • 增加image大小
    • 减少image大小
  • 删除image
    • 从pool中删除image
    • 从pool中“延迟删除”image
    • 从pool中移除“延迟删除的image”
  • 恢复image
    • 恢复指定pool中延迟删除的image
    • 恢复并重命名image
  • 映射块设备
  • 格式化image
  • 挂载使用

众所周知,Ceph集群可以向客户端提供对象存储服务(Object Storage)、块设备服务(Block Device)和文件系统服务(File System)。

本文将介绍搭建Ceph集群后如何使用块设备服务。使用 rbd 命令可以创建、查看、修改和删除块设备映像。您还可以使用它来克隆映像、创建快照、将映像回滚到快照、查看快照等。

要使用Ceph Block Device命令,首先必须要能访问正在运行的Ceph集群。

前言

img

Kernel modules can use Linux page caching. For librbd-based applications, Ceph supports RBD Caching.
内核模块可以使用Linux页面缓存。对于基于 librbd 的应用程序,Ceph支持RBD Caching。

要在Ceph中使用块设备服务,有如下几个步骤:

  1. 创建pool,关联RBD应用程序。
  2. 【可选】创建Ceph用户,授予对pool和image的权限,也可以直接使用admin。
  3. 创建image,个人理解image相当于在pool中开辟出的磁盘空间,可以像操作块设备一样,对其进行格式化、挂载等操作。
  4. 映射块设备。
  5. 格式化。
  6. 挂载使用。

创建pool

  1. 使用ceph工具创建pool池

    ceph osd pool create {pool-name} [{pg-num} [{pgp-num}]] [replicated] [crush-rule-name] [expected-num-objects]
    

    版本差异Ceph reefCeph nautilus

    ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] [crush-rule-name] [expected-num-objects]
    

    在nautilus版本中,pg_num是必须的,而在最新的reef版本中是可选的。

    # rule-single是crush rule名称,可以自定义
    ceph osd crush rule create-replicated rule-single default osd # 0 0分别代表pg_num和pgp_num,如果设置为0,代表使用的是/etc/ceph/ceph.conf中配置的osd_pool_default_pg_num和osd_pool_default_pgp_num
    ceph osd pool create pool1 0 0 rule-single 
    
  2. 使用rbd工具初始化pool池以供RBD使用

    rbd pool init <pool-name>
    

    如果在命令中未指定pool-name,则默认创建名为‘rbd’的pool池。

  3. 将pool与应用程序关联

    ceph osd pool application enable {pool-name} {application-name}
    

    CephFS使用应用程序名称 cephfs ,RBD使用应用程序名称 rbd ,RGW使用应用程序名称 rgw

    例如:

    ceph osd pool application enable pool1 rbd
    

创建user

除非另有说明,否则 rbd 命令使用Ceph用户ID admin 访问Ceph集群。 admin Ceph用户ID允许对群集进行完全管理访问。Ceph建议创建低权限的用户访问Ceph集群,这样的用户称为“块设备用户(block device user)”或“Ceph用户(Ceph user)”。

要创建Ceph用户,使用 ceph auth get-or-create 命令指定Ceph用户ID名称、monitor caps(capabilities)和OSD caps(capabilities):

ceph auth get-or-create client.{ID} mon 'profile rbd' osd 'profile {profile name} [pool={pool-name}][, profile ...]' mgr 'profile rbd [pool={pool-name}]'

例如,创建名为 qemu 的Ceph用户ID,该用户ID对池 vms 具有读写访问权限,对池 images 具有只读访问权限,请运行以下命令:

ceph auth get-or-create client.qemu mon 'profile rbd' osd 'profile rbd pool=vms, profile rbd-read-only pool=images' mgr 'profile rbd pool=images'

ceph auth get-or-create 命令的输出是指定Ceph用户ID的密钥环,可以写入 /etc/ceph/ceph.client.{ID}.keyring

创建image

在将块设备添加到节点之前,必须在Ceph存储集群中为其创建映像。要创建块设备映像,请运行以下格式的命令:

rbd create --size {megabytes} {pool-name}/{image-name}

例如,要创建一个名为 image11 的1GB映像,并将信息存储在名为 pool1 的池中,请运行以下命令:

rbd create --size 1024 pool1/image11

如果在创建映像时未指定池,则映像将存储在默认池 rbd 中。

列出image

要列出指定池中的数据块设备,运行如下命令:

rbd ls {poolname}

例如,列出pool1池中的image:

rbd ls pool1

要列出指定池中的“延迟删除”的块设备,运行如下命令:

rbd trash ls {poolname}

例如:

rbd trash ls pool1

检索image信息

要从指定image中检索信息,运行如下命令:

rbd info {image-name}

例如:

rbd info image11

要从指定pool中检索指定的image信息,运行如下命令:

rbd info {pool-name}/{image-name}

例如:

rbd info pool1/image11

调整image大小

Ceph Block设备映像是精简资源调配的。在您开始向它们保存数据之前,它们实际上并不使用任何物理存储。但是,它们确实有您使用 --size 选项设置的最大容量。如果要增加(或减少)Ceph Block设备映像的最大大小,运行如下命令:

增加image大小

rbd resize --size 2048 image11

减少image大小

rbd resize --size 2048 image11 --allow-shrink

删除image

从pool中删除image

rbd rm {pool-name}/{image-name}

例如:

rbd rm pool1/image11	

【遇到的问题】
[root@ceph01 ~]# rbd rm pool1/image11
2023-10-10 03:27:54.954 ffd2ff2700 -1 librbd::image::PreRemoveRequest: 0xaab162a620 handle_exclusive_lock: cannot obtain exclusive lock - not removing
Removing image: 0% complete…failed.
rbd: error: image still has watchers
This means the image is still open or the client using it crashed. Try again after closing/unmapping it or waiting 30s for the crashed client to timeout.

删除image前需要先解除映射

[root@ceph01 ~]# rbd unmap pool1/image11
rbd: sysfs write failed
rbd: unmap failed: (16) Device or resource busy

rbd unmap -o force pool1/image11

从pool中“延迟删除”image

”延迟删除“pool中的块设备(相当于将其移动到“回收站/垃圾桶”并在稍后删除),运行如下命令:

rbd trash mv {pool-name}/{image-name}

例如:

rbd trash mv pool1/image11

从pool中移除“延迟删除的image”

rbd trash rm {pool-name}/{image-}

例如:

rbd trash rm pool1/image11

恢复image

要恢复默认rbd池中的延迟删除的块设备image,运行如下命令:

rbd trash restore {image-id}

恢复指定pool中延迟删除的image

rbd trash restore {pool-name}/{image-id}

恢复并重命名image

rbd trash restore pool1/image11 --image new-name

映射块设备

rbd device map pool1/image11

[root@ceph01 mnt]# rbd map pool1/image11
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with “rbd feature disable pool1/image11 object-map fast-diff deep-flatten”.
In some cases useful info is found in syslog - try “dmesg | tail”.
rbd: map failed: (6) No such device or address

出现这种错误的原因是OS kernel不支持块设备image的一些特性,导致映射失败,按照提示把部分不支持的特性disable掉再映射。

rbd feature disable pool1/image11 object-map fast-diff deep-flatten
# 查看映射关系
rbd showmapped
或
rbd device list

使用lsblk命令可以看到出现了rbd0设备,但是还未挂载。

格式化image

mkfs.ext4 /dev/rbd0

挂载使用

mkdir /mnt/ceph-block-device-rbd0
mount /dev/rbd0 /mnt/ceph-block-device-rbd0/

如果不想使用,则可以执行如下命令:

umount /dev/rbd0
rbd device unmap pool1/image11
rm -rf /mnt/ceph-block-device-rbd0/

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

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

相关文章

C++DAY44

#include <iostream>using namespace std;class Animal//封装 动物 基类 { private:string name; public:Animal() {}Animal(string n):name(n){}virtual void perform() //虚函数{cout << "欢迎来到动物园" << endl;} };class Lion:public Animal…

c/c++--字节对齐(byte alignment)

1. 默认字节对齐 在所有结构体成员的字节长度都没有超出操作系统基本字节单位(32位操作系统是4,64位操作系统是8)的情况下 按照结构体中字节最大的变量长度来对齐&#xff1b;若结构体中某个变量字节超出操作系统基本字节单位 那么就按照系统字节单位来对齐。 注意&#xff1…

视频监控系统/安防视频平台EasyCVR广场视频细节优化

安防视频监控系统/视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频汇聚平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;可实现视频监控直播、视频轮播、…

【Python 零基础入门 】安装 环境配置

【Python 零基础入门 】第一课 安装 & 环境配置 Python 零基础入门 第一课 安装 & 环境配置Python 的历史Python 的前景安装了解你的操作系统Python 安装环境配置 PyCharm 安装第一个程序 Python 零基础入门 第一课 安装 & 环境配置 在当今的技术时代, 编程语言正…

微信小程序/vue3/uview-plus form兜底校验

效果图 代码 <template><u-form :model"form" ref"formRole" :rules"rules"><u-form-item prop"nickname"><u-input v-model"form.nickname" placeholder"姓名" border"none" /&…

没用的知识增加了,尝试用文心实现褒义词贬义词快速分类

尝试用文心实现褒义词贬义词快速分类 一、我的需求二、项目环境搭建千帆SDK安装及使用流程 三、项目实现过程创建应用获取签名调用接口计算向量积总结 百度世界大会将于10月17日在北京首钢园举办&#xff0c;今天进入倒计时五天了。通过官方渠道的信息了解到&#xff0c;这次是…

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…

【Debian】报错:su: Authentication failure

项目场景&#xff1a; 今天我重新刷了一个debian系统。 系统版本&#xff1a; # 查看系统版本 lsb_release -a 我的系统版本&#xff1a; No LSB modules are available. Distributor ID&#xff1a;Debian Description: Debian GNU/Linux 12 &#xff08;bookworm&#xff…

优雅而高效的JavaScript——箭头函数

&#x1f917;博主&#xff1a;小猫娃来啦 &#x1f917;文章核心&#xff1a;优雅而高效的JavaScript——箭头函数 文章目录 前言箭头函数的基本语法和特点箭头函数的语法箭头函数的词法绑定特性箭头函数的this值箭头函数无法使用arguments对象 箭头函数与传统函数的比较箭头函…

每年高考时间是几月几号 高考开始时间

高考是高中生最重要的一个阶段&#xff0c;甚至影响着很多学生的未来&#xff0c;相信大家都很关注高考的具体时间是什么时候&#xff0c;本次将详细给您介绍高考的具体开始时间以及结束时间。 每年高考的时间都是6月7日开始&#xff0c;一共持续三天时间左右&#xff0c;但是…

身份证号码,格式校验:@IdCard(自定义注解)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard&#xff0c;能够和现有的 Validation 兼容&#xff0c;使用方式和其他校验注解保持一致&#xff08;使用 Valid 注解接口参数&#xff09;。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643&#xff0d;…

竞赛选题 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…

印度网络安全:威胁与应对

随着今年过半&#xff0c;我们需要评估并了解不断崛起的网络威胁复杂性&#xff0c;这些威胁正在改变我们的数字景观。 从破坏性的网络钓鱼攻击到利用人工智能的威胁&#xff0c;印度的网络犯罪正在升级。然而&#xff0c;在高调的数据泄露事件风暴中&#xff0c;我们看到了政…

游戏反虚拟机检测方案

近年来&#xff0c;游戏市场高速发展&#xff0c;随之而来的还有图谋利益的游戏黑产。在利益吸引下&#xff0c;游戏黑产扩张迅猛&#xff0c;攻击趋势呈现出角度多样化的特点。 在这一趋势下&#xff0c;游戏安全防护的检测覆盖率显得尤为重要。如果游戏在某一环节出现被绕过…

Linux系统卡顿处理记录(Debian)

问题现象描述 现象linux操作系统卡顿&#xff08;就是很慢&#xff09;&#xff0c;但是系统任然能够使用。 文章一步步的排查并且定位问题。 排查步骤 1. 使用top命令查看CPU是否占用过高。&#xff08;未发现&#xff09;排除问题 2. 使用df -h查看硬盘是否被占满。&#…

浏览器唤起钉钉 各项功能

浏览器唤起钉钉对应人员聊天 文档地址 https://open.dingtalk.com/document/client/unified-routing-protocol 唤起聊天 不过只能唤起叮叮的名片 id为叮叮号 <a href"dingtalk://dingtalkclient/action/sendmsg?dingtalk_id{id}"></a>id&#xff1a; …

Spark 9:Spark 新特性

Spark 3.0 新特性 Adaptive Query Execution 自适应查询(SparkSQL) 由于缺乏或者不准确的数据统计信息(元数据)和对成本的错误估算(执行计划调度)导致生成的初始执行计划不理想&#xff0c;在Spark3.x版本提供Adaptive Query Execution自适应查询技术&#xff0c;通过在”运行…

vite+vue3+ts中使用require.context | 报错require is not defined | 获取文件夹中的文件名

vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名 目录 vitevue3ts中使用require.context|报错require is not defined|获取文件夹中的文件名一、问题背景二、报错原因三、解决方法 一、问题背景 如题在vitevue3ts中使用required.context时报…

《UnityShader入门精要》学习1

读者可以在开源网站github&#xff08;https://github.com/candycat1992/Unity_Shaders_Book&#xff09;上下载本书的源代码。 第二章 渲染流水线 渲染流水线的最终目的在于生成或者说是渲染一张二维纹理&#xff0c;即我们在电脑屏幕上看到的所有效果&#xff0c;它的输入是…

【网络安全】「漏洞原理」(二)SQL 注入漏洞之理论讲解

前言 严正声明&#xff1a;本博文所讨论的技术仅用于研究学习&#xff0c;旨在增强读者的信息安全意识&#xff0c;提高信息安全防护技能&#xff0c;严禁用于非法活动。任何个人、团体、组织不得用于非法目的&#xff0c;违法犯罪必将受到法律的严厉制裁。 【点击此处即可获…