Red Hat Training

A Red Hat training course is available for Red Hat Ceph Storage

Chapter 9. Journal Configuration Reference

Ceph OSDs use a journal for the following reasons:

Speed
The journal enables the Ceph OSD Daemon to commit small write operations quickly. Ceph writes small, random I/O to the journal sequentially, which tends to speed up bursty workloads by allowing the backing file system more time to coalesce write operations. The Ceph OSD Daemon’s journal, however, can lead to spiky performance with short spurts of high-speed writes followed by periods without any write progress as the file system catches up to the journal.
Consistency
Ceph OSD Daemons require a file system interface that guarantees atomic compound operations. Ceph OSD Daemons write a description of the operation to the journal and apply the operation to the file system. This enables atomic updates to an object (for example, placement group metadata). Every few seconds—​between filestore max sync interval and filestore min sync interval settings—​the Ceph OSD stops write operations and synchronizes the journal with the file system, allowing Ceph OSDs to trim operations from the journal and reuse the space. On failure, Ceph OSDs replay the journal starting after the last synchronization operation.

9.1. Settings

Ceph OSD Daemons support the following journal settings:

journal_dio
Description
Enables direct I/O to the journal. Requires the journal block align option set to true.
Type
Boolean
Required
Yes when using aio.
Default
true
journal_aio
Description
Enables using libaio for asynchronous writes to the journal. Requires the journal dio option set to true.
Type
Boolean
Required
No.
Default
true.
journal_block_align
Description
Block aligns write operations. Required for dio and aio.
Type
Boolean
Required
Yes when using dio and aio.
Default
true
journal_max_write_bytes
Description
The maximum number of bytes the journal will write at any one time.
Type
Integer
Required
No
Default
10 << 20
journal_max_write_entries
Description
The maximum number of entries the journal will write at any one time.
Type
Integer
Required
No
Default
100
journal_queue_max_ops
Description
The maximum number of operations allowed in the queue at any one time.
Type
Integer
Required
No
Default
500
journal_queue_max_bytes
Description
The maximum number of bytes allowed in the queue at any one time.
Type
Integer
Required
No
Default
10 << 20
journal_align_min_size
Description
Align data payloads greater than the specified minimum.
Type
Integer
Required
No
Default
64 << 10
journal_zero_on_create
Description
Causes the file store to overwrite the entire journal with 0’s during `mkfs.
Type
Boolean
Required
No
Default
false