Ceph: Scrubbing

В дополнение к созданию нескольких копий объекта, Ceph также выполняет scrubbing(проверка на несоответствия) PG. Scrubbing аналогичен команде fsck.
Легкий scrubbing проверяет размер объекта и его атрибуты и запускается обычно каждый день. Глубокий (deep) scrubbing считывает данные и использует контрольные суммы для проверки целостности данных. Запускается обычно еженедельно.

Scrubbing имеет множество настраиваемых параметров (в скобках указаны значения по умолчанию):

osd scrub thread timeout - макс. время в секундах до таймаута потока scrubbing'а (60)
osd scrub thread suicide timeout - таймаут самоуничтожения потока scrubbing'a (300)
osd scrub finalize thread timeout - макс. время в секундах до таймаута завершения потока scrubbing'а (600)
osd scrub invalid stats - хранить плохую статистику PG, чтоб возвратиться потом к scrubbing'у (true)
osd max scrubs - макc. число scrubbing-операций для OSD демона (1)
osd scrub begin hour - час суток, с которого может выполняться scrubbing (0)
osd scrub end hour - час суток, до которого может выполняться scrubbing (24)
osd scrub load threshold - макс. нагрузка. Ceph не выполняет scrubbing, когда значение нагрузки системы (getloadavg()) больше, чем это значение (0.5)
osd scrub min interval - макс. интервал scrubbing'a в секундах, когда нагрузка кластера Ceph является низкой (86400)
osd scrub max interval - макс. интервал scrubbing'a в секундах независимо от нагрузки кластера (604800)
osd scrub interval randomize ratio - отношение для вычисления случайного osd scrub min interval (0.5)
osd scrub chunk min - минимальное количество порций для scrubbing'а (5)
osd scrub chunk max - макс. количество порций для scrubbing'а (25)
osd deep scrub interval - интервал для глубокого scrubbing'a в секундах. Этот интервал не зависит от osd scrub load threshold (604800)
osd deep scrub stride - размер чтения (в байтах) во время deep scrubbing (524288)
osd deep scrub update digest min age - количество секунд, в течение которых для новых объектов не выполняется scrubbing (7200)

Некоторые полезные команды:

# смотреть конфигурацию демона с фильтром по параметрам 
ceph daemon <daemon-type>.<id> config show | grep <фильтр>
# установить параметр с помощью Ceph монитора
ceph tell <daemon-type>.<id or *> injectargs --<name> <value> [--<name> <value>]

# с помощью Ceph daemon
ceph osd.0 config set <name> <value>
# включение scrubbing
ceph osd unset nodeep-scrub
ceph osd unset noscrub

# отключение scrubbing
ceph osd set nodeep-scrub
ceph osd set noscrub

 

в рубрике: