rbd常用的配置参数

天翼云开发者社区
• 阅读 214

本文分享自天翼云开发者社区《rbd常用的配置参数》,作者:l****n

rbd的基本介绍 rbd的架构如下图所示:

rbd常用的配置参数

rbd采用CRUSH算法实现数据的随机分布。CRUSH算法,即Controlled Replication Under Scalable Hashing,是一种基于哈希的数据分布算法。CRUSH算法以数据唯一标识符、当前存储集群的拓扑结构以及数据备份策略作为CRUSH的输入,可以随时随地通过计算获取数据所在的底层存储设备并直接通信获取或者写入数据,从而避免查表操作,实现去中心化和高度并发,将数据均衡的存储到各个存储节点,实现数据存储的负载均衡;另外去中心化以及哈希的数据随机分布,使得rbd存储在理论上具备无限的可扩展性。CRUSH算法支持数据的多种备份策略,支持可配置副本数,支持存储节点故障域定义与划分,从而使整个系统具备了高可靠性和高可用性。

rbd的主要参数 在实际使用中需要配置rbd的一些参数,下面对rbd的一些常用参数进行一下说明: 1.rbd_cache: 是否使能缓存,默认情况下开启。 2.rbd_cache_size:最大的缓存大小,默认32MB。 3.rbd_cache_max_dirty:缓存中脏数据的最大值,用来控制回写,不能超过rbd cache size,默认24MB。 4.rbd_cache_target_dirty:开始执行回写的脏数据大小,不能超过rbd cache max dirty,默认16MB。 5.rbd_cache_max_dirty_age: 缓存中单个脏数据的最大缓存时间,避免因为未达到回写要求脏数据长时间存在缓存中,默认1s。 6.rbd cache max dirty object:最大的Object对象数,默认为0,表示通过rbd cache size计算得到,librbd默认以4MB为单位对磁盘Image进行逻辑切分,每个chunk对象抽象为一个Object;librbd中以Object为单位来管理缓存,增大该值可以提升性能。 7.rbd cache writethrough until flush:默认为true,该选项是为了兼容linux-2.6.32之前的virtio驱动,避免因为不发送flush请求,数据不回写;设置该参数后,librbd会以writethrough的方式执行io,直到收到第一个flush请求,才切换为writeback方式。 8.rbd cache block writes upfront:是否开启同步io,默认false,开启后librbd要收到Ceph OSD的应答才返回。 9.rbd readahead trigger requests: 触发预读的连续请求数,默认为10。 10.rbd readahead max bytes: 一次预读请求的最大io大小,默认512KB,为0则表示关闭预读。 11.rbd readahead disable after bytes: 预读缓存的最大数据量,默认为50MB,超过阀值后,librbd会关闭预读功能,由Guest OS处理预读(防止重复缓存);如果为0,则表示不限制缓存。 12.objecter inflight ops: 客户端流控,允许的最大未发送io请求数,超过阀值会堵塞应用io,为0表示不受限。 13.objecter inflight op bytes:客户端流控,允许的最大未发送脏数据,超过阀值会堵塞应用io,为0表示不受限。 14.rbd_enable_alloc_hint:是否开发底层对象的分配。

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
利用DUCC配置平台实现一个动态化线程池
在后台开发中,会经常用到线程池技术,但线程池核心参数的配置很大程度上依靠经验,所以我们很难一劳永逸地规划一个合理的线程池参数。本文以公司DUCC配置平台作为中心,以修改线程池核心线程数、最大线程数为例,实现一个简单的动态化线程池。
Stella981 Stella981
3年前
Ceph Block Device块设备操作
使用cephblockdevice需要如下三个步骤:1\.在ceph集群的pool中创建一个BlockDeviceimage.2\.cephClient使用RBD设备与ceph集群的BlockDeviceimage进行映射(Map)。3\.cephClient的UserSpace便可以挂载(Mount)该RBD设备。
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Stella981 Stella981
3年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Stella981 Stella981
3年前
Linux设置文件夹共享
linux环境实现文件夹共享,常用的方法就是安装Samba,以下就是实现文件夹共享的步骤:一、安装Samba  yumyinstallsambasambaclientsambacommon二、修改Samba配置文件1.配置内核参数 ulimit
Stella981 Stella981
3年前
Python time模块 返回格式化时间
常用命令  strftimetime.strftime("%Y%m%d%H:%M:%S",formattime)第二个参数为可选参数,不填第二个参数则返回格式化后的当前时间日期201812112:00:00time.strftime('%H:%M:%S')返回当前时间的时分秒time.strftim
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
3年前
SpringBoot 开发秘籍
!(https://oscimg.oschina.net/oscnet/0b0e2e35748141a9a2de5f4eb579de18.png)概述在项目开发过程中,某个功能需要依赖在配置文件中配置的参数。这时候就可能出现下面这种现象问题:有时候经常出现项目启动了,等到使用某个功能组件的时候出现异常,提示参数未配置或者bean
基于快照的异步远程复制介绍
本文介绍了基于RBD快照的异步远程复制技术
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
696
粉丝
15
获赞
40