每天5分钟复习OpenStack(十五)Ceph与Bcache结合
上一章我们成功部署了bcache,这一章我们将Ceph与Bcache结合来使用,使用Bcache来为ceph的数据盘提速。
1 ceph 架构
一个标准的ceph集群可能是如下的架构,SSD/NVME 存储元数据,而SATA盘存储数据。这样的架构下,物理介质的SATA盘读写速率上限决定了存储集群Ceph的上限(木桶效应)。如果在此架构下我们给SATA盘加上一层缓存层.

在官方文档中给出了缓存层的结构如下

其整体思路都是一样,只是缓存层的方案因此长时间没有人维护。目前还处在非生产可用阶段 。
而bcache 技术则是经过了时间的洗礼,在ceph缓存技术中是比较成熟的方案。
则采用Bcache存储架构变成了如下架构。

在此架构下我们将Bcache的模式修改为writeback模式,则在使用缓存的情况下Ceph对数据盘写入性能得到了极大的提升。在生产环境中我们只需要专注于解决增加缓存的命中率即可。实际上大多数生产环境正是这么做的。
2 部署
在第十三章中我们介绍了ceph单节点的部署,如果你还没有一个单节点的ceph环境,那赶紧跳转回去,在自己的虚拟机环境上搭建一个最小的ceph环境。
我们只需要在ceph osd部署时将 --data 盘的参数指向bcache 则即可以完成上述架构的部署
ceph-volume --cluster ceph lvm create --bluestore \
--data /dev/bcache0 --block.db /dev/sde1
ceph-volume --cluster ceph lvm create --bluestore \
--data /dev/bcache1 --block.db /dev/sde2
ceph-volume --cluster ceph lvm create --bluestore \
--data /dev/bcache2 --block.db /dev/sde3
此时的--data 指定了数据盘为bcache0 、bcache1、bcache2,sde盘的分区1、2、3 则对应了block.db 。

此时在查看ceph集群的状态
3 思考
每一个数据盘都对应一个三级目录结构如下
sdd
└─bcache0
└─ceph--f015264a--34a3--484e--b17a--1811290fea04-osd--block--c6b8e971--5246--46db--93f8--0ceda4626015
3.1 其中这一长串都是到底是什么?


知晓LVM是什么的小伙伴可以清晰看出,右边这一侧是LV(Logical Volume编号,而左边这一侧是 VG (Volume Group)编号。
我们知道,LVM --VG --PV 对应一个三级结构,因此知道了VG ,通过 vgdisplay pvdisplay 就能知晓了PV ,而PV 一般就是一个分区或磁盘,此时对应ceph集群就是BcacheX,此时X是Bcache的编号。通过Bcache的编号,在结合lsblk 就知晓了真正存储数据的后端数据盘的盘符。
(注意 lsblk输出的VG 和LV编号分隔符是带两个--而,vgdisplay 和lvdisplay都是一个-做为分隔符,因此在搜索时过滤最后1段就行)
3.2 为什么我们要知晓这些?或者换一句话说知道这些有什么用了?

我们知道ceph的数据盘在ceph中表现为一个osd.2 等数字,现在问题来了,如果osd.2 坏了需要换盘,你怎么知道osd.2对应的数据盘是哪一块盘了?
总结下来就是如下图所示

从图中可以知道osd 对应编号 和磁盘的对应关系,那和VG LVM编号又有什么关系了,通过osd的安装目录就已经知晓了 磁盘和osd的对应的关系。管他什么LV VG了。

我们试想一个这样一个场景如果bcache2坏了,此时lsblk显示的ceph字段自然也不存在了?你怎么关联osd编号和磁盘的对应关系了?此时VG和PV就派上了用途。
因此作者建议在学习时,不要做一个工具人,而是要做到知其然也要知其所以然。
3.3 有没有简单命令 一眼就能看出的其对应关系的 ?
ceph-volume lvs list 命令就可以直接实现

写在最后:
目前我们已经完成了一个最小化的ceph集群,ceph作为一个分布式存储,知晓其概念,并进行维护是一项艰巨的任务,记下来我们将从理论到实践,重点阐述下ceph运维技巧。

每天5分钟复习OpenStack(十五)Ceph与Bcache结合的更多相关文章
- 《man男人》-linux命令五分钟系列之十五
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- 7.24,《C Primer Plus》复习第十五章第二小题
编写一个程序,通过命令行参数读取两个二进制字符串,对这两个二进制数使用~运算符,&运算符.|运算符,并以二进制字符串形式打印结果(如果无法使用命令行环境,可以通过交互式让程序读取字符串) 编写 ...
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
- OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- CSS3秘笈复习:十三章&十四章&十五章&十六章&十七章
第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮 ...
- 大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归
第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归 上一节中我们讲解了L1和L2正则的概念,知道了L1和L2都会使不重要的维度权重下降得多,重要的维度权重下降得少,引入 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- 十五个最常用Linux命令行 - imsoft.cnblogs
众多Linux管理员在使用Linux的时候会经常使用到很多Linux命令行,其中有绝大部分不是经常使用到的.在本文中主要为大家总结了经常使用的十五个最常用Linux命令行,希望对刚刚接触Linux命令 ...
- NeHe OpenGL教程 第三十五课:播放AVI
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记
第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...
随机推荐
- ComfyUI进阶篇:ComfyUI核心节点(三)
ComfyUI核心节点(三) 前言: 学习ComfyUI是一场持久战.当你掌握了ComfyUI的安装和运行之后,会发现大量五花八门的节点.面对各种各样的工作流和复杂的节点种类,可能会让人感到不知所措. ...
- SpringBoot 2.5.5整合SpringSecurity+JWT
目录结构 添加依赖 <!-- SpringSecurity --> <dependency> <groupId>org.springframework.boot&l ...
- WPF/C#:在WPF中如何实现依赖注入
前言 本文通过 WPF Gallery 这个项目学习依赖注入的相关概念与如何在WPF中进行依赖注入. 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于 ...
- Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源 @ 目录 1. Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向 ...
- windows安装PHP的redis
一定要先看vc版本和位 配置php的redis扩展 以php7.3 nts版为例,不同的php版本对应不通的redis扩展:下载扩展文件:https://windows.php.net/downloa ...
- [oeasy]教您玩转python - 0006 - 自由软件运动和开源运动
顺序执行 回忆上次内容 上次写了10000行代码 10000行代码 都是写在明面上的 人家一下载py 文件 就能看个明明白白 修改或者运行程序都很方便 这程序全都这么公开出来 大家随意修改 ...
- 搭建lnmp环境-php(第二步)
系统环境:centos7 php7.4 编译安装太繁琐,这里用yum安装即可 ===========yum形式安装======== # 安装EPEL源(nginx那里已安装了,跳过) yum inst ...
- RBAC权限模型概述
RBAC即role-based access control,基于角色的访问控制 通过角色来管理用户对系统资源的访问权限.RBAC是一种权限管理模型,核心思想是分离用户与具体权限,通过角色作为中介来实 ...
- windows环境xampp搭建php电商项目/搭建禅道
windows环境xampp搭建php论坛/电商项目 一,首先下载xampp https://www.apachefriends.org/zh_cn/index.html 下载之后解压到E盘或者F盘的 ...
- SLF4J2.0.x与Logback1.3.x的绑定变动还是很大的,不要乱点鸳鸯谱
开心一刻 今天跟我姐聊天 我:我喜欢上了我们公司的一个女同事,她好漂亮,我心动了,怎么办 姐:喜欢一个女孩子不能只看她的外表 我:我知道,还要看她的内在嘛 姐:你想多了,还要看看自己的外表 背景介绍 ...