Ceph底层FileStore模式下,采用了写日志,就是Journal。实现机制类似数据库的写日志。写数据时,会在journal上写日志,保证出现故障时可以从日志恢复。 Journal源代码中主要涉及两个文件,os目录下的FileJournal和FileStore。FileStore中会有FileJournal的一个实例,调用都在这里发生。 写Journal有两种模式,parallel和writeahead。顾名思义,parallel就是日志和磁盘数据同时写,writeahead是先写日志,只要日志写成功了,就回返回。后台每隔一段时间后,会同步日志中的写操作,实现落盘。这种方法带来的好处就是,可以把很多小IO合并,形成顺序写盘,提高IOPS。 第二种方法中,官方文档提到,
注意:这里面提到会停止写操作,从日志队列的表现来看,就是filestore写队列比较满时,日志队列会为空,一般这时候,就是在同步操作。默认的最大同步间隔 同步的流程图如下 |
|
来自: hello_worldw6 > 《ObjectStore》