My Ceph cluster doesn't run all that quick. On reads it was about 20% slower than my RAID5 NAS and writes were 4x slower! Ouch. A good part of that is probably down to using USB flash keys but...
Upon starting the OSDs I see this message:
journal FileJournal::_open: disabling aio for non-block journal. Use journal_force_aio to force use of aio anywayMy OSDs are XFS backed which supports async writing to the journal, so let's set that up.
First, ssh into the ceph-deploy node and get the running version of the .conf file, replacing {headnode] with the hostname of the main monitor:
ceph-deploy --overwrite-conf config pull {headnode}You can skip this step if your .conf is up to date.
Next edit the .conf file and add the following. If you already have an [OSD] section then update accordingly.
[OSD] journal aio = true journal dio = true journal block align = true journal force aio = trueThis will try to apply this setting to all OSDs. You can control this on a per OSD basis by adding sections named after the OSD. E.g.
[OSD.4] journal aio = true journal dio = true journal block align = true journal force aio = trueAnd here's the official documentation.
Next, push the config back out to all the ceph nodes and restart ceph your osds. Separate hostnames with spaces.
ceph-deploy --overwrite-conf config push {headnode} {cephhost1} {cephhost2} ....A word of warning: the --overwrite-conf flag is destructive. I'll leave it to you to take backups.
Then SSH into the various nodes restarting the ceph service as you go. I just restarted all ceph services,
sudo service ceph restartBut it's probably okay to just restart the OSDs
sudo service ceph restart osd
I experienced an almost 2 times speed increase on writes until the journals fill. Still slow, but getting much better. My fault for not having better hardware!