- PVSM.RU - https://www.pvsm.ru -
Официальный выпуск Ceph Luminous от производителя мы ждём в ноябре 2017, однако Proxmox 5 [1] уже позволяет использовать в промышленных решениях некую редакцию Ceph Luminous, которая, как и полагается, в качестве основного файлового хранилища по умолчанию предлагает BlueStore. Последнее полноценно поддерживает транзакции с операциями хранения объектов, что делает возможными большое число вкусностей. Одной из них является способность осуществления частичной перезаписи данных в блочных устройствах на основе пулов с удаляющим кодированием (Erasure Coding). Такие пулы, в частности, способны (при наличии достаточного числа физических дисков и серверов) приближать использование имеющегося сырого дискового пространства сколь угодно близко к 100%.
Et voilà!
Ceph предлагает два вида пулов хранения:
При стандарте допустимости двух отказавших устройств хранения, первый метод предполагает необходимость утроения сырого объема хранилища, в то время как второй допускает впечатляющее повышение эффективности использования пространства, например, до 90% при наличии возможности использовании 20 osd для расщепления данных (18 частей исходных данных + 2 части с избыточным кодом).
Поверх обоих видов пулов хранения можно строить объекты хранения, допускающие блочные операции (например, моментальные снимки). Разница начинает проявляться при операциях записи в такого рода объекты, поскольку одна операция записи в блочное устройство с применением удаляющего кодирования подразумевает в своём составе некоторую неделимую последовательность считывания хранимых данных, их частичного изменения и окончательной записи полученного результата. Атомарно. То есть, если какая- либо часть последовательности остаётся незавершённой, отвергается вся операция. Данная атомарность также именуется транзакцией.
До сих пор предлагалось два способа решения проблемы применимости пулов с удаляющим кодированием под блочные объекты:
Оба метода имеют ограничения [3] вариантов использования.
В основе хранения объектов Ceph в конечном итоге лежит некая файловая система на физическом диске (или разделе диска), которым управляет некий демон. Для решения множества возникающих по ходу дела проблем может применяться журнал в который и записываются данные, прежде чем клиент получит подтверждение о совершении своей операции. Помимо этого демон выполняет необходимые действия в одноранговой сети пула хранения по поддержанию необходимого числа копий данных (стандартно — трёх), причём с подразделением ролей хозяин — подчинённый. Всё это, собственно, и составляет osd (object storage device). Но в конечном итоге сами данные объекта хранятся в «обычном» файле на диске. Несколько осложняет задачу тот факт, что теоретически, сам объект может сопровождаться практически неограниченным числом метаданных. Как то: имя объекта, дата его создания, дата последнего изменения, контрольная сумма, сила вашей привязанности к этим данным и всё что вы можете придумать в добавление к тем метаданным, которыми снабжает этот объект ваш инструмент хранения — файловая система, система управления блочными устройствами или объектами и т.п. Причём изменение метаданных и самого объекта хранения тоже атомарно (всё или ничего).
Долгое время сообщество Ceph пребывало в уверенности, что решить проблемы с транзакциями его объектов на нижнем уровне позволит решить btrfs, которая должна была заменить xfs и ext4, применявшиеся в основной массе случаев для оконечного хранения на физических дисках.
Время шло, проблема оставалась.
Ceph Kraken предлагает вам поэкспериментировать с BlueStore, а Ceph Luminous ставит его по умолчанию. На мой личный вкус это второе существенное новшество помимо ставшей основной в Kraken асинхронной системы обмена сообщениями, которая делает возможной, например, Распределённые вычисления поверх Ceph RADOS и AsyncMessenger [4] и применение RDMA.
Что и как подробнее... [5]
Материалы:
Автор: OlegBou
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vy-sokaya-proizvoditel-nost/259756
Ссылки в тексте:
[1] Proxmox 5: https://www.proxmox.com/en/
[2] с удаляющим кодированием: http://onreader.mdl.ru/MasteringCeph/content/Ch04.html#01
[3] ограничения: http://onreader.mdl.ru/MasteringCeph/content/Ch04.html#04
[4] Распределённые вычисления поверх Ceph RADOS и AsyncMessenger: https://habrahabr.ru/post/330908/
[5] подробнее...: http://onreader.mdl.ru/MasteringCeph/content/Ch04.html#0501
[6] Полное руководство работы с сетями на Python: http://onreader.mdl.ru/MasteringPythonNetworking/content/Ch04.html
[7] Полное руководство Ceph: http://onreader.mdl.ru/MasteringCeph/content/index.html
[8] Книга рецептов Ceph: http://http://onreader.mdl.ru/CephCookbook/content/index.html
[9] Proxmox. Полное руководство. 2е изд: http://onreader.mdl.ru/MasteringProxmox.2ed/content/index.html
[10] Книга рецептов Proxmox: http://onreader.mdl.ru/ProxmoxCookbook/content/index.html
[11] Zabbix. Полное руководство. 2е изд.: http://onreader.mdl.ru/MasteringZabbix.2ed/content/Ch04.html
[12] Пример системы виртуализации: http://onreader.mdl.ru/CephCookbook/content/VirtualizationExample.html
[13] Обзор рекомендуемых аппаратных средств: http://onreader.mdl.ru/SDDC/content/Ch01.html#01
[14] sddc.mdl.ru: http://sddc.mdl.ru
[15] Источник: https://habrahabr.ru/post/332514/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.