rbd常用的配置参数
本文分享自天翼云开发者社区《rbd常用的配置参数》,作者:l****n
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:是否开发底层对象的分配。
rbd常用的配置参数的更多相关文章
- 常用JVM配置参数
常用JVM配置参数 Trace跟踪参数 堆的分配参数 栈的分配参数 Trace跟踪参数 1.打开GC的日志,如果在程序的运行过程中,系统发生了GC,就会打印相关的信息. -verbose:gc -XX ...
- JVM虚拟机(1)---常用JVM配置参数
常用JVM配置参数 常用JVM配置参数主要有:Trace跟踪参数.堆的分配参数.栈的分配参数. 一.Trace跟踪参数 跟踪参数用于跟踪监控JVM,对于开发人员来讲用于JVM调优以及故障排查的. 1. ...
- JVM学习八:常用JVM配置参数
前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块. 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是 ...
- 天地图常用WMTS配置参数
wmts常用参数 var matrixIds = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', ...
- Java虚拟机详解----常用JVM配置参数
本文主要内容: Trace跟踪参数 堆的分配参数 栈的分配参数 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多 ...
- 【转】Java虚拟机详解----常用JVM配置参数
原文地址:http://www.cnblogs.com/smyhvae/p/4736162.html 本文主要内容: Trace跟踪参数 堆的分配参数 栈的分配参数 零.在IDE的后台打印GC日志: ...
- JVM学习一:常用JVM配置参数
原文链接:https://www.cnblogs.com/pony1223/p/8661219.html 在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技 ...
- Java虚拟机(四):常用JVM配置参数
一.VM选项 - : 标准VM选项,VM规范的选项 -X: 非标准VM选项,不保证所有VM支持 -XX: 高级选项,高级特性,但属于不稳定的选项 参见Java HotSpot VM Options 二 ...
- JVM内核-原理、诊断与优化学习笔记(三):常用JVM配置参数
文章目录 Trace跟踪参数 -verbose:gc (打开gc的跟踪情况) -XX:+printGC(打开gc的log开关,如果在运行的过程中出现了gc,就会打印出相关的信息.) -XX:+Prin ...
- 深入JVM内核--常用JVM配置参数
Trace跟踪参数 -verbose:gc -XX:+printGC 可以打印GC的简要信息 [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790K ...
随机推荐
- php 版本升级后需要对代码进行兼容性检测
来到需要检测代码的目录下 需要提前安装 docker 执行 docker run --rm -v $(pwd):/app vfac/php7compatibility 7.3 . --ignore=v ...
- Mysql分页实现及优化
通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询.例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY ...
- IT人写好简历的原则与方法
来源: 51cto 发布时间: 2010-03-19 14:49 阅读: 3270 次 推荐: 3 原文链接 [收藏] 时常,在各大论坛看到不少的朋友在张贴简历,希望得到他人的指点. ...
- Kafka 1.1.1 源码编译
下载源码 git clone -b 1.1.1 https://github.com/apache/kafka.git --depth=1 使用这样的方式下载主要是解决两个问题:其一,下载指定分支 ...
- vue项目中如何加载markdown
场景 今天忽然临时接到一个需求: 就是将markdown文件直接在vue项目中进行加载,并正常显示出来. 这......,我知道是可以进行加载markdown文件的. 但是我之前没有做过,答复的是:可 ...
- 【朝花夕拾】蓝牙&WiFi常识篇
一.蓝牙常识点 1.常见英文缩写 缩写 英文全称 释义 BLE Bluetooth Low Energy 低功耗蓝牙 BR Basic Rate 基本速率,一般说的经典蓝牙就是指BR/EDR EDR ...
- MySQL 8.0 为什么会放弃查询缓存?
什么是查询缓存? 查询缓存就是将一次查询结果存储在内存中,假如下一次查询结果在内存中,就直接在内存中读取. 设计初衷 当然是提高性能,通过缓存来减少解析器.优化器.存储引擎的执行时间. MySQL查询 ...
- 使用自定义 JsonConverter 解决 long 类型在前端的精度问题
问题 Javascript 的 number 类型存在精度限制,浏览器反序列化 JSON 时,无法完整保留 long 类型的精度. 在 JSON 序列化时将 long 转换为 string 进行传递就 ...
- 认识Redis集群
概述 Redis单实例的架构,从最开始的一主N从,到读写分离,再到Sentinel哨兵机制,单实例的Redis缓存足以应对大多数的使用场景,也能实现主从故障迁移. 但是,在某些场景下,单实例存Redi ...
- 解锁 Git Log 更多实用技巧
目前,在软件开发的协作中,Git 无疑是版本控制的王者. 而其中的 git log 命令,犹如一把强大的历史探寻之剑,能够帮助我们深入洞察项目的演进历程. 本篇将为大家整理解读几个实用的 git Lo ...