Ceph配置参数(三)

Ceph配置参数(一)

Ceph配置参数(二)

8、MONITOR CONFIG REFERENCE

http://ceph.com/docs/master/rados/configuration/mon-config-ref/

客户端在读写数据前,都比去和monitor取得联系,获得cluster map,结合CRUSH算法计算得到对象的位置。

(1)最小配置

生成一个fsid和monitorde的最小配置,配置字段[mon]或[mon.a],ceph监视器默认监听6789端口。

  • 主机名(e.g. mon host = hostname1,hostname2,hostname3): mon host
  • 主机IP(e.g. mon addr = 10.0.0.10:6789,10.0.0.11:6789,10.0.0.12:6789):mon addr

(2)初始成员

必须是个奇数,表示一个初始的最小monitor数,active的monitor达到这个数才能启动。

  • 初始monitor成员ID: mon initial members

(3)数据

monitor存储数据的路径,因为monitor也是在节点上的,monitor会做很多fsync()操作,影响OSD的工作负载,在0.58以前的版本中,monitor的数据是以文件形式存放的,可以用ls,cat等命令直接查看,但是一致性难以保障。之后的版本,数据以key/value的形式存放,并且需要原子性操作,保证一致性,数据保存路径不建议改动。

  • monitor数据保存路径(e.g. /var/lib/ceph/mon/$cluster-$id):mon data

(4)存储容量

当集群的使用率接近"最大容量"时,monitor会阻止对OSD的读写请求以避免数据丢失,考虑到多个主机可能同时断电造成集群容量剧减,这个"最大容量"通常小于实际的集群总容量,配置段位[global]。

  • 被认为集群已满的最大使用百分比(默认.95):mon osd full ratio
  • 被认为集群接近已满的最大使用百分比(默认.85):mon osd nearfull ratio

(5)monitor间的同步

集群间存在多Monitor共同工作时,存在同步的问题,不必每个monitor都active集群才工作,只要达到最小可工作数量就行了,这个数量在mon initial members中规定,所以有可能一些mon在某一时刻不工作,后来恢复正常后状态就落后了。monitor三种角色:leader,最先获得最新的cluster
map;provider,拥有最新的cluster map,但不是最先获得的;requester,状态落后,必须同步后方可工作。

在一个同步过程中,requester向leader请求同步,leader负责分派同步工作给provider,并告知requester去找provider,这样做分摊了工作负载。provider以chunk为单位发给requester最新的状态数据,同步完后,requester告知leader完成,leader恢复一个ACK宣布同步结束。

同步总是在一个新的monitor加入集群时发生。在运行过程中,cluster map不断更新,这三个角色也不断变化,如果provider接受到同步任务但自身状态落后于leader时,它可以终止同步并告知leader。同步完成后,ceph发出一个trimming,这个操作大概是修剪多余的状态数据,并且这个操作必须在PG状态是active+clean时进行。

  • trimming操作超时(默认30s):mon sync trim timeout
  • 同步时心跳超时(monotor之间的心跳检查,默认30s):mon sync heartbeat timeout
  • 同步时心跳检查间隔(默认5s):mon sync heartbeat interval
  • 同步超时(默认30s):mon sync timeout
  • 同步最大重试次数(默认5):mon sync max retries
  • 同步最大负载量(默认1045676):mon sync max payload size
  • leader等待requester同步的最大时间(默认10s):mon accept timeout
  • map更新前收集更新信息的时间间隔(默认1s):paxos propose interval
  • 收集更新信息的最小时间(默认0.05s):paxos min wait
  • trimming操作前能容忍的最大proposal数(默认30):paxos trim tolerance
  • 未trimming时最大的版本数(默认100):paxos trim disabled max versions
  • Monitor版本租约秒数(默认5):mon lease
  • leader去更新其他monitor租约的时间间隔数(默认3s):mon lease renew interval
  • leader等待provider告知其版本的秒数:mon lease ack timeout
  • OSD map维持的最小版本号数量(默认500):mon min osdmap epochs
  • monitor维护的最多的PG map版本号数量(默认500):mon max pgmap epochs
  • monitor保留的最大的log版本号数量(默认500):mon max log epochs

(6)时钟

不同节点间时钟应该同步,否则一些超时和时间戳相关的机制将无法正确运行,运行又monitor的节点还需要安装NTP来同步时钟。然而NTP 级别的时钟同步还不够,即使NTP同步好,ceph也会报出时钟偏移警告,工作量,网络延迟,配置覆盖等也会对同步有影响。

  • 相对于系统时间的偏移:clock offset
  • monitor计时间隔秒数(默认5):mon tick interval
  • monitor间的clock drift(时钟嘀嗒数?,默认.05s):mon clock drift allowed
  • 时钟偏移补偿指数(默认5):mon clock drift warn backoff
  • leader时间检查间隔(默认300s):mon timecheck interval

