Хочу поделится своим опытом эксплуатации LVM Thin Provision, и набитыми шишками. В целом, я доволен этой технологией.

Краткая вводная


О тонких томах я уже писал в более ранней статье. Производительность хорошая, слабо зависит от количества снимков, за более чем год, не было сбоев по вине именно LVM, все проблемы были созданы лично мной для себя любимого.

Грабли


Всем, кто начинает использовать тонкие тома, настоятельно рекомендуется чтение man lvmthin с пристрастием. Упущение, казалось бы, маловажного аспекта, что место в пуле томов может кончится, может привести к печальным последствиям.

Исчерпание места в Data space:


В зависимости от ФС. Обычно, после остановки io с переполненным томом, ФС остается целой, особенно если ФС журналируемая. Если вы успели расширить пул, и io-операции не успели отвалится по таймауту, то вообще все будет хорошо. Иначе откат журнала и небольшая потеря данных.

Исчерпание места в Metadata space:


Это очень стремная ситуация, так как ведет к остановке корректной работы всего тонкого пула, с необходимостью offline восстановления целостности данных пула. Это, часто приводит к серьезным нарушениям в Data space, и в 2 случаях из 3, проще было убить XFS и накатить бэкап, чем пытаться её восстановить.

Рекомендации:


Задавайте политику автоматического расширения тонких томов глобально. Задав разумные значения, вы потом сможете используя профили, настроить любую другую политику для пула. Однако, если система не применит профиль (в метаданных пула хранится имя профиля, который могли удалить), она сообщит об этом факте где-то в логах (чего можно и не заметить), но благодаря глобальной политике, все будет относительно неплохо.

LVM Thin Provision отлично работает в ситуации ленивого планирования. Это значит, что стоит под разные задачи создать пулы тонких томов разумно небольших размеров. В этих пулах создать тома, и просто наблюдать, как по мере заполнения растут размеры пулов. Выделять место сразу не стоит, не всегда можно предугадать под, что нужно место.

Размеры chunksize задавайте исходя из задачи. Большие размеры приведут к снижению накладных расходов в метаданных, но повлекут больший расход места на снимках (если совпадет с RAID5-6, то и тут бонус будет).

Zeroing — если отключить, получите чуть-чуть бонуса по скорости, но готовьтесь, в выделенных блоках может встретится всяких мусор.

Работа со снимками


Снимок создается без проблем, а вот его применение может вызвать некоторую проблему. Все дело в том, что пока том активен (хотя и не используемый), снимок к нему не применяется до следующей активации (или применяется в ленивом режиме). Поэтому, перед накатом снимка, дезактивируйте целевой том.

По умолчанию снимки создаются с флагом отмены активации. Это может обескуражить, при попытке его подключить.
Используете ли вы LVM Thin Provision

Проголосовало 32 человека. Воздержалось 15 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

Комментарии (7)


  1. ifaustrue
    18.04.2017 12:57
    +2

    Коллега, кажется до полноценной статьи пока не дотягивает. Напишите пожалуйста:

    Производительность хорошая

    Как и какая производительность сейчас? Желательно с указанием паттерна нагрузки и точного описания инсталяции (количество дисков, их характеристики, конфигурация итогового массива). В первом посте части этой информации нет.

    Исчерпание места в Data space

    Какими командами и как часто нужно следить за этим. Если пишете статью в формате how to, инструкции такого толка будут не лишними.

    Исчерпание места в Metadata space

    Аналогично Data space.

    и в 2 случаях из 3

    Это собственная практика или конкретные сценарии когда есть два стула две ситуации из трёх с невосстановимыми ошибками?

    Задавайте политику автоматического расширения тонких томов глобально

    Лучше показать что и где настроить.

    где-то в логах

    Вы же, кажется, знаете точно место? Напишите его.

    Размеры chunksize задавайте исходя из задачи

    Чуть больше конкретики, плиз. Как задавали вы? Исходя из каких параметров задачи нужно исходить по-вашему мнению? Ну и где\какой командой это настраивается.

    если совпадет с RAID5-6

    Хорошо бы показать, как это можно проверить.

    Zeroing — если отключить, получите чуть-чуть бонуса по скорости

    Наверное, тот кто в теме и так поймёт о чём тут речь. Но лучше написать где и как это делается.

    Поэтому, перед накатом снимка, дезактивируйте целевой том.

    Как деактивировать? Как накатить?

    От прочтения пока остаётся больше вопросов чем ответов. Погружение в технологию на уровне: «друг рассказал что она клёвая, но были сложности». Кажется, что на Хабре следует писать чуть более техническим языком.

    Но всё равно, спасибо =)


    1. MagicGTS
      18.04.2017 13:19

      Тесты есть, но руки до обработки результатов еще не дошли (нужно сделать развернутый анализ).
      Сообщения о окончание места сыпятся в dmesg или message, посчитал, что найти эти данные будет не сложно.
      Выбор размера чанков: вообще холивар, единого мнения нет, кроме не знаешь, оставь по дефолту.
      Остальные вопросы подробно расписанны в man, который я посчитал излишним переписывать сюда, статья имеет больше цель поделиться опытом реальной работы, нежели tutorial.


  1. kvaps
    19.04.2017 10:30

    Одно время работал с thin lvm и в целом мне все понравилось.
    Из минусов, к сожалению, для thinlvm pools не поддершивается работа в кластере (как shared хранилище).


    А без этой функции у lvm не остается особых преимуществ перед zfs, особенно сейчас когда zol (zfs on linux) стал достаточно стабилен и его стали пихать везде где только можно, не совсем понятно имеет-ли смысл использовать lvm, или лучше воспользоваться всей мощью zfs...


    1. MagicGTS
      19.04.2017 11:56

      Zol пробовал почти год назад в тестовом режиме. Тогда показалось не готовым к применению. Было бы интересно почитать о вашем опыте более подробно.


      1. kvaps
        19.04.2017 13:16

        С того времени довольно многое поменялось.
        Я начинал свое знакомство с zfs с подобных экспериментов, но в итоге отказался от этой схемы.


        Для дома и файлопомойки сейчас вполне успешно использую freenas 10, со всеми его фишками: zfs с дедупликацией, docker, bhyve и многое другое…
        На работе уже достаточно давно (около 5 лет) zfs on linux успешно работает в продакшене, на centos 6. (я тоже удивился когда узнал).


        Если хотите попробовать zfs и отделаться малой кровью, советую попробовать freenas — если хотите сделать стабильное хранилище и если не боитесь freebsd — там zfs уже давно и по умолчанию.
        Либо же любой deb-дистрибутив, там zol заводится с полпинка и работает без проблем. rpm тоже можно, но чуть сложнее.
        Если же планируете гипервизор — советую proxmox, там zol используется по умолчанию как для корневой системы, для софт-рейда и для образов виртуальных машин.


        1. MagicGTS
          19.04.2017 13:55

          Я в массе использую Centos 7 (freenas пробовал, но не стал его использовать дальше, приходится держать несколько ролей на одной машине, что решаю с помощью LXC). Были некоторые напряги при обновление модулей ядра, поэтому затею пока забросил. Надо опробовать еще раз.
          Что скажете о потребление ресурсов?


          1. kvaps
            19.04.2017 14:47

            Слышал что zfs довольно прожорлива до оперативной памяти.
            Но по себе не заметил, в схожей конфигурации думаю что немногим больше чем thin lvm и mdadm.
            Если включите сжатие и дедупликацию, понятное дело кушать будет больше.