当前位置: 首页 > news >正文

浪潮云启操作系统(InLinux)bcache缓存实践:理解OpenStack环境下虚拟机卷、Ceph OSD、bcache设备之间的映射关系

前言

在OpenStack平台上,采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面,Ceph作为分布式存储系统,与虚拟机存储卷紧密结合,可以提供高可用和高性能的存储服务。另一方面,bcache作为混合存储方案,利用SSD缓存加速HDD存储,有效提升I/O性能。为了优化存储系统性能,理解虚拟机卷、Ceph OSD和bcache设备之间的映射关系非常重要

本指南基于InLinux2312-LTS-SP1版本,旨在帮助你查找并理解OpenStack环境下虚拟机卷、Ceph OSD和bcache的映射关系,便于监控和优化存储系统。

ceph数据的映射层次如下图所示。

浪潮云启操作系统(InLinux)版本

以下操作步骤均基于InLinux2312-LTS-SP1版本,在此版本上进行环境分析。

虚拟机卷与Ceph OSD的映射关系

在OpenStack中,虚拟机卷(通常为Cinder卷)存储在Ceph集群上,通过RBD(RADOS Block Device)进行管理。要查找虚拟机卷与Ceph OSD的映射关系,可以按照以下步骤进行:

1. 获取虚拟机卷的信息

首先,需要获取虚拟机卷的名称和所在的Ceph存储池。可以通过OpenStack的命令行工具或API来获取。

  • 使用以下命令查找虚拟机使用的卷:

    openstack server show <虚拟机名称>

    在输出结果中,查找与“volume”相关的部分。这里你可以看到虚拟机使用的卷ID。

    openstack server show vm-test

2. 查看虚拟机卷的RBD映射

使用rbd命令查看卷在Ceph中的映射关系。

  • 列出Ceph池中的所有RBD镜像:

    ceph osd lspools

    遍历所有资源池查询虚拟机卷所在的pool,如果资源池中存在虚拟机卷,就可以确认虚拟机卷所在的资源池。

    rbd ls

  • 获取特定RBD镜像的信息:

    rbd info <pool_name>/<volume_name>

    这将显示RBD镜像的大小、对象大小等信息。

    虚拟机硬盘卷使用了15360个对象。block_name_prefix为rbd_data.936093419e6a4f。

3. 查找RBD对象与PG的关系

RBD镜像在Ceph中被分割成多个对象,这些对象被分布在不同的Placement Group(PG)中,而PG又映射到具体的OSD上。

  • 列出存储池中的所有对象(注意可能对象很多,可以过滤):

    rados -p <pool_name> ls | grep <block_name_prefix>

  • 获取对象所在的PG:

    ceph osd map <pool_name> <object_name>

    可以查询到PG ID是pg 11.a2b75800。

4. 确定PG映射到的OSD

  • 查看PG的详细信息:

    ceph pg map <pgid>

    输出示例:

    这里的[6,133,208]表示该PG的数据分布在OSD.6、OSD.133和OSD.208上。

5. 汇总映射关系

通过上述步骤,可以将虚拟机卷的对象映射到具体的PG,再从PG映射到具体的OSD上。这样,就可以了解该虚拟机卷的数据存储在哪些OSD上。

虚拟机卷volume-xxx存储在Ceph池volumes中。

  • 其中一个对象rbd_data.xxxx属于PG 11.a2b75800。
  • PG 11.a2b75800的数据分布在OSD.6、OSD.133和OSD.208上。

6. 结论

因为虚拟机卷对应了多个对象,而对象按照哈希算法分布到不同的PG,PG则按照crush算法映射到不同的osd。可以理解为虚拟机卷和osd是一对多的关系。

Ceph OSD与bcache的映射关系

为了加速Ceph OSD的读写操作,bcache被用作缓存设备。以下是查找Ceph OSD和bcache的映射关系的步骤:

使用ceph osd tree查找OSD所在的主机节点

  • 查看Ceph集群的OSD树:

    ceph osd tree

    输出示例:

    • 通过此命令,可以知道每个OSD所在的主机节点(host)。