(7)客户端

  • 客户端每隔Ns尝试一个Monitor直到建立连接(默认3):mon client hung interval
  • 客户端每个Ns会去ping一个monitor(默认10):mon client ping interval
  • 每一个客户端信息产生的log entires数(默认1000):mon client max log entries per message
  • 内存中的客户端信息数据大小(默认100ul << 20):mon client bytes

(8)杂项

  • 集群允许的最大OSD数量(默认10000):mon max osd
  • 集群为客户端和daemon预分配的全局ID数量(默认100):mon globalid prealloc
  • 写了这么多个对象后和底层文件系统同步一次(默认5):mon sync fs threshold
  • subscription 间隔秒数(默认500):mon subscribe interval
  • 使最近的N个PGmap统计数据呈现平滑趋势(默认2):mon stat smooth intervals
  • monitor在bootstrapping前寻找其他Monitor的时间(默认2s):mon probe timeout
  • 元数据和OSD信息可以在内存中驻留的信息大小(默认400ul << 20byte):mon daemon bytes
  • 每个事件最大的log entries数(默认4096):mon max log entries per event

9、Heartbeat Settings

OSD靠定期检查heartbeat来确认相邻的OSD有没有down,以及在peer过程中检查错误和向monitor汇报自身情况,包括故障发生,PG状态改变,以及检查monitor有没有down。

http://ceph.com/docs/master/rados/configuration/mon-osd-interaction/

(1)MONITOR SETTINGS

  • 向monitor报告down的最小OSD数(默认1):mon osd min down reporters
  • OSD向monitor报告OSD down的最小次数(默认3):mon osd min down reports
  • 宣布一个无响应的OSD down的超时(默认900):mon osd report timeout
  • 自动标记为out的最大的CRUSH单位类型(默认rack):mon osd downout subtree limit

注:是不是说最大可以标记一个机架out了?

  • 标记一个OSD状态为down和out之前ceph等待的秒数(默认300):mon osd down out interval
  • 自动标记一个新加入的OSD状态为in(默认true):mon osd auto mark new in
  • 自动标记启动中的OSD状态为in(默认为false):mon osd auto mark in
  • 标记在启动过程中被自动标记为out的OSD状态为in(默认true):mon osd auto mark auto out in
  • The minimum ratio of up Ceph OSD Daemons before Ceph will mark Ceph OSD Daemons down(默认.3):mon
    osd min up ratio
  • The minimum ratio of in Ceph OSD Daemons before Ceph will mark Ceph OSD Daemons out(默认.3):mon
    osd min in ratio
  • The number of seconds laggy estimates will decay(默认60*60):mon osd laggy halflife
  • The weight for new samples in laggy estimation decay(默认0.3):mon osd laggy weight
  • If set to true, Ceph will scale based on laggy estimations(默认true):mon osd adjust heartbeat
    grace
  • The weight for new samples in laggy estimation decay(默认.3):mon osd laggy weight

(2)OSD SETTINGS

  • 心跳检查的OSD网络地址(默认主机IP):osd heartbeat address
  • OSDping它的peer的时间间隔(默认6s):osd heartbeat interval
  • OSD心跳停止间隔(默认20s):osd heartbeat grace
  • OSD ping一个monitor的时间间隔(默认30s):osd mon heartbeat interval
  • OSD报告monitor前等待的最大时间(默认120s):osd mon report interval max
  • OSD报告monitor前等待的最小时间(默认5s):osd mon report interval max
  • monitor恢复ACK的超时(默认30s):osd mon ack timeout

10、网络配置

http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/

(1)集群网络配置

配置字段为[global]

  • 公共网络:public network
  • 私有网络:cluster network

注:建议私有地址和internet还有公共网络部能互通,这个地址用来做OSD的心跳检查,对象的复制和恢复,单独配置私有地址而不是用公用网络做这些对性能有提升。

(2)monitor网络配置

配置字段[mon.a]

  • 主机名(不要使用loaclhost):host
  • monitor 地址:mon addr

(3)OSD网络配置

配置字段[osd.0]

  • 公共地址:public addr
  • 私有地址:cluster addr

(4)绑定

  • OSD和MDS进程绑定的最小端口号(默认6800):ms bind port min
  • OSD和MDS进程绑定的最大端口号(默认:7100):ms bind port max
  • 允许进程使用IPV6的地址(默认false):ms bind ipv6

(5)TCP

  • 开启nodelay选项(默认true):tcp nodelay

