Ceph Luminous OSD памяти

Я пытаюсь построить небольшой кластер CEPH на одном компьютере – тестирование в лаборатории, прежде чем переключаться на более крупный объект. Бегите в проблемы с памятью и не можете найти способ это контролировать.

У нас старый процессор Core2Duo, 4 Гб оперативной памяти. Создание 3 OSD с 3 локальными дисками по 8 ТБ.

ceph-deploy сделает это, и все работает хорошо, за исключением того, что для каждого из 3 OSD создается 1 раздел tmpfs, который составляет 2 ГБ и после копирования ~ 50 ГБ данных в CephFS Bluestore – box запускается агрессивно с использованием оперативной памяти и заканчивается использованием всех своп. Мне не удалось найти правильную настройку, чтобы контролировать, сколько памяти OSD процесс может использовать.

Можно использовать больше ввода-вывода вместо оперативной памяти. Нужна помощь (если это возможно). 🙂 Я строю все на Centos 7.

Это распространенная проблема, список рассылки ceph – очень полезный архив для этих вопросов, смотрите это . Вы можете уменьшить значения bluestore_cache_size, по умолчанию 3 ГБ для SSD и 1 ГБ для OSD жесткого диска:

# If bluestore_cache_size is zero, bluestore_cache_size_hdd or bluestore_cache_size_ssd will be used instead. host1:~ # ceph daemon osd.3 config show | grep bluestore_cache_size "bluestore_cache_size": "0", "bluestore_cache_size_hdd": "1073741824", "bluestore_cache_size_ssd": "3221225472", 

Но, согласно нашему мониторингу в производственном кластере, для жесткого диска с жестким диском остаточная память составляет около 3 ГБ, поэтому вам придется настроить эти значения под свои нужды. Ссылка на конфигурацию здесь .

Я бы порекомендовал сначала начать с одного OSD, а затем отслеживать производительность вашего узла; затем добавьте другое OSD, если память (или другие измерения) в порядке. Если вы уже достигли предела с одним или двумя OSD, вам придется настроить конфиги в соответствии с вашими потребностями. Значения могут быть изменены в режиме онлайн:

 host1:~ # ceph daemon osd. config set bluestore_cache_size[_hdd|_ssd]  

Постоянные изменения конфигов должны храниться в /etc/ceph/ceph.conf

В примечаниях к выпуску Ceph 13.2.2 сказано следующее …

Опции bluestore_cache_ * больше не нужны. Они заменены на osd_memory_target, по умолчанию 4 ГБ. BlueStore расширит и сократит свой кэш, чтобы попытаться остаться в пределах этого лимита. Пользователи, выполняющие обновление, должны заметить, что это значение по умолчанию выше, чем предыдущий bluestore_cache_size в 1 ГБ, поэтому OSD, использующие BlueStore, будут использовать больше памяти по умолчанию. Для получения дополнительной информации см. Документы BlueStore.

Это застало меня врасплох. Мои osds были абсолютно дикими с использованием резидентной памяти. Ядро было убивающим oom процессами.

Переход на новый ключ и откат процессов osd дал мне стабильную производительность.