LINUX.ORG.RU
решено ФорумAdmin

Ceph, переезд с двойной на тройную репликацию.

 , , ,


1

3

Добрый вечер. Имеется кластер на Ceph: 4 машины, 36 OSD, один RBD-пул на 1024 pg. В пуле ~200 томов виртуальных машин, раскиданных по трём серверам. Между всем этим делом 20Gb линк. На данный момент, size = 2, min_size = 1, что, судя по докам Ceph, не очень то хорошо в плане HA.

Собственно, вопрос. Насколько болезненно, в плане просадок производительности менять на живом пуле size на 3, а min_size на 2? И как вообще это отразится в дальнейшем на производительности? Анализ доков не даёт однозначного ответа на этот вопрос.


Ответ на: комментарий от Deleted

Обязательно.

Собрался с духом и в 11:30 по МСК запустил рекавери. Полёт нормальный, ждём-с.

Hanuken ()

Всех приветствую.

В общем, всё прошло просто отлично!

Зашёл, перепроверил работоспособность OSD, нагрузки на них и на ноду в целом, логи коммутаторов, всё штатно.

В телеге посоветовали провести настройку следующим образом:

osd backfill scan max = 128
osd recovery max active = 5-10
Решил начать без тюнинга backfill и recovery, а там уже по ситуации подгонять. Производительность просела, но для клиентов было не критично, ceph равномерно размазывал нагрузку по всем OSD, судя по nmon. Опасения по поводу нехватки ram не подтвердились - заполнение было масимум до 10Гб на каждой ноде, нагрузку на CPU напрямую не измерял, LA - до 20 (на всех нодах E5-2650 v2). В итоге, за 6.5 часов весь процесс завершился, теперь size = 3, а min_size = 2, можно спать спокойнее).

Как было выяснено, узким горлышком кластера стала производительность единичного диска. В дальнейшем будем работать в направлении увеличения количества дисков, уменьшения их объёма, а также о внедрении SSD под журналы.

Hanuken ()
Ответ на: комментарий от Hanuken

В 14м году убил все лето, чтобы поднять ceph на тестовом блейд-шасси HP C7000, HP Procurve 6120.

Решил настроить на лезвиях для теста - 2 жестких диска для стоража.

По сети везде 10Гбит - 1 сеть для локальной сети, 2 сеть для внутренний нужд.

Вроде работало, но в какой-то момент сеть вставала колом и все умирало. так и не узнал в чем дело?. потом меня перекинули на другой проект.

поделись своим конфигом, если не сложно.

Nurmukh ★★★ ()
Ответ на: комментарий от Nurmukh

Тоже крайне долго возился с начальной настройкой.

Когда сел за это дело, решил пойти простой дорожкой, под названием ceph-deploy. С ним возникла куча проблем, начиная от отказа работать с Debian 9 и заканчивая неправильным закидыванием OSD в кластер. Ещё и мануал в некоторых местах двусмысленный. Короче говоря, забил, форматнул, перекурил мануал заново, накатил в ручном режиме на виртуалки - всё зрабаотало.

Пара тестовых стендов показала, что Ceph крайне любит хорошее железо, причём со всеми рекомендациями с официального сайта. Если что-то не выполняется, то, значит где-то придётся идти на компромиссы.

В момент «вставания сети» нужно было, по моему мнению, глянуть, изменилась ли нагрузка на все компоненты кластера: cpu, ram, hdd, использование сети. Возможно, стала бы понятна природа падения.

Мой конфиг следующий:

[global]
fsid = 19ac3f7d-aae3-4209-b8eb-bad6c3316689
keyring = /etc/ceph/ceph.client.admin.keyring
public network = 192.168.21.1/24
cluster network = 192.168.21.1/24
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
rbd default features = 5
[osd]
[mon]
mon initial members = master,node0,node1
[mon.master]
host = master 
mon addr = 192.168.21.9:6789
[mon.node0]
host = node0
mon addr = 192.168.21.10:6789
[mon.node1]
host = node1
mon addr = 192.168.21.11:6789
[osd.0]
host = cp0
[osd.1]
host = cp0
[osd.2]
host = cp0
[osd.3]
host = cp0
[osd.4]
host = cp0
[osd.5]
host = cp0
[osd.12]
host = cp0
[osd.13]
host = cp0
[osd.14]
host = cp0
[osd.6]
host = cp1            
[osd.7]
host = cp1
[osd.8]
host = cp1
[osd.9]
host = cp1
[osd.10]
host = cp1
[osd.11]
host = cp1
[osd.15]
host = cp1
[osd.16]
host = cp1
[osd.17]
host = cp1
[osd.18]
host = cp2
[osd.19]
host = cp2
[osd.20]
host = cp2
[osd.21]
host = cp2
[osd.22]
host = cp2
[osd.23]
host = cp2
[osd.24]
host = cp2
[osd.25]
host = cp2
[osd.26]
host = cp2
[osd.27]
host = cp3
[osd.28]
host = cp3
[osd.29]
host = cp3
[osd.30]
host = cp3
[osd.31]
host = cp3
[osd.32]
host = cp3
[osd.33]
host = cp3
[osd.34]
host = cp3
[osd.35]
host = cp3

Возможно, есть какие-то ошибки. Буду крайне благодарен, если гуру поправят.

Hanuken ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.