LINUX.ORG.RU

Деградация zfs, btrfs при заполнении диска

 ,


5

6

Не так давно я перевёл свою домашнюю файлопомойку (1x1TB, 2x500GB) на zfs. Дисков мало, все они разные, поэтому никакого рейда — просто критические данные лежат на подтоме, для которого включено дублирование данных.

Сначала всё было хорошо. Потом ввод-вывод стал дико тормозить. А потом я наткнулся на статью, в которой красочно рассказано, как расп-дорашивает zfs от случайных перезаписей, если забить её данными хотя бы наполовину. А у меня из 1.8T занято 1.5T, и, видимо, так дальше жить нельзя.

Отсюда три вопроса:

  1. что делать (помимо того, что «вдоль» и «докупать больше дисков»)?
  2. как будут обстоять дела в подобных ситуациях у btrfs?
  3. какие ещё есть ФС из «комбайнов» со снапшотами, подтомами, компрессией и так далее?

Update #1. Нагрузка на ФС — торренты и sqlite-овая БД размером в один гигабайт. Тормоза наблюдаются с последней.

Update #2. После того, как я сделал synchronous = 0; для sqlite-овой БД, всё стало сильно лучше. Вопрос «какого хрена?» всё ещё в силе, т. к. intent log имеется.

★★★★★

Последнее исправление: intelfx (всего исправлений: 4)
Ответ на: комментарий от King_Carlo

EvgGad_303

Всё правильно. Если диск «present but not working», будьте добры echo 1 > /sys/block/sdX/device/delete и делайте что хотите. Это вам не комбайн.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Ничего правильного в этом нет. Вот это вот


It does not know how to kick it from the array, nor can it be removed (btrfs device delete) because this causes reading from the drive that isn't working. This means btrfs will try to write to the bad drive forever.

признак убогого дизайна и незнания/непонимания разработчиками данной подсистемы как это должно работать.

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

А на ЛОРе, я посмотрю, одни архитекторы собрались. Каждый считает своим долгом завернуть что-нибудь эдакое про «убогий дизайн» и тупость разработчиков.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

А на ЛОРе, я посмотрю, одни архитекторы собрались.

Рассадник, я бы сказал.

Ты мне лучше расскажи, как btrfs, при таких алгоритмах работы с убитыми хардами в массиве, отработает автоматическое включение в массив hot spare диска?

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

В btrfs нет поддержки hot spare. А как её можно сделать — довольно просто. Там уже сейчас есть операция replace -r, которая заменяет диск на другой, производя с исходным диском как можно меньше операций. Вот этот код, наверное, и можно переиспользовать.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

А если костылить и делать hot spare внешними средствами, то всё ещё проще — достаточно по таймеру парсить вывод btrfs device stats, а при появлении кучи ошибок выкидывать диск из системы (я уже написал, как) и запускать replace missing.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

В btrfs нет поддержки hot spare.

Файловая система для мелких домохозяйств )))

Там уже сейчас есть операция replace -r, которая заменяет диск на другой

Это надо делать руками, автоматом она не сможет, ибо алгоритмы такие африканские.

King_Carlo ★★★★★
()
Ответ на: комментарий от King_Carlo

У меня складывается ощущение, что ты не понимаешь значения слов «алгоритм» и «проблема дизайна».

Поясняю для особо одарённых: код работы с missing devices там уже есть. Выкинуть диск из массива по ошибке — это ровно десять строчек, включая захват и освобождение нужных локов, в обработчике I/O completion.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Поясняю для особо смелых экспериментаторов: когда заветные 10 строчек кода соизволят написать и когда вся эта помойка кода заработает должным образом, тогда я с удовольствием вернусь к обсуждению этой темы. А пока это не работает нет смысла говорить о теоретических возможностях. Теоретически я король Калифорнии.

King_Carlo ★★★★★
()
Ответ на: комментарий от King_Carlo

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

Ты мне сначала втирал про «убогий дизайн», а когда я ответил, что это не дизайн, а типичное not implemented yet, пластинка резко сменилась, да?

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

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

Давай определимся, мы обсуждаем мои скромные интеллектуальные способности или btrfs?

что это не дизайн, а типичное not implemented yet

Это твои догадки не более, где btrfs roadmap? Для raid поддержка hot spare - фича первой необходимости, если она до сих пор не реализована, то разрабы действительно плохо понимают с чем имеют дело.

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от intelfx

Т.е. Ви таки шарите в системном программировании? Почему же ви таки не написали эти 10 строчек кода?

И шо же ви такий бедный?

anonymous
()
Ответ на: комментарий от EvgGad_303

Я сейчас в месяц отработал не в стартапе, в преокте которому 8 лет, хайлоад проекте. Сам руководитель проекта не был в принципе в офисе, а работал только из дома. Да и то дозвониться ему была проблема.

