Использование Ceph для организации файлового хранилища

Содержание

Слайд 2

О продукте

О продукте

Слайд 3

Слайд 4

Содержание доклада Предпосылки внедрения ФХ Варианты решений для ФХ Ceph: кратко

Содержание доклада

Предпосылки внедрения ФХ
Варианты решений для ФХ
Ceph:
кратко о системе;
варианты установки;
принцип работы;
администрирование

кластера.
Резюме
Слайд 5

Предпосылки внедрения ФХ в архитектуру

Предпосылки внедрения ФХ в архитектуру

Слайд 6

Инфраструктура до Ферма серверов приложений Отказоустойчивый кластер СУБД

Инфраструктура до

Ферма серверов приложений

Отказоустойчивый кластер СУБД

Слайд 7

60% объема – тела документов БД сервиса

60% объема – тела документов

БД сервиса

Слайд 8

Инфраструктура после Ферма серверов приложений Отказоустойчивый кластер СУБД ...

Инфраструктура после

Ферма серверов приложений

Отказоустойчивый кластер СУБД

...

Слайд 9

Варианты решений для ФХ

Варианты решений для ФХ

Слайд 10

Требования Распределенность Скорость Репликация данных Отказоустойчивость

Требования

Распределенность

Скорость

Репликация данных

Отказоустойчивость

Слайд 11

Сравнение скоростей Физический сервер – источник файлов SSD диск vm – SMB-шара Анализируемый кластер Физический сервер

Сравнение скоростей

Физический сервер – источник файлов

SSD диск

vm – SMB-шара

Анализируемый кластер

Физический сервер

Слайд 12

GlusterFS Последовательное копирование нескольких файлов по ~10 Гб: копирование в GlusterFS

GlusterFS

Последовательное копирование нескольких файлов по ~10 Гб:
копирование в GlusterFS в

5-10 раз медленнее копирования в SMB-шару.
Копирование большого количества мелких файлов не проверяли.
Слайд 13

rsync Последовательное копирование нескольких небольших (мегабайты) и нескольких мелких (килобайты) файлов:

rsync

Последовательное копирование нескольких небольших (мегабайты) и нескольких мелких (килобайты) файлов:
rsync успевал реплицировать

данные с задержкой менее минуты.
Слайд 14

До окончания цикла из 10 повторений rsync ни разу не доживал

До окончания цикла из 10 повторений rsync ни разу не доживал

rsync

*

.

txt

1

Кб

5

Кб

10


Кб

20

КБ

30

Кб


100

Кб

200

Кб

300

КБ


1

Мб

5

Мб

10

Мб

20

Мб

30

Мб

40

Мб

50

Мб

...

*

.

txt

1

Кб

5

Кб

10

Кб

20

КБ

30

Кб


100

Кб

200

Кб

300

КБ


1

Мб

5

Мб

10

Мб

20

Мб

30

Мб

40

Мб

50

Мб

*

.

txt

1

Кб

5

Кб

10

Кб

20

КБ

30

Кб


100

Кб

200

Кб

300

КБ


1

Мб

5

Мб

10

Мб

20

Мб

30

Мб

40

Мб

50

Мб

10 последовательных
повторений

10 параллельных потоков

10 последовательных
повторений

10 последовательных
повторений

Слайд 15

Варианты доступа к данным в Ceph: Ceph Object Gateway (S3/Swift-совместимое API);

Варианты доступа к данным в Ceph:

Ceph Object Gateway (S3/Swift-совместимое API);

CephFS –

POSIX-совместимая файловая система;

Ceph Block Device (RBD – RADOS Block Device).

Ceph

Слайд 16

Не было времени для реализации поддержки S3. Ceph + Object Gateway

Не было времени для реализации поддержки S3.

Ceph + Object Gateway

Слайд 17

Последовательное копирование нескольких файлов по ~10 Гб: копирование в CephFS в

Последовательное копирование нескольких файлов по ~10 Гб:
копирование в CephFS в

2-3 раза медленнее копирования в SMB-шару.
Копирование большого количества мелких файлов не проверяли.

CephFS не была заявлена как решение для продуктивных сред из-за сырой реализации.

Ceph + CephFS

Слайд 18

Скорость записи в кластер соизмерима со скоростью записи в SMB-шару. Ceph + RBD

Скорость записи в кластер соизмерима со скоростью записи в SMB-шару.

Ceph +

