【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.mzph.cn/news/102712.shtml

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

相关文章

总结四:数据库(MySQL)面经

文章目录 一、SQL1、介绍一下数据库分页2、介绍一下SQL中的聚合函数3、表跟表是怎么关联的?4、说一说你对外连接的了解&#xff1f;5、说一说数据库的左连接和右连接&#xff1f;6、SQL中怎么将行转成列&#xff1f;7、谈谈你对SQL注入的理解&#xff1f;8、将一张表的部分数据…

苍穹外卖(一)

苍穹外卖项目介绍 项目介绍 本项目&#xff08;苍穹外卖&#xff09;是专门为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的一款软件产品&#xff0c;包括 系统管理后台 和 小程序端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员工使用&#xff0c;可以对餐厅…

提升市场调研和竞品分析效率:利用Appium实现App数据爬取

市场调研和竞品分析通常需要获取大量的数据&#xff0c;而手动收集这些数据往往耗时且容易出错。而利用Appium框架&#xff0c;我们可以轻松地实现自动化的App数据爬取&#xff0c;这种方法不仅可以节省时间和人力成本&#xff0c;还可以提高数据的准确性和一致性。 Appium是一…

springboot单独在指定地方输出sql

一般线上项目都是将日志进行关闭&#xff0c;因为mybatis日志打印&#xff0c;时间长了&#xff0c;会占用大量的内存&#xff0c;如果我想在我指定的地方进行打印sql情况&#xff0c;怎么玩呢&#xff01; 下面这个场景&#xff1a; 某天线上的项目出bug了&#xff0c;日志打印…

网线接法aaa

![(https://img-blog.csdnimg.cn/d2901403dbd44feaa8f7be669ddcf2fc.png) 加粗样式 在这里插入图片描述

论文阅读笔记(Clover: 计算与存储被动分离的分布式键值存储系统)

关于Disaggregating Persistent Memory and Controlling Them Remotely: An Exploration of Passive Disaggregated Key-Value Stores这篇论文的笔记 原文链接 提出背景 传统的分布式存储系统中&#xff0c;每个节点都会包含计算和存储两个部分&#xff0c;一个节点既可以访…

HDLbits: Lemmings3

Lemmings又多了一种状态&#xff1a;dig&#xff0c;我按照上一篇文章里大神的思路又多加了两种状态&#xff1a;LEFT_DIGGING与RIGHT_DIGGING&#xff0c;写出了如下的代码&#xff1a; module top_module(input clk,input areset, // Freshly brainwashed Lemmings walk …

nginx windows安装部署,代理转发配置

一、安装 1、nginx官网下载 windows版本 nginx官网 下载后解压到本地 2、在nginx的配置文件是conf目录下的nginx.conf&#xff0c;默认配置的nginx监听的端口为80&#xff0c;如果本地电脑的80端口有被占用&#xff0c;如果本地80端口已经被使用则修改成其他端口。如下&…

HDLbits: Lfsr5

我的错误写法&#xff0c;半成品&#xff0c;完全错误&#xff1a; module top_module(input clk,input reset, // Active-high synchronous reset to 5h1output [4:0] q ); dff dff_1(clk, 0 ^ q[0],q[4]);dff dff_2(clk, q[4] ,q[3]);dff dff_3(clk, q[3] ^ q[0] ,q[2]);…

通讯网关软件020——利用CommGate X2Mysql实现Modbus TCP数据转储Mysql

本文介绍利用CommGate X2MYSQL实现从Modbus TCP设备读取数据并转储至MYSQL数据库。CommGate X2MYSQL是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;实现从Modbus TCP设备读取数据并转储至M…

2023年电工(初级)证考试题库及电工(初级)试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年电工&#xff08;初级&#xff09;证考试题库及电工&#xff08;初级&#xff09;试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#…

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

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

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的&#xff1b;数据管理是集中的 ②C/S结构 客户端负责数据表服务&#xff1b;服务器负责数据库服务&#xff1b;系统分前后端&#xff1b;ODBC、JDBC ③分布式数据库 物理上分布、逻…

Unity可视化Shader工具ASE介绍——5、ASE快捷键和常用节点介绍

大家好&#xff0c;我是阿赵。   继续介绍Unity可视化Shader插件ASE。这次来说一些常用节点的快捷键&#xff0c;顺便介绍一些常用的节点。   用过UE引擎的朋友可能会发现&#xff0c;ASE的整体用法和UE的材质节点编辑器非常的像&#xff0c;甚至连很多节点的快捷键都和UE的…

【iOS】Fastlane一键打包上传到TestFlight、蒲公英

Fastlane一键打包上传到TestFlight、蒲公英 前言一、准备二、探索一、Fastlane配置1、Fastlane安装2、Fastlane更新3、Fastlane卸载4、查看Fastlane版本5、查看Fastlane位置6、Fastlane初始化 二、Fastlane安装蒲公英插件三、Fastlane文件编辑1、Gemfile文件2、Appfile文件3、F…

Jetson Orin NX 开发指南(8): Mavros 的安装与配置

一、前言 由于 Jetson 系列开发板常作为自主无人机的机载电脑&#xff0c;而无人机硬件平台如 PX4 和 ArduPilot 等通过 MAVLink 进行发布无人机状态和位姿等信息&#xff0c;要实现机载电脑与 MAVLink 的通信&#xff0c;必须借助 Mavros 功能包&#xff0c;因此&#xff0c;…

服务器数据恢复-VMWARE ESX SERVER虚拟机数据恢复案例

服务器数据恢复环境&#xff1a; 几台VMware ESX SERVER共享一台某品牌存储&#xff0c;共有几十组虚拟机。 服务器故障&#xff1a; 虚拟机在工作过程中突然被发现不可用&#xff0c;管理员将设备进行了重启&#xff0c;重启后虚拟机依然不可用&#xff0c;虚拟磁盘丢失&#…

设计模式01———简单工厂模式 c#

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 任务&#xff1a;使用【简单工厂模式】生成四种不同怪物 【按不同路径移动】 首先资源商店下载四个怪物模型 接下来我们选取四个怪物作为预制体并分别起名…

产品经理进阶:如何写商业计划书?

目录 简介 确定目标 确定目标市场 竞争分析 CSDN学院 作者简介 简介 很多时候&#xff0c;我们缺乏的并不是创意。 因为任何人都可能会萌发出一个好的创意。 但是&#xff0c;将想法变成可行的业务就完全是另一码事了。 你可能会认为你自己已经做好充分准备&#xff0…

ARM作业2

.设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再按一次&#xff0c;灭 按键2按下&#xff0c;蜂鸣器响。再按一次&#xff0c;不响 按键3按下&#xff0c;风扇转&#xff0c;再按一次&#xff0c;风扇停 头文件key_it.h #ifndef __KEY_IT_H__ #define …