首页 > 其他分享 >每天5分钟复习OpenStack(十五)Ceph与Bcache结合

每天5分钟复习OpenStack(十五)Ceph与Bcache结合

时间:2024-09-04 21:46:45浏览次数:10  
标签:ceph VG -- dev Ceph OpenStack Bcache osd

上一章我们成功部署了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输出的VGLV编号分隔符是带两个--而,vgdisplaylvdisplay都是一个-做为分隔符,因此在搜索时过滤最后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运维技巧。

标签:ceph,VG,--,dev,Ceph,OpenStack,Bcache,osd
From: https://www.cnblogs.com/alex0815/p/18397410

相关文章

  • ceph:通过传统用户空间 tgtd 工具 以 iscsi 方式使用ceph rdb设备
    如题:安装用户空间的iscsitarget工具。以麒麟v10为例:首先,安装以下iscsitarget工具 然后,配置/etc/tgt/targets.conf,配置cephrbd后端请注意:最核心的配置其实是“bsopts”!根据“scsi-target-utils-rbd”的相关说明文档,可通过配置“bsopts”来制定ceph.conf配置文件的位置。......
  • K8s使用cephfs(静态和动态两种)
    一、K8s节点安装ceph-commonCephFS是Ceph中基于RADOS(可扩展分布式对象存储)构建,通过将文件数据划分为对象并分布到集群中的多个存储节点上来实现高可用性和可扩展性。首先所有k8s节点都需要安装ceph-common工具:yum-yinstallepel-releaseceph-common二、静态供给方......
  • 云原生存储Rook部署Ceph
            Rook是一款云原生存储编排服务工具,Ceph是一种广泛使用的开源分布式存储方案,通过Rook可以大大简化ceph在Kubernetes集群中的部署和维护工作。        Rook由云原生计算基金会(CNCF)孵化,且于2020年10月正式进入毕业阶段。Rook并不直接提......
  • Ceph Reef(18.2.X)之对象访问策略配置
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.对象存储概述1.对象存储的访问方式2.基于http方式访问对象存储注意事项3.查看存储桶默认策略二.定制策略1.定制......
  • ceph:纯手工配置osd磁盘及服务
     #######################################################################准备ceph用户环境(shell、homedir)准备ceph的相关父目录准备ceph.confceph.client.admin.keyring主备相同容量的整个磁盘、一个裸分区、一个lvm逻辑分区;或一个posix文件系统目录特别提醒:ceph用户需......
  • ceph:纯手动配置mon
    准备:mon的keyringcd/etc/cephceph-authtool-Cceph.keyring-g-n'mon.'--capmon'allow*'--caposd'allow*'--capmgr'allow*'--capmds'allow*'ceph-authtoolceph.keyring-l#vi编辑这个ceph.key......
  • Openstack 与 Ceph集群搭建(完结): 配置Ceph作为Openstack后端存储
    文章目录参考文章1.前置任务1.0修改Openstack配置文件1.1.完成搭建的Ceph集群1.2.完成存储pool的创建1.3.针对OpenStack服务提供的Cephkeyring1.3.1.生成glance的keyring1.3.2.生成Cinder的keyring1.3.3.生成Cinder-backup的Keyring1.3.4.生成Nova的keyring2......
  • ceph集群
    环境3台centos 8机器,每台机器上边3个磁盘机器名:ceph1、ceph2、ceph3ceph-ansible集群部署在ceph1上边准备好ceph-ansiblegitclonehttps://github.com/ceph/ceph-ansible.gitcdceph-ansiblegitcheckoutstable-5.0#centos7用4.0pip3install-rrequirements.txt......
  • ceph-messenger模块代码走读(1)
    messenger代码走读messenger的使用以mgr代码为例,看看messengrr的初始化和启动。//构造函数,初始化一个client_messenger对象。MgrStandby::MgrStandby(intargc,constchar**argv):Dispatcher(g_ceph_context),monc{g_ceph_context,poolctx},client_messenger(M......
  • 探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径
    在Kubernetes生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建Kubernetes集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、GlusterFS、NFS、Longhorn和openEBS等解决方案已在业界......