Его зам 42 лет, работавший до этого в rucenter прекрасно рассказал, как делятся рабочие места, руководителей в крупном бизнесе на ближайшие 8 лет, в каких конторах проводят сертификации, и в каких можно сдать у них не проходя курсы, а где тебя завалят и испортят тебе что-либо. Объяснил. почему приходя на собеседование, надо спрашивать привычный для руководителя набор софта. Почему у сбербанка уже 2 месяц постоянно проблемы с приёмом платежей, почему у некоторых людей, постоянная смена работы( есть тут один хайлоадщик, который был руководителем в одном распиле), почему у них 3 людям по 40+, и 1 28. И ещё на кучу вопросов. Я теперь прекрасно понял, как работает it в россии, если раньше я думал, что IT свободнее от политики друзей, то теперь я окончательно убедился в обратном.

erzentded
()
Ответ на: комментарий от erzentded

мы уже поняли что ты хейтер btrfs

Не, я всего лишь не копрофаг.

а я вот в понедельник на ней буду делать шару для фирмы 400 голов и 12 офисов.

Новую работу уже начал искать?

King_Carlo ★★★★★
()
Ответ на: комментарий от King_Carlo

на тендерах, где была шара на btrfs, я работал больше года))) а на прошлую меня и брали бардак разобрать увы, который их друг разбирать не хотел. Я выше написал, что я за тот месяц узнал.

erzentded
()
Ответ на: комментарий от intelfx

Потому что у меня нет необходимости в этой фиче.

Собственно в этом вся суть дизайна, в контексте разработки btrfs.

King_Carlo ★★★★★
()
Ответ на: комментарий от EvgGad_303

к тому, что эстония тоже часть софка, и хотя у вас сейчас типа «джемократия», ненависть ко всему русскому, но в компаниях тот же совок, а значит тоже самое, что и у нас.

erzentded
()
Ответ на: комментарий от erzentded

ога, расскажи мне ещё, как у меня в стране что происходит. при этом даже у вас всё хорошо в нормальных местах, но тебя туда даже на порог не пустят.

EvgGad_303 ★★★★★
()
Ответ на: комментарий от EvgGad_303

Ещё один со своим «кривым дизайном».

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

Строго говоря, у вас в zfs выкидывать диски из пула вообще нельзя, но ты же не говоришь, что «у zfs кривой дизайн» =)

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Для volume/disk manager таки базовая.

Строго говоря, у вас в zfs выкидывать диски из пула вообще нельзя, но ты же не говоришь, что «у zfs кривой дизайн» =)

Потому что это костыль непонятно для кого/чего. Быстрее и менее затратно создать новый пул/фс и скопировать/раскатать из бэкапа, ну, эт если мы не про локалхост с около нулевым io говорим.

EvgGad_303 ★★★★★
()
Ответ на: комментарий от EvgGad_303

Для volume/disk manager таки базовая.

Всё равно не согласен. Это неплохая фича, но без неё можно прожить штатными средствами (я показал, как).

ну, эт если мы не про локалхост с около нулевым io говорим

А если именно про него? Энтерпрайзом с пятью девятками мир не ограничивается.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Во-первых, базовая функциональность — это хранить файлы и обеспечивать отказоустойчивость (и всё)

Уметь выбрасывать дохлые харды и делать hot spare - это элементы обеспечения отказоустойчивости и если разрабы btrfs заявили, что у них есть raid, то это самый что ни на есть базовый функционал.

у вас в zfs выкидывать диски из пула вообще нельзя

Зачем выкидывать диски из пула? Я не могу представить себе такую задачу. Мёртвый диск меняется на раз-два - руками или hot spare, дополнительный новый диск к пулу добавляется, что ещё надо?

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от intelfx

Какой-то недоделанный менеджер получается, впрочем, он и есть недоделанный, но сколько можно допиливать.

А если именно про него?

Тогда пускай не называют ЭТО киллером zfs, даже на альтернативу с натяжкой годится :)

EvgGad_303 ★★★★★
()
Ответ на: комментарий от King_Carlo

Уметь выбрасывать дохлые харды

Btrfs умеет выбрасывать дохлые харды.

делать hot spare - это элементы обеспечения отказоустойчивости

Не согласен. Это элемент обеспечения удобства. Выше я написал, как в btrfs делается hot spare имеющимися средствами.

Зачем выкидывать диски из пула? Я не могу представить себе такую задачу. Мёртвый диск меняется на раз-два - руками или hot spare, дополнительный новый диск к пулу добавляется, что ещё надо?

Лол. Ты уж определись, надо выбрасывать харды из пула или нет? Если не надо, то всё вообще зашибись: btrfs replace -r сделан как раз для тех случаев, когда хард подцеплен, но лучше его не трогать.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Ты уж определись, надо выбрасывать харды из пула или нет?

Для уменьшения пула не надо, для ремонта degraded-массива надо. Ты же имел ввиду именно уменьшение пула, как я понял?

King_Carlo ★★★★★
()
Ответ на: комментарий от EvgGad_303

Тогда пускай не называют ЭТО киллером zfs, даже на альтернативу с натяжкой годится :)

