» » Proxmox 5 и частичная запись в блочных устройствах эффективного хранения Ceph

 

Proxmox 5 и частичная запись в блочных устройствах эффективного хранения Ceph

Автор: admin от 6-07-2017, 23:35, посмотрело: 478

Официальный выпуск Ceph Luminous от производителя мы ждём в ноябре 2017, однако Proxmox 5 уже позволяет использовать в промышленных решениях некую редакцию Ceph Luminous, которая, как и полагается, в качестве основного файлового хранилища по умолчанию предлагает BlueStore. Последнее полноценно поддерживает транзакции с операциями хранения объектов, что делает возможными большое число вкусностей. Одной из них является способность осуществления частичной перезаписи данных в блочных устройствах на основе пулов с удаляющим кодированием (Erasure Coding). Такие пулы, в частности, способны (при наличии достаточного числа физических дисков и серверов) приближать использование имеющегося сырого дискового пространства сколь угодно близко к 100%.



Et voila!



Методы хранения данных и блочные устройства



Ceph предлагает два вида пулов хранения:




  • с репликациями

  • с удаляющим кодированием



  • При стандарте допустимости двух отказавших устройств хранения, первый метод предполагает необходимость утроения сырого объема хранилища, в то время как второй допускает впечатляющее повышение эффективности использования пространства, например, до 90% при наличии возможности использовании 20 osd для расщепления данных (18 частей исходных данных + 2 части с избыточным кодом).



    Поверх обоих видов пулов хранения можно строить объекты хранения, допускающие блочные операции (например, моментальные снимки). Разница начинает проявляться при операциях записи в такого рода объекты, поскольку одна операция записи в блочное устройство с применением удаляющего кодирования подразумевает в своём составе некоторую неделимую последовательность считывания хранимых данных, их частичного изменения и окончательной записи полученного результата. Атомарно. То есть, если какая- либо часть последовательности остаётся незавершённой, отвергается вся операция. Данная атомарность также именуется транзакцией.



    До сих пор предлагалось два способа решения проблемы применимости пулов с удаляющим кодированием под блочные объекты:




  • использование объекта для записи только целиком

  • применение многоуровневости с пулом удаляющего кодирования в основе и пула репликаций поверх него



  • Оба метода имеют ограничения вариантов использования.



    BlueStore как новое решение основы хранения



    В основе хранения объектов Ceph в конечном итоге лежит некая файловая система на физическом диске (или разделе диска), которым управляет некий демон. Для решения множества возникающих по ходу дела проблем может применяться журнал в который и записываются данные, прежде чем клиент получит подтверждение о совершении своей операции. Помимо этого демон выполняет необходимые действия в одноранговой сети пула хранения по поддержанию необходимого числа копий данных (стандартно — трёх), причём с подразделением ролей хозяин — подчинённый. Всё это, собственно, и составляет osd (object storage device). Но в конечном итоге сами данные объекта хранятся в «обычном» файле на диске. Несколько осложняет задачу тот факт, что теоретически, сам объект может сопровождаться практически неограниченным числом метаданных. Как то: имя объекта, дата его создания, дата последнего изменения, контрольная сумма, сила вашей привязанности к этим данным и всё что вы можете придумать в добавление к тем метаданным, которыми снабжает этот объект ваш инструмент хранения — файловая система, система управления блочными устройствами или объектами и т.п. Причём изменение метаданных и самого объекта хранения тоже атомарно (всё или ничего).

    Долгое время сообщество Ceph пребывало в уверенности, что решить проблемы с транзакциями его объектов на нижнем уровне позволит решить btrfs, которая должна была заменить xfs и ext4, применявшиеся в основной массе случаев для оконечного хранения на физических дисках.

    Время шло, проблема оставалась.



    Ceph Kraken предлагает вам поэкспериментировать с BlueStore, а Ceph Luminous ставит его по умолчанию. На мой личный вкус это второе существенное новшество помимо ставшей основной в Kraken асинхронной системы обмена сообщениями, которая делает возможной, например, Распределённые вычисления поверх Ceph RADOS и AsyncMessenger и применение RDMA.



    Что и как подробнее...



    Материалы:





    Источник: Хабрахабр

    Категория: Программирование, Системное администрирование, Веб-разработка, Linux

    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *