Имеется работающий ceph кластер из 3 серверов: 2 OSD, 3 MON, 2 MDS.
Работает прекрасно, надо сказать, но есть проблема: очень плохая производительность cephfs. Сравниваю скорость чтения с RBD разделом в том же кластере с помощью fio, вот что получается:
RBD: iops=10709, iodepth=128
cephfs: iops=1087, iodepth=12
При подборе latency ~ 10msec
Ну и на практике всё очень тормозит: MySQL с базами на cephfs диске еле ворочается, операции над множеством мелких файлов жутко тормозят, хотя вот скорость линейной записи не отличается от RBD.
OSD ноды соединены между собой 10-гигабитным линком.
ceph.conf:
[global]
fsid = e702e3f0-b814-4bd1-98ab-5fb500ab2723
mon_initial_members = srv1, srv2, srv3
mon_host = 10.0.0.1,10.0.0.2,10.0.0.3
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
osd_pool_default_size = 2
rbd default format = 2
public_network = 10.0.0.0/24
cluster_network = 10.10.0.0/24
fstab:
10.0.0.1:6789,10.0.0.2:6789,10.0.0.3:6789:/ /ceph ceph name=cephfs,secretfile=/etc/ceph/ceph.client.cephfs.keyring,noatime,rsize=67108864 0 2
С rsize игрался - безрезультатно.
Понятное дело, что в отличие от RBD, cephfs имеет совместный доступ к файлам, которые нужно синхронно записывать, блокировать и.т.д., но почему тормозит чтение? Да и iops в 30 раз меньше как-то уж слишком...
Что можно сделать?
И ещё вопрос: mc на cephfs разделе всегда показывает размеры директорий, из-за чего (наверное) периодически лагает при переходе по директориям. Как бы это отключить?