LINUX.ORG.RU

Свершилось: поломалась btrfs на ноуте

 ,


4

7

Дано: ноут Thinkpad с Core i5 и SSD на 256 Гб. Arch, ядро последнее ванильное арчевское, что-то типа 6.2.3 Около полугода (как выдали ноут на работе) установлен Arch на btrfs, dm-crypt, два раздела btrfs (/ и /home) с subvolumes, сжатием, снапшотами (snapper).

Сегодня в какой-то момент получил сообщение, что нет места на файловой системе. du показывает 50 Гб свободного места. Файлы можно удалять, удалил на несколько гигов. Но создавать или модифицировать файлы невозможно, с той же ошибкой, что не хватает места.

Удалил все снэпшоты снэппер, безрезультатно.

Попытался загрузиться в rescue режим, запустил btrfsck на /home и /

На /home отработал без ошибок, на / - миллиард незаканчивающихся ошибок…

Т.к. у меня есть полная копия на десктопе, а также бэкапы, слил последние изменения из /home, буду переустанавливать.

Но осадочек остался, хотя Arch и btrfs пользуюсь уже лет 15. Правда, раньше не пользовался снэпшотами (за исключением того, что их использует докер).

Не знаю зачем пишу, знаю, что в меня полетят помидоры за Arch и btrfs. Просто предупреждение, наверное.

Ответ на: комментарий от mxfm

Логика, что фс не работает, потому что Шишкин считает, что b-деревья не соответствуют чему-то там по его субъективному мнению - чистый абсурд.

Логика тут другая, «b-trees» в btrfs (я не спроста взял их в кавычки) не соответствуют законам чистой и незамутнённой теории алгоритмов и структур данных. Либо вы делаете правильно, либо у вас получается btrfs. Всё очень просто и предельно понятно.

Вот у массы людей, в том числе у меня, btrfs работает и задачи свои выполняет

Когда то fat16 выполняла задачи и что? Будете её использовать?

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

А использование аргумента под авторитет - так себе затея, в каких-то случаях может оказаться, что ты идёшь против мнения авторитета в другой сфере. Вот кто-то в теме про btrfs пишет:

Раз уж вы меня цитируете на меня и ссылайтесь, не называйте меня «кто то». Я здесь, я читаю дискуссию и я способен опознать свою цитату. Не делайте так, не говорите о человеке «в третьем лице» в его присутствии, это граничит с оскорблением.

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

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

Я не путаю личность автора с мыслями автора, и понимаю где нужно обсуждать личность, а где не нужно. А вот вы поступили ровно наоборот, свели аргументы к личности, да ещё и объявили меня в потенциальном лицемерии, на которое я якобы способен.

Я не в коей мере не эксперт в btrfs, но из вашего обобщения аргументов Шишкина, а так же прочего написанного вами, мне понятно, что вы ещё менее эксперт чем я, вы читаете, но не до конца понимаете прочитанное. При этом у вас есть «иллюзия понимания», на основании которой вы ввязываетесь в дискуссии не вашего уровня компетенции. Есть такая фраза: «произносит слова, смысла которых не понимает». Вы не просто слова произносите, вы целые абзацы сочиняете, например:

Разрабы объясняют так - потому что фичи BTRFS с COW и прочие ништяки работают, если контролёр записывает блоки данных и метаданных в правильном порядке. Некоторые модели контролёров в целях оптимизации мухлюют с порядком, и при ребуте фс ломается (потому что фичи, и как следствие фс зависит от правильного порядка). Если в фс нет некоторых фич, то и проблемы нет. Получается, что либо фичи и риск фейла при некорректном контроллере, либо нет фич и нет проблемы.

В приведённой вами в качестве подтверждения ссылке этого бреда нет. Там много банальностей в стиле «вода мокрая, масло скользкое, мёртвый человек мёртв», контроллер с памятью и BBU лучше чем контроллер без BBU и мозгов и т.п. Это общие места и фразы, применимые к любой ФС.

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

Ага а в btrfs никто из сотен тысяч его пользователей ничего не тестировал… Или что я должен тренироваться в случае сбоя удалять диск из рейда, добавлять новый, а потом балансировку запускать?

Да, чтобы убедиться что ты знаешь и умеешь как это делать, и в стрессовой ситуации «под давлением» не растеряешься и не напортачишь. Вообще я удивлён что ты этого не понимаешь и что это нужно разъяснять. Но дело твоё и колокейшн твой, живи как знаешь.

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

тут правильно отметили, что он запустил команду btrfs check, которая все сломала, а нужно было balance сделать всего-то

да, просто феноменальный идиот какой-то: для проверки и починки ФС запустил команду check.

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

Нет, они не понимают! «Ссы в глаза, божья роса». Меня уже десяток лет вот это вот изумляет. Причём настолько изумляет что я уже в собственном здравом смысле начинаю сомневаться.

Ну не может же так быть чтобы сотни тысяч, возможно миллионы людей не считали бы подобное поведение следствием фундаментальной ошибки в дизайне ФС. И это ведь просто наиболее наглядный пример демонстрации, это не какая то изолированная проблема которую можно решить патчами.

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

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

Ну вообще есть 2 дистрибутива, которые предлагают btrfs в корпоративном сегменте. Это в первую очередь SLES и SLED, как и основанный на них openSUSE Leap; и клон RHEL Oracle Linux, в котором есть свое фирменное ядро UEK, что поддерживает btrfs. Но скорее всего, там те же проблемы, что и везде.

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

Так Windows и живо до сих пор в основном в силу привычности, предустановке на ПК и самое главное — вендор-локу, многие задачи требуют ПО, что есть только под Windows.

Именно потому у неё такое техническое качество — когда у тебя фактически монополия, можно делать почти что угодно, кроме совсем уж нерабочего дерьма.

К слову, GNOME в Linux от того же страдает. Разработчики иных DE просто не могут себе позволить посылать нахер всех пользователей, что не согласны с любой их прихотью — но им денег дадут корпорации, если будет хотя бы минимально приемлемый результат.

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

С тем же успехом можно сказать

Можно сказать что угодно при безальтернативности выбора. Но в linux, из ФС, нам дали несколько бриллиантов, но некоторые почему то безудержно стремятся использовать навоз )

Herabora
()
Ответ на: комментарий от Vsevolod-linuxoid

А ещё BTRFS нынче «ФС по умолчанию» во всяких NAS, Asustor, Terramaster, Synology, QNAP... Видимо считают её достаточно стабильной. Ко мне один такой едет, вот думаю, поступить как фанатик и разметить в LVM2+XFS (штатная альтернатива) или оставить дефолтный btrfs и посмотреть «как оно». Просто тут я как бы уже деньгами за сохранность данных отвечаю...

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

Проблему, о которой писал горячо любимый тобой Шишкин, в общем-то уже очень давно «решили патчем». Магический скрипт, который бы её воспроизводил, приведён так и не был, а до тех пор это всё сугубо сотрясание воздуха громкими словами одного человека (и религиозное повторение этих слов сотнями хомячков, пытающихся быть не такими как все).

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

винда, ломающаяся от обновлений до состояния незагружабельности, для десктопа точно так же не готова.

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

Так что да, не готова.

i-rinat ★★★★★
()

Это же поделка btrfs, у неё каждый релиз ядра что-то серьёзное чинят десятилетиями. Ни в плане производительности, ни в плане стабильности не стоит её фич.

ac130kz ★★
()
Последнее исправление: ac130kz (всего исправлений: 1)

У меня не было жёстких ребутов - это же ноут.

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

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

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

Использую btrfs лет 15, но впервые столкнулся с такой проблемой. На старом ноуте сильно выручала поддержкой сжатия, т.к. рабочих файлов было много, и без сжатия они совершенно точно не поместились бы на SSD.

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

Логика тут другая, «b-trees» в btrfs (я не спроста взял их в кавычки) не соответствуют законам чистой и незамутнённой теории алгоритмов и структур данных. Либо вы делаете правильно, либо у вас получается btrfs. Всё очень просто и предельно понятно.

У вас аргумент сводится к мнению эксперта, что если в фс наблюдается конкретное явление, то это не фс. Понятно, а если её успешно использует масса пользователей, то дальше что? Дух Шишкина ночью мне сломает фс? Или вызовет мне автозак? Или у меня фс обязательно перестанет работать? Вообще-то она у меня и у многих других хорошо работает. А значит экспертные рассуждения, что она не будет работать/некорректно работает/обязательно сломается - это всё демагогия. Интересно почитать, но не более.

Когда то fat16 выполняла задачи и что? Будете её использовать?

Забавно, что желание доказать несостоятельность фс свелась к такому явно глупому аргументу, как сравнение с fat16. Нормальные люди не выдумывают ерунду, почему неподошедшая им фс «не является фс», им не тепло ни холодно от того, что кто-то юзает другие фс.

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

При использовании сжатия свободное место — величина не очень определённая. Не зря на f2fs сжатие не приводит к увеличению доступного объема. Чтобы не было проблем.

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

Раз уж вы меня цитируете на меня и ссылайтесь, не называйте меня «кто то». Я здесь, я читаю дискуссию и я способен опознать свою цитату. Не делайте так, не говорите о человеке «в третьем лице» в его присутствии, это граничит с оскорблением.

Я не спроста не написал именно про вас, потому что мой комментарий относится к аргументу про верность мнения эксперта в целом, не только к вам. Конкретно про вас я ничего не говорил.

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

Вам лично я ничего не приписал. Я написал, что на форуме часто бывает, что один и тот же человек пишет в одной теме одно, в другой - другое. В частности, в треде про btrfs может писать, что мнение эксперта X - закон и «истинно потому что истинно», а в треде про GUI/shell/scm/язык программирования утверждать, что мнение эксперта Y - гавно. Я не писал, что так поступаете именно вы.

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

Ну и в чём приведённая цитата перевирает/искажает написанное в вики?

This is perhaps the most serious problem and impossible to mitigate by filesystem without limitations and design restrictions. What could happen in the worst case is that writes from one generation bleed to another one, while still letting the filesystem consider the generations isolated. Crash at any point would leave data on the device in an inconsistent state without any hint what exactly got written, what is missing and leading to stale metadata link information.

Devices usually honor the flush command, but for performance reasons may do internal caching, where the flushed data are not yet persistently stored. A power failure could lead to a similar scenario as above, although it’s less likely that later writes would be written before the cached ones. This is beyond what a filesystem can take into account. Devices or controllers are usually equipped with batteries or capacitors to write the cache contents even after power is cut. (Battery backed write cache)

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

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

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

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

взаимоисключающие параграфы

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

Я не в коей мере не эксперт в btrfs

в психологии есть такое явление: проецировать собственное мышление (в частности, неполное понимание предмета) на других

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

В большинстве случаев падения системы причиной является внезапный ребут без сохранения данных

Я одно время периодически просил жену(по телефону) выключить компьютер и когда она не понимала как это сделать в линуксе, я говорил, что пусть нажмет power и подержит 5сек. Да и сам иногда так делал, чтобы не ползти к клавиатуре(мне с кровати до кнопки ближе). И ни разу у меня ничего от такого на ext4 не ломалось, ну или чинилось за один проход fsck. А что с вашей ФС так делать совсем нельзя?

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

В большинстве случаев падения системы причиной является внезапный ребут без сохранения данных

Позвольте, но ведь btrfs вроде как журналируемая ФС и в этом случае пострадать должны были только самые последние данные, которые не успели в журнал попасть? Или я наивный чукотский юноша и чего-то не понимаю?

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

У меня противоположный вопрос - зачем НЕ роллинг на рабочем ПК?

Тут может быть смысл, а может быть он в том, чтобы у всех девов и тестеров была одинаковая конфа, а не бегать потом с криками УМВР и искать почему же у тестеров все навернулось. Ну либо иметь у себя роллинг(да хоть черта в ступе), а собирать и тестировать всё в докере\на виртуалках.

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

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

