3. Причины
• Количество
данных
в
дата-‐центрах
растет
• Требуется
быстрый
доступ
к
данным
• Требуется
высокая
доступность
данных
• Гибкость
и
низкая
стоимость
4. Где
использовать?
• CDN
• Бекап
и
архивация
• Масштабируемые
файловые
сервера
• HPC
• IaaS
Storage
• Хранение
блобов
баз
данных
5. Устройство
HA
DFS
• Сервер
данных
(CS):
содержимое
файлов
или
кусков
данных
• Сервер
метаданных
(MDS):
хранят
информацию
о
данных
и
их
репликах.
При
использовании
кусков
данных
хранит
информацию
о
том,
как
собрать
куски
в
файлы.
Управляет
версиями
и
может
хранить
лог
событий
на
кластере.
• Клиент:
использует
API
для
управления
данными,
связывается
с
MDS
и
CS
6.
7. GlusterFS
• объединяет
существующие
файловые
системы
(рекомендуется
XFS)
• Включает
в
себя
NFS3
сервер
• Для
пула
кластера
использовать
/etc/hosts
некрасиво
и
ненадежно.
Используйте
DNS.
• Рекомендуется
использовать
NTP.
• Работает
в
UserSpace
через
FUSE.
• Posix–совместимая
HA
DFS
8. GlusterFS
• Считается
хеш
от
имени
файла,
делится
по
модулю
по
кол-‐ву
имеющихся
серверов
для
определения
места.
• При
переименовании
файла
оставляет
свой
новый
адрес
на
старом
месте.
• Для
увеличения
числа
файловых
серверов
–
extensible
hashing
(увеличение
значения
хеш-‐
функции
без
пересчета
хешей).
• Нет
сервера
метаданных.
• Данные
записываются
сразу
на
несколько
нод.
С
2мя
нодами
не
лучше
rsync.
9. GlusterFS
Pro
• Любое
оборудование
без
каприз
(собирается
даже
на
arm)
• Автоматическое
восстановление
при
сбоях
• Нет
центрального
сервера
метаданных
• Возможно
добавление
нод
по
мере
роста
• Простая
установка.
Правда.
8
шагов.
Отличная
документация.
• Возможно
подключение
через
стандартные
протоколы
NFS,
SMB/CIFS
или
нативный
клиент.
10. GlusterFS
Pro
• На
множестве
серверов
быстрый
произвольный
доступ
к
файлу,
если
файл
читает
небольшое
количество
клиентов.
• Возможно
увеличение
тома
при
добавлении
нового
сервера.
• Поддерживает
локи
на
файлы
через
posix-‐
locks,
о
которых
сообщает
всем
томам.
• Поддерживает
асинхронную
георепликацию.
11. GlusterFS
Contra
• Без
репликации
потеря
сервера
–
потеря
всех
данных
на
сервере.
• Если
файл
больше
размера
тома
–
случится
ошибка
записи.
• Если
файл
не
там,
где
вычислен
хеш
–
будет
долгий
поиск.
• ls
работает
медленно
тк
нет
сервера
метаданных
–
нужно
обежать
все
сервера.
12. Компоненты
• glusterd
управляет
эластичным
томом,
соответственно
должен
быть
запущен
на
всех
серверах,
где
необходимо
монтировать
FS.
Управляется
через
gluster
cli.
• glusterfsd
управляет
brick
томами,
по
процессу
на
том.
Управляется
glusterd.
• glusterfs
занимается
NFS,
FUSE
клиентами
и
обеспечением
здоровья
системы
• mount.glusterfs
инструмент
для
монтирования
через
FUSE
• gluster
интерфейс
CLI
13. Трансляторы
GlusterFS
использует
расширяемый
механизм
трансляторов
(можно
писать
свои).
storage
–
сохраняет
и
получает
данные
из
файловой
системы
14. Трансляторы
cluster
–
занимается
распределением
и
репликацией
данных,
записью
и
чтением
из
хранилища
bricks
15. Трансляторы
debug
–
предоставляет
интерфейс
и
статистику
по
ошибкам
для
отладки.
encryp^on
–
на
лету
шифрует/расшифровывает
данные.
protocol
–
занимается
аутентификацией
клиента
и
сервера
и
коммуникациями
между
ними.
pеrformance
–
тюнинг
под
нагрузку.
16. Трансляторы
system
–
связывает
хранилище
с
ACL.
sceduler
–
планирует
операции
I/O
для
распределения
новых
записей
по
кластеру.
features
–
доп.
фичи
типа
квот,
фильтров,
локов
и
т.д.
bindings
–
добавляет
расширяемость,
например
есть
реализация
API
для
python.
17. Падение
1.
Файловая
система
запустит
fsck
на
томе,
далее
gluster
восстановит
данные
из
реплик
автоматически.
2.
В
случае
краха
ноды
добавляем
новую
и
Gluster
размазывает
данные
на
нее.
18. Гео-‐репликация
Асинхронная
по
модели
master–slave
Slave
может
быть
как
удаленный
каталог,
так
и
volume
gluster.
Предназначена
для
бекапа,
а
не
для
HA
Периодически
проверяет
изменения
и
синхронизирует
их
инкрементально.
20. Запись
с
sync
4
сервера
2.3ггц,
4гб
ram,
репликация
4х
кратная
Большие
файлы.
8к
–
размер
блока,
как
у
PostgreSQL.
Сеть
150
мбит.
Обьем
Лок.
ФС
GlusterFS
1
гб
434мб/с
18.1мб/с
2
гб
577мб/с
18.6мб/с
4
гб
614мб/с
18.5мб/с
8
гб
733мб/с
17.2мб/с
16
гб
742мб/с
15.1мб/с
В
процессе
использует
30%
cpu,
100%
ram
Для
16гб:
В
процессе
использует
20%
cpu,
85%
ram
Для
1
гб:
1
компонент
использует
макс.
1
ядро
21. Запись
без
sync
4
сервера
2.3ггц,
4гб
ram,
репликация
4х
кратная
Большие
файлы
без
sync.
Сможем
читать
позже
с
диска.
8к
–
размер
блока,
как
у
PostgreSQL.
Сеть
Обьем
Лок.
ФС
GlusterFS
1
гб
613мб/с
18.4мб/с
2
гб
724мб/с
17.4мб/с
4
гб
765мб/с
17.4мб/с
8
гб
737мб/с
18.4мб/с
16
гб
732мб/с
16.3мб/с
В
glusterFS
sync
делается
всегда
29. Рекомендации
от
разработчиков
Работа
через
NFS
быстрее
для
чтения
множества
мелких
файлов.
Работа
через
нативный
клиент
быстрее
для
интенсивной
записи.
https://github.com/gluster/glusterfs/tree/master/doc
Дополнительная
информация
по
функционированию:
30.
31. Ceph
It will not be sufficient that I can - as now - slowly
claw my way forward by going through source
code, changing scripts, searching for bugs on
mailing lists archives. It will be necessary to
have an installation process that won't fail. As
some problems with Ceph seem to be random,
several installs from scratch should be carried
out to make sure it's not 2/3 deployments that
work.
32. Ceph
• Потери данных сильно зависят от процесса
установки, выбранной ОС, ядра (например
система ничего не скажет при работе с 1 mon …
до потери данных).
• Огромное
количество
проблем
при
тестировании
на
разных
ОС
(например
генерация
keyring
на
RedHat).
• Случайные
падения
во
время
работы.
• Неочевидный
процесс
восстановления
данных
упавшей
Ceph.
До продакшна далеко…
35. PCS
• от 3 до 5 MDS
• 3 или больше CS
Рекомендуемая инсталляция на кластер
• Любое кол-во нод в кластере могут играть роли
MDS, CS, клиентов
• не требует специализированного оборудования
36. Высокая
доступность
PCS
• Репликация MDS. До выхода из строя половины
MDS гарантируется доступность данных.
• Репликация CS на необходимое количество
реплик.
• Мониторит состояние кусков данных и
восстанавливает при восстановлении нод.
• возможность мониторинга контрольных сумм CS
с SSD кешем журнала CS
37. Расширяемость
PCS
• Обеспечивается добавлением CS.
Протестировано до 1 TB.
• Балансировка IO нагрузки.
• Возможность настройки политик, в зависимости
от производительности дисков для выделения.
41. Репликация
PCS
vs
Raid
• Быстрее чем перестроение Raid 1/5/10, т.к.
может происходить параллельно по всем
серверам кластера.
• Чем больше CS, тем меньше времени на
репликацию каждого куска данных.
Скорость восстановления важна тк уменьшает
вероятность потери данных в деградированном
состоянии.
42. Влияние
на
скорость
репликации
• Количество доступных CS.
• Производительность локальных дисков.
• Производительность локальных дисков.
• Скорость сети: при чтении каждый кусок данных
передается по сети для записи доп. копии.
• Распределение кусков данных по CS, которые
необходимо реплицировать.
• I/O активность в кластере.
43. Тесты
производительности
репликации
1Тб
Тип
Скорость
Raid1
100
мб/с
(3
часа)
PCS
7
серверов
273
мб/с
(64
мин)
PCS
14
серверов
535
мб/с
(33
мин)
PCS
21
сервер
881
мб/с
(20
мин)
Raid1 7200RPM SATA
vs
PCS с дисками на 7200RPM SATA SR0
44. Тесты
производительности
репликации
1Тб
на
современном
железе
Тип
1
2
PCS
7
серверов
273
мб/с
649
мб/с
PCS
14
серверов
535
мб/с
1258
мб/с
1) PCS SR0 2SATA 1Gbit
Vs
2) PCS SR0 4SATA 10Gbit
49. Выводы
по
PCS
Производительность
PCS
сравнима
с
RAID,
но
предоставляет
большую
гибкость
и
масштабирование.
Репликация
гораздо
быстрее
RAID,
тк
делается
параллельно
между
всеми
серверами
кластера.
Добавление
SSD
кеширования
позволяет
значительно
обогнать
RAID
по
скорости.
50. Общие
выводы
Gluster
FS
небыстр,
но
может
решить
проблемы
индивидуальных
пользователей
и
малых
компаний.
Ceph
пока
недостаточно
надежен
–
проблемы
с
деплоем
и
падения
при
тестировании.
PCS
готов
для
промышленной
эксплуатации
хостинг-‐
провайдерами.
Внедрение
в
новой
локации
Tier3
InfoboxCloud
ориентировочно
в
мае
2014.
51. Спасибо за внимание!
Храните данные надежно!
Юрий Трухин
эксперт по облачным технологиям
trukhin.yuri@infoboxcloud.com
@trukhinyuri