注:ceph默认关闭了TCP的buffering,使得请求不缓存立即下发,这样增加了网络流量,增加了延迟如果你要传输大量小文件,就把这个选项关了吧。

  • 收到网络连接终止时socket缓冲区大小(默认关闭):tcp rcvbuf
  • tcp读超时(默认900s):ms tcp read timeout

注:一个客户端请求另一个ceph daemon时需要新建立一个连接,但是又不想关闭现在的连接,现在的连接就不用了,过了这么多秒后,这个连接被标记为空闲状态。

时间: 2024-12-11 07:29:51

Ceph配置参数(三)的相关文章

Ceph配置参数(二)

Ceph配置参数(一) 6.KEYVALUESTORE CONFIG REFERENCE http://ceph.com/docs/master/rados/configuration/keyvaluestore-config-ref/ KeyValueStore is an alternative OSD backend compared to FileStore. Currently, it uses LevelDB as backend. KeyValueStore doesn't nee

ceph配置参数优化

ceph的配置文件/etc/ceph.conf中可配置参数很多,可以通过以下命令查看: [email protected]:/var/run/ceph# ceph --admin-daemon ceph-mon.osd2.asok config show|wc -l 759 一直想对一些参数进行修改以达到优化性能的目的.以前一篇文章和其它一些资料为基础,总结一下可优化的配置.

Ceph配置参数(一)

1.POOL, PG AND CRUSH CONFIG REFERENCE http://docs.ceph.com/docs/master/rados/configuration/pool-pg-config-ref/ 所属配置段:[global] 格式:osd pool default pg num = 250 每个存储池最大pg数:mon max pool pg num 同一个OSD Daemon中创建PG所间隔的秒数:mon pg create interval 等待多少秒PG可被认为被

Ceph性能优化 之 配置参数调优

该文同时发表在盛大游戏G云微信公众号,粘贴于此,方便各位查阅 Ceph,相信很多IT朋友都听过.因为搭上了Openstack的顺风车,Ceph火了,而且越来越火.然而要用好Ceph却也不是件易事,在QQ群里就经常听到有初学者抱怨Ceph性能太烂,不好用.事实果真如此吗!如果你采用Ceph的默认配置来运行你的Ceph集群,性能自然不能如人意.俗话说,玉不琢,不成器:Ceph也有它的脾性,经过良好配置优化的Ceph性能还是不错的.下文简单分享下,盛大游戏G云在Ceph优化上的一些实际经验,如有错误之

Mysql一些重要配置参数的学习与整理(三)?

原文地址:Mysql一些重要配置参数的学习与整理(三) 之前的Mysql一些重要配置参数的学习与整理(一)和Mysql一些重要配置参数的学习与整理(二)中,对于线上mysql服务器的一些配置参数进行了学习,不过参阅官方doc后对其中的一些参数的配置的理解不是很清晰,今天与同事进行了交流和沟通,都一些重要的配置交换了意见,本篇就对其中的一些疑问点,整理一下心得.     skip-external-locking作用     在Mysql Linux 的发行版中,默认存在一行skip-extern

(三)Kafka0.8.2官方文档中文版系列-topic配置参数

前文链接: (一)Kafka0.8.2官方文档中文版系列-入门指南 (二)Kafka0.8.2官方文档中文版系列-API Topic-level configuration(主题级别的参数配置) 与主题相关的配置具有全局默认值(参考broker部分)和每个主题可选重写(broker部分有明确提示).如果主题没有重写这些配置,使用全局默认设置.可以使用--config添加一个或者多个自定义选项.下面这个例子创建了一个名为my-topic的主题,它自定义了最大消息大小和刷新速率: > bin/kaf

SpringCloud : 接入 微信公众号平台(三)、获取JsSDK配置参数

Java: import com.phpdragon.wechat.proxy.config.WeChatConfig; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.bean.WxJsapiSignature; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService;

关于ntp时间同步理论及配置参数-20170804

[原创]关于ntp时间同步理论及配置参数20170804 前言 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.无论是平时使用的私人计算机还是在工作中搭建的服务器集群,时间的统一性和准确性是十分重要的.它是用来同步网络中各个计算机的时间的协议. 在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时间,还是按照B这台计算机的时间?NTP就是用来解决这个问题的,NT

@requesMapping的可配置参数和标注的处理方法的可选参数

使用@requesMapping标注的处理函数包括的可选参数,除了HttpServletRequest, HttpServletResponse, HttpSession这些web应用中常见的参数及之前提到过的@PathVariable外,还可以包括以下可选的参数,其中大部分参数的顺序没有特殊要求的. java.util.Locale 当前请求所属的区域设置. java.io.InputStream或java.io.Reader 用来读取request content,相当于 request.g