RBD
Слайд 19

Ceph + RBD

Ceph + RBD

Слайд 20

Что такое Ceph Ceph – сеть хранения данных. На каждом узле

Что такое Ceph

Ceph – сеть хранения данных. На каждом узле сети

используются свои вычислительные ресурсы для управлением данными.
RADOS (Reliable Autonomic Distributed Object Store) – утилита для взаимодействия компонентов кластера Ceph, его неотъемлемая подкапотная часть.
Слайд 21

MON – демон монитора, серверы с MON - мозги кластера. MON

MON – демон монитора, серверы с MON - мозги кластера. MON

должно быть минимум 3 штуки. Кластер работает, пока доступных MON > 50%.

OSD – демон хранения данных, управляет пространством на диске.

Pool – виртуальная группа для «определения» данных «одного хранилища».

Object – набор данных фиксированного размера. Все попадающие в Ceph данные распределяются по Objects.

PG (Placement Group) – ячейка кластера Ceph, Objects хранятся в PG, а уже PG распределяются по OSD.

Основные сущности Ceph

Слайд 22

Описание с картинками: https://habr.com/post/313644/ Все записываемые данные «складируются» в PG. Пулы

Описание с картинками: https://habr.com/post/313644/

Все записываемые данные «складируются» в PG.
Пулы данных состоят

из PG.

PG распределяются по OSD.

Картинки из Интернета

Слайд 23

Варианты установки

Варианты установки

Слайд 24

[global] mon_initial_members = admin-node, node01, node02 mon_host = 192.168.1.10:6789, 192.168.1.11:6789, 192.168.1.12:6789

[global]
mon_initial_members = admin-node, node01, node02
mon_host = 192.168.1.10:6789, 192.168.1.11:6789, 192.168.1.12:6789
auth_cluster_required = cephx
auth_service_required

= cephx
auth_client_required = cephx

ceph.mon.keyring
ceph.conf:

На отдельном сервере admin-node папка /opt/my_cluster

ceph-deploy new admin-node node01 node02

Создание кластера (объявление мониторов):

ceph-deploy

Слайд 25

ceph-deploy mon create-initial Инициализация кластера: ceph-deploy install admin-node node01 node02 node03

ceph-deploy mon create-initial

Инициализация кластера:

ceph-deploy install admin-node node01 node02 node03 node04

Установка ПО

Ceph на все будущие ноды и мониторы кластера:

ceph-deploy

Слайд 26

ceph-deploy admin admin-node node01 node02 node03 node04 Добавление нод в кластер:

ceph-deploy admin admin-node node01 node02 node03 node04

Добавление нод в кластер:

ceph-deploy osd

create --data /dev/vda node01
ceph-deploy osd create --data /dev/vdb node01
ceph-deploy osd create --data /dev/vda node02

Добавить OSD:

ceph-deploy

Слайд 27

Репликация: другое здание/помещение; другая стойка; другая нода; OSD с наибольшим весом*;

Репликация:
другое здание/помещение;
другая стойка;
другая нода;
OSD с наибольшим весом*;
OSD с наибольшим свободным местом;
случайный

выбор.

* Данный параметр рассчитывается автоматически исходя из распределения размеров OSD в рамках одной ноды. Его можно корректировать, но не стоит.

CRUSH (controlled replication under scalable hashing) – алгоритм распределения реплик PG по OSD.

Реплики PG

Слайд 28

Советы по работе с OSD Иметь равное количество OSD на всех

Советы по работе с OSD

Иметь равное количество OSD на всех нодах.
«Набор»

размеров OSD на каждой ноде должен быть одинаковым.
Для увеличения размера кластера лучше добавлять новые OSD, чем увеличивать размер текущих.
Слайд 29

Для настройки RBD в пуле данных используется сущность Image. Маппинг RBD

Для настройки RBD в пуле данных используется сущность Image.
Маппинг RBD происходит

именно в Image.
В примере: имя пула = documents, имя образа = data

ceph osd pool create documents 128 128

RBD (RADOS Block Device) – абстракция блочного устройства, через которое реализован доступ к данным внутри кластера Ceph.

rbd create --size 1000G documents/data

Пул и образ данных

Слайд 30

rbd map --pool documents --image data ceph-deploy install client ceph-deploy admin

rbd map --pool documents --image data

ceph-deploy install client
ceph-deploy admin client

Для подключения