Подчёркиваю, это не означает, что фс ломается в большинстве случаев таких событий, это другая статистика - если btrfs сломалась, то вероятность что это был ребут на внешнем диске при записи данных достигает - over 50%.

mxfm ★★
()
Ответ на: комментарий от i-rinat

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

Могли бы уже тогда перейти на a/b как андроид. Всё-таки в системе для массового и широкого применения на десктопах должна быть банальная защита от дурака.

Fizzika ★★
()

du показывает 50 Гб свободного места

Я думал для этого пользуются df?

Как воспроизвести ситуацию? Пользоваться btrfs, Arch, snapper (со снапшотами каждый час?), забить всё место? Мне кажется это часто происходит - должно тогда чаще ломаться у большого числа людей.

Просто предупреждение, наверное.

Вот был бы хоть какой-нибудь листинг команд и ошибок.

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

Я думал для этого пользуются df?

Спешил, опечатался. Я хотел ещё привести вывод compsize, но он за полчаса не выдал ничего, устал ждать. По ощущениям, fs стала работать очень медленно.

Как воспроизвести ситуацию? Пользоваться btrfs, Arch, snapper (со снапшотами каждый час?), забить всё место? Мне кажется это часто происходит - должно тогда чаще ломаться у большого числа людей.

Я и не говорил, что проблему можно воспроизвести. Цель сообщения - только рассказать, что может возникнуть необъяснимая нерешаемая (возможно, решаемая, но я не стану - просто перенакачу систему) проблема с btrfs.

Диск у меня переполнялся где-то 2-3 недели назад, не заметил, как один контейнер забил всё свободное место ненужными логами. А диск небольшой по размеру.

Потом, сомневаюсь, что так уж много людей пользуется btrfs одновременно со сжатием и снэпшотами.

Вот был бы хоть какой-нибудь листинг команд и ошибок.

Могу запустить снова, но лень, и сомневаюсь, что они кому-то что-то дадут. Если вечером будет время, попробую это сделать. Но, скорее всего, просто перенакачу систему.

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

Потом, сомневаюсь, что так уж много людей пользуется btrfs одновременно со сжатием и снэпшотами.

Если не пользоваться сжатием и снапшотами, зачем вообще пользоваться btrfs?

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

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

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

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

А судя по отзывам это панацея какая то, писаная торба с которой все носятся

Это ж где ты таких отзывов начитался. На ЛОРе каждое упоминание btrfs вызывает ровно два типа реакции «у меня от этого говна брат умер» и «ХЗ УМВР». Доля последних вроде как медленно растёт

P.S. УМВР

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

Субвольюмы удобная штука, например чтобы держать два дистра на одной ФС и не напрягать мозг размышлениями о том как разбивать диск. Но вообще да, сжатие и снапшоты — круто, а сабвольюмы это так, игрушка для знатоков извращений вроде меня

MrClon ★★★★★
()

Требуем грязных подробностей.

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

i586 ★★★★★
()

Можете меня тоже записать в пострадавшие. Конфиг ноутбука такой же как у тебя. Дистрибутив только guix был, без сабволюмов, бтрфс поставил ради сжатия. Но в отличчии от тебя, у меня место буквально за 2-3 дня кончилось) пробовал удалять данные, предыдущие поколения, сборщик мусора запускал, ничего не помогло, даже sudo не работало no space left on device. Саму фс чинить не стал.

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

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

Или задавать разные опции монтирования - для swap или какого-нибудь nix/store задать noatime

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

noatime, на сколько я понимаю, сейчас есть смысл ставить по дефолту на всё, время доступа к файлу уже почти никакие приложения не используют. Вроде есть какой-то почтовый клиент (или что-то такое, не помню) использовавший его зачем-то

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

Надёжность уступает более простому ext4, но не сказал бы что прям драматически. Если нужны фичи btrfs — есть смысл задуматься над тем чтобы использовать его, если нет — юзай ext4, он не подведёт

MrClon ★★★★★
()