Щито?

- btrfs хреново умеет выкидывать диски из пулов
- во-первых, нет, во-вторых, ваш zfs этого вообще делать не умеет
- нам это не нужно
- вами мир не ограничивается, btrfs поддерживает в том числе юзкейс «локалхост»
- вот, что и требовалось доказать, btrfs непригодна как замена zfs

Ты видишь в своих словах логику? Я не вижу. Мы обсуждаем ту фичу, которой в zfs вообще нет.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от King_Carlo

В том блоге, который ты приводил, имели в виду уменьшение пула (btrfs device delete). Для ремонта массива (т. е. для замены диска) в btrfs есть операция btrfs replace.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Ты путаешься в показаниях. Вот тут ты что имел ввиду?

Строго говоря, у вас в zfs выкидывать диски из пула вообще нельзя

King_Carlo ★★★★★
()
Ответ на: комментарий от King_Carlo

Здесь и вообще везде я имел в виду «уменьшение». В том блоге, который ты притащил, речь именно об этом случае, и я подразумеваю, что мы говорим в этом контексте.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Здесь и вообще везде я имел в виду «уменьшение».

Понятно. Такая фича не нужна.

В том блоге, который ты притащил

Вообще то не я, а EvgGad_303

King_Carlo ★★★★★
()
Ответ на: комментарий от EvgGad_303

Потому что это костыль непонятно для кого/чего. Быстрее и менее затратно создать новый пул/фс и скопировать/раскатать из бэкапа

Угорал :DD

Deleted
()
Ответ на: комментарий от EvgGad_303

Началось вот с этого. Там 4.2, replace вполне себе работает и с _заменой_ всё хорошо (я уже неоднократно об этом писал).

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Всё таки странная эта btrfs, всякий, кто решается доверить ей свои данные приобретает характерные поведенческие деформации:


- любой кто возразил - «хейтер»,
- то что не работает по причине криворукости разрабов - «мне не нужно»,
- то что работает, но через попу - «меня устраивает»,
- если указывают пальчиком на отсутствие фич по причине кривого дизайна - «вы кто ваще такие, идите отсюда, не вам учить профи,вы идиоты и не лечитесь»
- при упоминании «zfs» возможна любая реакция, вплоть до членовредительства ;)

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 2)
Ответ на: комментарий от King_Carlo

Ты наркоман. Есть вполне адекватная критика, например то что compress весьма странно работает (по первому блоку). А есть критика из разряда «ололо, они написали что фича экспериментальная но я могу её включить, значит она обязана работать идеально». Вот хейтеры обычно прибегают со вторым, включают незаконченный или экспериментальный функционал и плачутся. Или наоборот говорят что если хоть одной из возможных фич ФС нет, значит не готова. В этом плане да — она не поддерживает все фичи на свете. Но она готова для продакшена на уровне обычной ФС.

vurdalak ★★★★★
()
Ответ на: комментарий от Deleted

Фанбоить тоже можно тонко. Когда ты жирно путаешься в показаниях, ты наркоман. А когда просто игнорируешь аргументы и повторяешь одно и то же, ты фанбой.

vurdalak ★★★★★
()
Ответ на: комментарий от King_Carlo

Во-первых, я всегда адекватно прислушиваюсь к советам и комментариям, пока они адекватны. Твои комментарии про btrfs таковыми не являются.

Во-вторых, ты так и не смог понять, что такое «кривой дизайн», и до сих пор бросаешься словами, смысл которых не совсем осознаёшь.

В-третьих, здесь за весь тред не было названо ни одной вещи в btrfs, которая «не работает по причине криворукости разрабов».

В-четвёртых, если что, я сидел на zfs четыре месяца, и до сих пор считаю, что это годная и фичастая ФС. За исключением одной очень неприятной особенности, очень важной в домашне-локалхостовых условиях.

Поэтому я теперь на btrfs — так случилось, что, едва перейдя на неё, я уже успел пережить один неполный сбой диска (да-да, тот самый) с перестроением, и эта ФС всё выдержала как полагается. Включая btrfs replace -r. Поэтому лично для меня сейчас btrfs > zfs, а твои (и EvgGad_303) слова о том, что-де btrfs не умеет замену диска, ничего не стоят по сравнению с моим собственным опытом по успешной замене оного. И это всё, что я имею сказать. Где ты увидел «любую реакцию» — мне решительно не понятно.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

ок, буду заворачивать шутейные посты в тег [humor][/humor]

King_Carlo ★★★★★
()
Ответ на: комментарий от intelfx

а твои слова о том, что-де btrfs не умеет замену диска, ничего не стоят

А я, наверное, вас помирю - тебе повезло в времени:

https://btrfs.wiki.kernel.org/index.php/Changelog

v3.19 (Feb 2015)
... and device replace

Фиче-то всего год. Да и ядра 3.19 не у всех сейчас ещё, наверное, в стабильных версиях дистрибутивов.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.