Краткая вводная
О тонких томах я уже писал в более ранней статье. Производительность хорошая, слабо зависит от количества снимков, за более чем год, не было сбоев по вине именно LVM, все проблемы были созданы лично мной для себя любимого.
Грабли
Всем, кто начинает использовать тонкие тома, настоятельно рекомендуется чтение man lvmthin с пристрастием. Упущение, казалось бы, маловажного аспекта, что место в пуле томов может кончится, может привести к печальным последствиям.
Исчерпание места в Data space:
В зависимости от ФС. Обычно, после остановки io с переполненным томом, ФС остается целой, особенно если ФС журналируемая. Если вы успели расширить пул, и io-операции не успели отвалится по таймауту, то вообще все будет хорошо. Иначе откат журнала и небольшая потеря данных.
Исчерпание места в Metadata space:
Это очень стремная ситуация, так как ведет к остановке корректной работы всего тонкого пула, с необходимостью offline восстановления целостности данных пула. Это, часто приводит к серьезным нарушениям в Data space, и в 2 случаях из 3, проще было убить XFS и накатить бэкап, чем пытаться её восстановить.
Рекомендации:
Задавайте политику автоматического расширения тонких томов глобально. Задав разумные значения, вы потом сможете используя профили, настроить любую другую политику для пула. Однако, если система не применит профиль (в метаданных пула хранится имя профиля, который могли удалить), она сообщит об этом факте где-то в логах (чего можно и не заметить), но благодаря глобальной политике, все будет относительно неплохо.
LVM Thin Provision отлично работает в ситуации ленивого планирования. Это значит, что стоит под разные задачи создать пулы тонких томов разумно небольших размеров. В этих пулах создать тома, и просто наблюдать, как по мере заполнения растут размеры пулов. Выделять место сразу не стоит, не всегда можно предугадать под, что нужно место.
Размеры chunksize задавайте исходя из задачи. Большие размеры приведут к снижению накладных расходов в метаданных, но повлекут больший расход места на снимках (если совпадет с RAID5-6, то и тут бонус будет).
Zeroing — если отключить, получите чуть-чуть бонуса по скорости, но готовьтесь, в выделенных блоках может встретится всяких мусор.
Работа со снимками
Снимок создается без проблем, а вот его применение может вызвать некоторую проблему. Все дело в том, что пока том активен (хотя и не используемый), снимок к нему не применяется до следующей активации (или применяется в ленивом режиме). Поэтому, перед накатом снимка, дезактивируйте целевой том.
По умолчанию снимки создаются с флагом отмены активации. Это может обескуражить, при попытке его подключить.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (7)
kvaps
19.04.2017 10:30Одно время работал с thin lvm и в целом мне все понравилось.
Из минусов, к сожалению, для thinlvm pools не поддершивается работа в кластере (как shared хранилище).
А без этой функции у lvm не остается особых преимуществ перед zfs, особенно сейчас когда zol (zfs on linux) стал достаточно стабилен и его стали пихать везде где только можно, не совсем понятно имеет-ли смысл использовать lvm, или лучше воспользоваться всей мощью zfs...
MagicGTS
19.04.2017 11:56Zol пробовал почти год назад в тестовом режиме. Тогда показалось не готовым к применению. Было бы интересно почитать о вашем опыте более подробно.
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 используется по умолчанию как для корневой системы, для софт-рейда и для образов виртуальных машин.MagicGTS
19.04.2017 13:55Я в массе использую Centos 7 (freenas пробовал, но не стал его использовать дальше, приходится держать несколько ролей на одной машине, что решаю с помощью LXC). Были некоторые напряги при обновление модулей ядра, поэтому затею пока забросил. Надо опробовать еще раз.
Что скажете о потребление ресурсов?kvaps
19.04.2017 14:47Слышал что zfs довольно прожорлива до оперативной памяти.
Но по себе не заметил, в схожей конфигурации думаю что немногим больше чем thin lvm и mdadm.
Если включите сжатие и дедупликацию, понятное дело кушать будет больше.
ifaustrue
Коллега, кажется до полноценной статьи пока не дотягивает. Напишите пожалуйста:
Как и какая производительность сейчас? Желательно с указанием паттерна нагрузки и точного описания инсталяции (количество дисков, их характеристики, конфигурация итогового массива). В первом посте части этой информации нет.
Какими командами и как часто нужно следить за этим. Если пишете статью в формате how to, инструкции такого толка будут не лишними.
Аналогично Data space.
Это собственная практика или конкретные сценарии когда есть
два стуладве ситуации из трёх с невосстановимыми ошибками?Лучше показать что и где настроить.
Вы же, кажется, знаете точно место? Напишите его.
Чуть больше конкретики, плиз. Как задавали вы? Исходя из каких параметров задачи нужно исходить по-вашему мнению? Ну и где\какой командой это настраивается.
Хорошо бы показать, как это можно проверить.
Наверное, тот кто в теме и так поймёт о чём тут речь. Но лучше написать где и как это делается.
Как деактивировать? Как накатить?
От прочтения пока остаётся больше вопросов чем ответов. Погружение в технологию на уровне: «друг рассказал что она клёвая, но были сложности». Кажется, что на Хабре следует писать чуть более техническим языком.
Но всё равно, спасибо =)
MagicGTS
Тесты есть, но руки до обработки результатов еще не дошли (нужно сделать развернутый анализ).
Сообщения о окончание места сыпятся в dmesg или message, посчитал, что найти эти данные будет не сложно.
Выбор размера чанков: вообще холивар, единого мнения нет, кроме не знаешь, оставь по дефолту.
Остальные вопросы подробно расписанны в man, который я посчитал излишним переписывать сюда, статья имеет больше цель поделиться опытом реальной работы, нежели tutorial.