Ceph: memory optimization

В этой заметке я расскажу о нескольких параметрах ядра которые очень критичны для нормальной работы Ceph OSD и RGW.

Читать дальше

Ceph Object Gateway (radosgw): Object Lifecycle Management

Ceph Luminous очень богатый на фичи релиз и я планирую кратенько написать о всех наиболее интересных на мой взгляд новшествах по части RGW и S3 API работоспособность которых я проверил.

Object Lifecycle Management — это S3 API позволяющий задать политику:

— удаления объектов и/или их версий после заданной даты,
— удаления объектов и/или их версий после истечения указанного времени,
— перемещения объектов с одного класса хранения на другой.

В Ceph пока не реализованы разные классы хранения(storage classes) и перемещение соответственно тоже. Так же нельзя использовать тэги объектов в политиках. Но зато первые два пункта поддерживаются и это уже хорошо) Читать дальше

Ceph: Настройка scrub и снижение его влияния на производительность

Обычно не пишу о том, что и так известно почти всем или если это хорошо освещено. Но недавно в одном популярном русскоязычном telegram-чате посвященном Ceph обсуждалась проблема scrubbing’а и я понял, что все таки знаю кое что, что еще не известно всем) Решил написать заметку посвященную данной теме.
Читать дальше

Ceph-mgr: dashboard, zabbix, RESTful, status, balance

ceph-mgr (Manager daemon) — сервис который стал обязательным с версии Luminous. Кроме того, что он обязательный вместе с ним поставляется несколько модулей которые можно включит и использовать если то, что они дают вам нужно.
В этой заметке я пробегусь по списку используемых мной модулей, покажу как их настроить и отмечу некоторые не очевидные моменты из-за которых я решил об этом написать. Читать дальше

S3 Performance Test Tool

Неплохая утилита для тестирования производительности AWS S3 или S3 совместимого объектного хранилища типа Ceph.
Так же ее можно использовать для нагрузочных тестов имитируя различную нагрузку.

Код проекта: https://github.com/jenshadlich/S3-Performance-Test
Утилита написана на Java и если вам как и мне не хочется возиться с Java то есть готовый Docker image: https://hub.docker.com/r/javamaster/s3pt/ Только есть одна мелочь — образ не пригоден к использованию так как не один из примеров не работает(на дату статьи перепроверил и таки да, не работает ничего 🙁 )

Поэтому я любезно пересобрал утилиту и образ в котором в отличии от оригинала все работает 🙂 https://hub.docker.com/r/fatruden/s3pt/ Читать дальше

Ceph Object Gateway (radosgw): performance monitoring (Zabbix)

Про доступные метрики производительности RadosGW(RGW) я писал отдельную заметку.
В этот раз я опишу как мы у себя собираем эти метрики в Zabbix.

Скрипт сбора метрик, user_parameters.conf и собственно шаблон для Zabbix — https://github.com/FATruden/rgw-monitoring Читать дальше

Ceph Object Gateway (radosgw): performance monitoring

RadosGW или RGW он же Ceph Object Gateway позволяет работать с хранилищем RADOS(он же Ceph) через REST API совместимый с S3 и Swift. RGW является прослойкой между пользователем использующим REST и хранилищем RADOS взаимодействие с которым осуществляется по алгоритму CRUSH.
У всех компонентов Ceph есть метрики позволяющие мониторить производительность и понимать, что происходит в кластере. У RGW тоже есть такие метрики и они нам сильно помогают понимать состояние системы в целом и находить проседающие места. Читать дальше

Ceph Objet Gateway (radosgw) and object versioning на практике

Версионирование объектов в S3 довольно подробно описано в документации AWS но все же периодически возникают вопросы по этой теме. Решил сделать маленькую заметку и показать как это выглядит на практике, в том числе и на уровне хранения объектов.

В моем случае, вместо оригинального черного ящика под названием AWS S3 используется Ceph и Ceph Object Gateway(RadosGW).
Ceph Object Gateway — это надстройка над довольно низкоуровневым хранилищем под названием Ceph, которая реализует AWS S3 API(REST only).
По сути это open source реализация S3-совместимого объектного хранилища.

Для работы с объектами я буду использовать awscli. Я не буду останавливаться на том как ее установить и настроить — это подробно описано в документации. Я лишь покажу как переопределить адрес для подключения к s3 если вы как и я работаете не с AWS S3 а каким то другим S3). Читать дальше

cLVM, lvmlockd или как приручить СХД

Проблема

У вас есть много нод и общий на всех блочный сторадж(iSCSI, FC, SRP etc.). Вам нужно гибко управлять этим стораджем — создавать, удалять, ресайзить, снапшотить LUNы, при этом иметь возможность работать с любым LUN’ом на любой ноде. Типичный пример — группа хостов и множество ВМ на этих хостах к которым LUNы подключаются напрямую. Как известно, это единственный способ получить максимум производительности блочного хранилища.
Но, ваша СХД не имеет API либо делает все операции очень медленно, либо у вас нет програмистов способных реализовать управление этой СХД. Другая причина, наличие нескольких СХД и желание работать с ними одинаково. Читать дальше

GlusterFS — petabyte storage

Недавно возникла необходимость построить отказоустойчивое хранилище с полезным объемом в 1 Пб. Так как обычная репликация требует x2 по объему, хотелось использовать erasure coding который позволяет получить как минимум 2/3 от сырого пространства. Конечно, EC не такой быстрый как обычная репликация, но в данном конкретном случае он полностью удовлетворял требования к производительности.
Все это хорошо думал я, но у меня не было ранее опыта построения хранилищ такого объема. Более того, я не видел статистики подобного характера по GlusterFS. Закрались сомнения, можно ли используя EC построить хранилище на 1Пб в принципе.
Я решил написать на рассылку GlusterFS и узнать о размерах хранилищ с EC.

Читать дальше