日志配置参考
Ceph的OSD使用日志的原因有二种:速度和一致性。
速度:日志允许OSD快速地提交小块数据的写入,Ceph把小片、随机IO依次写入日志,这样,后端文件系统就有机会归并写入动作,并最终提升并发承载力。因此,使用OSD日志能展现出优秀的瞬间写性能,实际上却没有任何写动作,因为文件系统把它们捕捉到了日志。
一致性:Ceph的OSD需要一个能保证原子操作的文件系统接口。OSD把一个操作的描述写入日志,然后把操作应用到文件系统,这需要原子更新一个对象(例如归置组元数据)。每隔一段 filestore max syncinterval 和 filestore min sync interval之间的时间,OSD停止写入、把日志同步到文件系统,这样允许OSD修整日志里的操作并重用空间。失败后,OSD从上次的同步点开始重放日志。
OSD支持下面的日志设置:
journal dio
说明:启用径直IO到日志,需要 journal block align设置为true。
类型:Boolean
要求:Yes when using aio.
默认:true
journal aio
说明:异步写入日志时用libaio库,需要 journal dio设为true。
类型:Boolean
要求:No.
默认:false
journal block align
说明:块对齐写,dio和aio需要。
类型:Boolean
要求:Yes when using dio and aio.
默认:true
journal max write bytes
说明:一次写入日志的最大尺寸。
类型:Integer
要求:No
默认:10 << 20
journal max write entries
说明:一次写入日志的最大数量。
类型:Integer
要求:No
默认:100
journal queue max ops
说明:队列里一次允许的最大操作数量。
类型:Integer
要求:No
默认:500
journal queue max bytes
说明:队列里一次允许的最大字节数。
类型:Integer
要求:No
默认:10 << 20
journal align min size
说明:对齐大于指定最小值的数据有效载荷。
类型:Integer
要求:No
默认:64 << 10
journal zero on create
说明:在创建文件系统期间用0填充整个日志。
类型:Boolean
要求:No
默认:false