2. 获取OSD的元数据信息
  • 使用ceph osd metadata命令获取特定OSD的详细信息:

    ceph osd metadata <osd_id>

    关键字段

    • hostname: OSD所在的主机节点storage-011。
    • bluestore_bdev_dev_nodebluestore_bdev: OSD使用的块设备,/dev/dm-10
    • devices: bcache2,nvme0n1可以得到osd使用的设备为为/dev/dm-10,bcache设备为bcache2。
3. 在主机节点上查找对应的设备信息
  • 登录到对应的主机节点(例如host1)。

  • 使用lsblk命令查看设备映射:

    lsblk

    输出示例:

  • 查找/dev/dm-10对应的底层设备,是LVM类型的设备。

  • /dev/dm-10是逻辑卷(LVM),可以使用dmsetup命令查看详细信息:

    dmsetup ls --tree

  • 这将显示设备映射的树状结构。

4. 查找bcache的映射关系
  • 查找bcache设备

    ls /dev/bcache*

  • 使用lsblk查看bcache设备的映射:

    lsblk

  • 可以看到/dev/bcache2是由/dev/sdc(后端设备)和/dev/nvme2n1p3(缓存设备)组成的。

  • 查看bcache的后端设备和缓存设备

    • 后端设备:

      cat /sys/block/bcache0/bcache/backing_dev_name 输出示例:sdc

  • 缓存设备:

    readlink /sys/block/bcache2/bcache/cache/cache0 | awk -F'/' '{print $(NF-1)}'

    输出示例:nvme2n1p3

6. 汇总映射关系

通过以上步骤,可以将Ceph OSD与其底层设备(/dev/dm-1),以及bcache设备对应起来。通过上述方法,可以确认一个osd对应一个bcache设备。

  • 步骤概括

    1. 使用ceph osd tree找到OSD所在的主机节点。
    2. 使用ceph osd metadata获取OSD的设备信息(如/dev/dm-1)。
    3. 在主机节点上,使用lsblkdmsetup找到/dev/dm-1的物理设备和映射关系。
    4. 确认/dev/dm-10是否建立在/dev/bcache*之上,进而确定OSD是否通过bcache加速。

总结

在浪潮云启操作系统(InLinux)上,理解虚拟机卷、Ceph OSD和bcache的映射关系有助于优化存储系统性能。因为虚拟机卷对应了多个对象,而对象按照哈希算法分布到不同的PG,PG则按照crush算法映射到不同的osd,可以得到虚拟机卷和osd是一对多的关系;而osd通过device map设备和bcache设备是一对一的映射;则可以推理虚拟机卷和bcache设备也是一对多的关系,组成虚拟机卷的多个对象分布在多个bcache设备中。

相关文章:

浪潮云启操作系统(InLinux)bcache缓存实践:理解OpenStack环境下虚拟机卷、Ceph OSD、bcache设备之间的映射关系

前言 在OpenStack平台上&#xff0c;采用bcache加速ceph分布式存储的方案被广泛用于企业和云环境。一方面&#xff0c;Ceph作为分布式存储系统&#xff0c;与虚拟机存储卷紧密结合&#xff0c;可以提供高可用和高性能的存储服务。另一方面&#xff0c;bcache作为混合存储方案&…...

通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问

Content 1 问题描述2 原因分析3 解决办法3.1 安装x11以及gnome桌面环境查看是否安装x11否则使用下面指令安装x11组件查看是否安装gnome否则使用下面指令安装gnome桌面环境 3.2 安装xrdp使用下面指令安装xrdp&#xff08;如果安装了则跳过&#xff09;启动xrdp服务 3.3 远程服务…...

# 渗透测试#安全见闻8 量子物理面临的安全挑战

# 渗透测试#安全见闻8 量子物理面临的安全挑战 ##B站陇羽Sec## 量子计算原理与技术 量子计算是一种基于量子力学原理的计算方式&#xff0c;它利用量子位&#xff08;qubits&#xff09;来进行信息处理和计算…...