RBD лучше использовать отдельную машину (client). Установить на нее Ceph и ввести в кластер:

Создать RBD:

/dev/rbd0

mount /dev/rbd0 /mnt/documents

mkfs.xfs /dev/rbd0

Подключение RBD

Слайд 31

Схема кластера admin-node node01 node02 osd.0 osd.1 osd.2 osd.3 client node03

Схема кластера

admin-node

node01

node02

osd.0

osd.1

osd.2

osd.3

client

node03

node04

osd.4

osd.5

osd.6

osd.7

/dev/rbd0

Слайд 32

Размер RBD-образа не зависит от фактического суммарного объема OSD. Фактический суммарный

Размер RBD-образа не зависит от фактического суммарного объема OSD.

Фактический суммарный объем

всех OSD должен быть ВСЕГДА больше суммарного заданного объема всех пулов (образов).

Заданный размер образа достигается постепенно по мере наполнения хранилища данными.

Если при итерации увеличения размера образа фактическое суммарное свободное место на всех OSD закончится -> данные утеряны навсегда.

Увеличение максимального размера RBD-образа необходимо делать заранее: при 80% заполнения или раньше.

Размеры пулов (образов)

Слайд 33

При выходе из строя или недоступности OSD кластер автоматически начинает перебалансировку

При выходе из строя или недоступности OSD кластер автоматически начинает перебалансировку

потерянных PG.

Перед работами на нодах необходимо включать режим обслуживания кластера:

ceph osd set noout

Выход из режима обслуживания:

ceph osd unset noout

Режим обслуживания

Слайд 34

Указать новый максимальный размер образа (только вверх и надо учесть количество

Указать новый максимальный размер образа (только вверх и надо учесть количество

реплик):

rbd resize --size 1390G --pool documents --image data

Подключить новые диски к нодам, добавить их в Ceph (например 4 диска по 300 Гб):

ceph-deploy osd create --data /dev/vdc node01
ceph-deploy osd create --data /dev/vdc node02

Проверка:

rbd info --pool documents --image data
fdisk –l #на client

Актуализировать размер на точке монтирования:

xfs_growfs /mnt/documents/

Увеличение RBD-образа

Слайд 35

Цель – всегда иметь запас места на перебалансировку в случае смерти

Цель – всегда иметь запас места на перебалансировку в случае смерти

одной ноды.

Легенда: 4 ноды по N OSD на каждой.

Шаг 1. Определить ноду, на которой самый большой объем занятого места на всех ее OSD (V1).
Шаг 2. Среди оставшихся 3 нод определить ту, на которой меньше всего свободного места (V2).
Шаг 3. D = V2 – V1/3

Если D < 50 Гб, то пора добавлять OSD.

Мониторинг места на OSD

Слайд 36

Плюсы: легко устанавливается и настраивается; быстрый; легко масштабируется; достаточное количество команд

Плюсы:
легко устанавливается и настраивается;
быстрый;
легко масштабируется;
достаточное количество команд CLI для диагностики состояния

кластера и управления им.

Минусы:
огромное количество недокументированных параметров для тонкой настройки (~1500 штук);
много противоречивой информации о настройках в разных источниках;
необходимо тщательно следить за статистикой наполнения пулов и свободным местом на OSD.

Резюме по Ceph

Слайд 37

Хранить бинарный контент в БД считается моветоном. Подавляющую часть нашего бинарного

Хранить бинарный контент в БД считается моветоном.
Подавляющую часть нашего бинарного контента

(тела документов) мы вынесли в ФХ.
Основная цель переноса тел документов в ФХ – разгрузка БД:
увеличилась производительность СУБД на прежних мощностях;
уменьшилось время конвертации таблиц.
Тонкая настройка производительности.
Не надо платить за лицензии на ядрышки ЦП для СУБД.

Резюме по ФХ

Слайд 38

https://docs.ceph.com/docs/master/ https://t.me/ceph_ru http://onreader.mdl.ru/MasteringCeph/content/Ch01.html Google + Яндекс Где искать помощь http://onreader.mdl.ru/MasteringCeph.2ed/content/Ch01.html

https://docs.ceph.com/docs/master/

https://t.me/ceph_ru

http://onreader.mdl.ru/MasteringCeph/content/Ch01.html

Google + Яндекс

Где искать помощь

http://onreader.mdl.ru/MasteringCeph.2ed/content/Ch01.html