【rabbitmq】实现问答消息消费示例

目录 1. 说明2. 截图2.1 接口调用截图2.2 项目结构截图 3. 代码示例 1. 说明 1.实现的是一个简单的sse接口&#xff0c;单向的长连接&#xff0c;后端可以向前端不断输出数据。2.通过调用sse接口&#xff0c;触发rabbitmq向队列塞消息&#xff0c;向前端返回一个sseEmitter对象…...

单片机_RTOS__架构概念

经典单片机程序 void main() {while(1){函数1&#xff08;&#xff09;&#xff1b;函数2&#xff08;&#xff09;&#xff1b;}} 有无RTOS区别 裸机 RTOS RTOS程序 喂饭&#xff08;&#xff09; {while&#xff08;1&#xff09;{喂一口饭&#xff08;&#xff09;;} } …...

ClickHouse在百度MEG数据中台的落地和优化

导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题&#xff0c;导致开发效率低下、学习成本高&#xff0c;业务需求响应迟缓。为了解决这些问题&#xff0c;百度MEG内部开发了图灵3.0生态系统&#xff0c;包括Turing Data Engine(TDE)计算引擎、Turing Dat…...

B/S架构(Browser/Server)与C/S架构(Client/Server)

基本概念 B/S架构&#xff08;Browser/Server&#xff09;&#xff1a;即浏览器/服务器架构。在这种架构中&#xff0c;用户通过浏览器&#xff08;如Chrome、Firefox、Safari等&#xff09;访问服务器上的应用程序。服务器端负责处理业务逻辑、存储数据等核心功能&#xff0c;…...

idea中自定义注释模板语法

文章目录 idea 自定义模板语法1.自定义模板语法是什么&#xff1f;2.如何在idea中设置呢&#xff1f; idea 自定义模板语法 1.自定义模板语法是什么&#xff1f; 打开我的idea&#xff0c;创建一个测试类&#xff1a; 这里看到我的 test 测试类里面会有注释&#xff0c;这是怎…...

基于SSM的儿童教育网站【附源码】

基于SpringBoot的课程作业管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2 系统模块设计 4.3.3 数据库表设计 5 系统实现 5.1 管理员功能模块的实现 5.1.1 视频列表 5.1.2 文章信息管理 5.1.3 文章类…...

深挖自闭症病因与孩子表现的关联

自闭症&#xff0c;亦称为孤独症&#xff0c;乃是一种对儿童发展有着严重影响的神经发育障碍性疾病。深入探寻自闭症的病因与孩子表现之间的联系&#xff0c;对于更深刻地理解并助力自闭症儿童而言&#xff0c;可谓至关重要。 当前&#xff0c;自闭症的病因尚未完全明晰&#x…...

[网络协议篇] UDP协议

文章目录 1. 简介2. 特点3. UDP数据报结构4. 基于UDP的应用层协议5. UDP安全性问题6. 使用udp传输数据的系统就一定不可靠吗&#xff1f;7. 基于UDP的主机探活 python实现 1. 简介 User Datagram Protocol&#xff0c;用户数据报协议&#xff0c;基于IP协议提供面向无连接的网…...

关系型数据库(1)----MySQL(初阶)

目录 1.mysql 2.mysqld 3.mysql架构 1.连接层 2.核心服务层 3.存储引擎层 4.数据存储层 4.SQL分类 5.MySQL操作库 6.MySQL数据类型 1. 数值类型 2. 日期和时间类型 3. 字符串类型 4. 空间类型 5. JSON数据类型 7.MySQL表的约束 1. 主键约束&#xff08;PRIMARY…...

计算机毕业设计Python+大模型租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 用到的技术: 1. python…...

深度学习技术演进:从 CNN、RNN 到 Transformer 的发展与原理解析

深度学习的技术演进经历了从卷积神经网络&#xff08;CNN&#xff09;到循环神经网络&#xff08;RNN&#xff09;再到 Transformer 的重要发展。这三个架构分别擅长处理图像、序列数据和多种任务的特征&#xff0c;标志着深度学习在不同领域取得的进步。 1. 卷积神经网络&…...

Lua中的goto语句

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 在Lua编程语言中&#xff0c;goto语句是一种跳转语句&#xff0c;用于将程序的执行流程无条件地转移到程序中的另一个位置。这个位置由一个标签&#xff08;…...

【rust实战】rust博客系统2_使用wrap启动rust项目服务

如何创建一个使用warp框架的rust项目1.使用cargo 创建项目 cargo new blog 2.添加warp依赖 1.cd blog 2.编辑Cargo.toml文件 添加warp 和 tokio 作为依赖项 在[dependencies]中添加 [package] name "blog" version "0.1.0" …...

【实战案例】Django框架使用模板渲染视图页面及异常处理

本文基于之前内容列表如下&#xff1a; 【图文指引】5分钟搭建Django轻量级框架服务 【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应 【实战案例】Django框架连接并操作数据库MySQL相关API 视图概述 Django中的视图的概念是一类具有相同功能和模板的网…...

设置K8s管理节点异常容忍时间

说明 每个节点上的 kubelet 需要定时向 apiserver 上报当前节点状态&#xff0c;如果两者间网络异常导致心跳终端&#xff0c;kube-controller-manager 中的 NodeController 会将该节点标记为 Unknown 或 Unhealthy&#xff0c;持续一段时间异常状态后 kube-controller-manage…...

什么样的JSON编辑器才好用

简介 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也便于机器解析和生成。随着互联网和应用程序的快速发展&#xff0c;JSON已经成为数据传输和存储的主要格式之一。在处理和编辑JSON数据…...

ArkUI自定义TabBar组件

在ArkUI中的Tabs&#xff0c;通过页签进行内容视图切换的容器组件&#xff0c;每个页签对应一个内容视图。其中内容是图TabContent作为Tabs的自组件&#xff0c;通过给TabContent设置tabBar属性来自定义导航栏样式。现在我们就根据UI设计的效果图来实现下图效果&#xff1a; 根…...

pair类型应用举例

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <utility> //使能pair数据类型; #include <string> //使能string字符串; #include <stdlib.h> //使能exit(); //pair类型可以将两个相同的或不同类…...

数字 图像处理算法的形式

一 基本功能形式 按图像处理的输出形式&#xff0c;图像处理的基本功能可分为三种形式。 1&#xff09;单幅图像 单幅图像 2&#xff09;多幅图像 单幅图像 3&#xff09;单&#xff08;或多&#xff09;幅图像 数字或符号等 二 几种具体算法形式 1.局部处理邻域对于任一…...

安徽对口高考Python试题选:输入一个正整数,然后输出该整数的3的幂数相加形式。

第一步&#xff1a;求出3的最高次幂是多少 guoint(input("请输入一个正整数:")) iguo a0 while i>0: if 3**i<guo: ai break ii-1print(a)#此语句为了看懂题目&#xff0c;题目中不需要打印出最高幂数 第二步…...

Node.js是什么? 能做什么?

‌Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;它使用事件驱动、非阻塞式I/O模型&#xff0c;使得JavaScript能够在服务器端运行。Node.js允许JavaScript脱离浏览器&#xff0c;直接在服务器和计算机上使用&#xff0c;极大地扩展了JavaScript的应用范围。…...

JVM快速入门

1、 JVM探究 面试问题 :谈谈对JVM的理解? java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError?怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?知道吗?谈谈JVM中,类加载器你的认识?2、JVM的位置 3、JVM的体系结构 3.1…...

理解深度学习模型——高级音频特征表示的分层理解

理解深度学习模型可以是一个复杂的过程&#xff0c;因为这些模型通常包含大量的参数和层次。 &#xff08;1&#xff09;复杂性来源&#xff1a; 深度学习模型的复杂性来源于多个方面&#xff0c;包括模型的规模、层次结构、参数数量以及训练数据的复杂性。以下是一些关键点&a…...

【HarmonyOS Next】原生沉浸式界面

背景 在实际项目中&#xff0c;为了软件使用整体色调看起来统一&#xff0c;一般顶部和底部的颜色需要铺满整个手机屏幕。因此&#xff0c;这篇帖子是介绍设置的方法&#xff0c;也是应用沉浸式效果。如下图&#xff1a;底部的绿色延伸到上面的状态栏和下面的导航栏 UI 在鸿蒙…...

数据结构 ——— 树的概念及结构

目录 树的结构以及示意图 树的概念​编辑 树的结构与递归的关系​编辑 树的结构以及示意图 树是一种非线性的数据结构&#xff0c;它是由 n(n>0) 个有限节点组成一个具有层次关系的集合 把这种结构叫做树是因为它看起来像一棵倒挂的树 特点&#xff1a; 有一个特殊的…...

初探Vue前端框架

文章目录 简介什么是Vue概述优势MVVM框架 Vue的特性数据驱动视图双向数据绑定指令插件 Vue的版本版本概述新版本Vue 3Vue 3新特性UI组件库UI组件库概述常用UI组件库 安装Vue安装Vue查看Vue版本 实例利用Vue命令创建Vue项目切换工作目录安装vue-cli脚手架创建Vue项目启动Vue项目…...

Lucas带你手撕机器学习——岭回归

岭回归&#xff08;Ridge Regression&#xff09; 一、背景与引入 在进行线性回归分析时&#xff0c;我们常常面临多重共线性的问题。多重共线性指的是自变量之间高度相关&#xff0c;这会导致回归系数的不稳定性&#xff0c;使得模型的预测能力降低。传统的线性回归通过最小…...

网站的风格有哪些/简述优化搜索引擎的方法

PHP有干扰线噪点的验证码类PHP#验证码 #类2012-06-06 08:35验证码类代码&#xff1a;/* 一个网在线教程 http://yige.org */class Captcha{private $width;private $height;private $codeNum;private $code;private $im;function __construct($width80, $height20, $codeNum4){…...

做数据可视化图的网站/服装市场调研报告

OS文件本地化处理要经过三个步骤&#xff0c;获得文件保存路径、根据文件的属性选择对应的存档方式&#xff0c;存档读档的实现。 一、获得文件保存路径 1."应用程序包": 这里面存放的是应用程序的源文件&#xff0c;包括资源文件和可执行文件。 NSString *path [[N…...

淮阳 网站建设/百度高级搜索引擎入口

SAM很好用的啊。。。 传送门 双倍经验&#xff1a;L-Gap Substrings 基本做法类似&#xff0c;这道题的差分改掉&#xff0c;map 改掉就好了QWQ noteskey 反正就是先差分一下&#xff0c;然后把首项丢掉&#xff08;没有比较的对象自然就不算趋势了&#xff09; 然后就是建 SAM…...

关于政府补贴企业做网站的事/软文营销常用的方式

大三上&#xff1a;数据库系统概论所有实验报告和课后作业 文章目录一、实验目的及要求二、实验内容&#xff08;或实验原理、实验拓扑&#xff09;三、实验设备与环境四、实验设计方案&#xff08;包括实验步骤、设计思想、算法描述或开发流程等&#xff09;五、实验结果&…...

石家庄网站建设成功案例/软文推广有哪些平台

0. 其他处理 计时&#xff1a; tic net train(net, X, y); toc1. 一个简单的 demo&#xff08;单层感知器&#xff09; P [1, 1, 1, 1, 0, 0, 0, 0; 0, 0, 1, 1, 0, 1, 1, 0; 0, 1, 0, 1, 1, 0, 1, 0];% 每一列表示一个输入样本 T [-1, 1, 1, 1, -1, -1, 1, -1];% 表示输出值…...

兰州城关区建设局网站/佛山seo

单身!  依然单身&#xff01;  吉哥依然单身&#xff01;  DS级码农吉哥依然单身&#xff01;  所以&#xff0c;他生平最恨情人节&#xff0c;不管是214还是77&#xff0c;他都讨厌&#xff01;    吉哥观察了214和77这两个数&#xff0c;发现&#xff1a;  214…...