Проблема с потерей данных на разделах с файловой системой Ext4, о которой сообщалось (http://www.opennet.me/opennews/art.shtml?num=42262) несколько дней назад, оказалась (https://lkml.org/lkml/2015/5/21/167) не специфична для файловой системы Ext4. Проблема присутствует в коде подсистемы md и может привести к непредсказуемому нарушению целостности файловой системы при изменении или удалении файлов. Проблема проявляется только для ФС, установленных поверх RAID 0 и примонтированных с опцией DISCARD.
Ошибка проявляется в ветках ядра 4.0 и 3.14 LTS, начиная с выпусков 4.0.2 и 3.14.41. В настоящее время исправление доступно в виде патча (http://git.neil.brown.name/?p=md.git;a=commitdiff;h=a8115776...). Для Arch Linux уже выпущены (https://www.archlinux.org/news/data-corruption-on-software-r.../) устраняющие проблему обновления ядра linux 4.0.4-2 и linux-lts 3.14.43-2. В основном ядре исправления ожидаются в выпусках 4.0.5 и 3.14.44. Пользователям ядер 4.0.2+ и 3.14.41+, у которых применяется RAID0 с опцией DISCARD, рекомендуется перемонтировать раздел без DISCARD и проверить целостность файловой системы при помощи fsck.URL: https://lkml.org/lkml/2015/5/21/167
Новость: http://www.opennet.me/opennews/art.shtml?num=42286
>оказалась не специфична для файловой системы Ext4.Ну вот, поспешили с выводами. Не разобрались.
А свидетели стабильного btrfs чуть второе пришествие не объявили (эти странные фанатики почему-то уверены, что достаточно найти хоть одну какую-то ошибку или уязвимость в Ext*, чтобы объявить о тотальном превосходстве btrfs).
Та же история что и с провозвестниками чудесного нового мира systemd.
Очень приятно себя чувствовать прогрессивными, а всех остальных - луддитами.
> Очень приятно себя чувствовать прогрессивными, а всех остальных - луддитами.Очень приятно - это, извините, отыграть случайно снесенную диру назад, откатив снапшот. А вот тот кто снеся диру выщипывает волосы на ж...е - не луддит даже а среднее между дypaком и мазохистом.
Для того, чтобы не щипать волосы на ж.пе, достаточно для любой из extX использовать сторонние продукты live-бэкапа. Например, appassure. Для домашнего тазика - не решение, а для корпоративной сети - самое оно.
> эти странные фанатики почему-то уверены, что достаточно найти хоть одну какую-то ошибку или уязвимость в Ext*, чтобы объявить о тотальном превосходстве btrfsооххх! как же это знакомо :-)
старпёры почему-то уверенны что стоит найти хоть одну какую-то ошибку в Btrfs -- и сразу значит можно объявлять о "Btrfs ещё не готова".. :)
ну а как вышла такая же ситуация с Ext4 -- то тут сразу нелепые оправдания...
...точнее говоря, виновник-то оказалась не Ext4 , а md-raid0! да! но ведь и в ситуациях когда у когото файлы портились на Btrfs -- точно также не было явных докозательств, что виновата была точно именно Btrfs (а не вообще аппаратный сбой какой-нибудь, например оперативной памяти, или опять-таки очередная ошибка в какой-нибудь подсистеме ядра).
двойные стандарты? не?
ни кто из пользователей Ext4 не использует md-raid0 (ды и с discard)? да, наверно! тем более есть же LVM..
ну тыг ни кто из пользователей Btrfs и не использует В_ЗДРАВОМ_УМЕ все-все-все фишечки этой своей Btrfs :-) .. потому как часть этих фишечек считается экспериментальными (и этот факт их экспериментальности -- НЕ скрывается).
> стоит найти хоть одну какую-то ошибку в BtrfsОдну? Скорее тысячу и одну. Видите ли, именно потому бывают новости "обнаружена ошибка в ext4", но не бывает таких новостей про btrfs.
Вы сами, не-старпер, готовы поставить целостность своей задницы в зависимость от сохранности данных, лежащих на btrfs?
> Вы сами, не-старпер, готовы поставить целостность своей задницы в зависимость от сохранности данных, лежащих на btrfs?Он готов. Только при этом четыре раза в день будет делать бэкапы на соседний раздел, который ext4. А в случае проблем будет с него восстанавливаться. Но да, кричать везде будет, что у него "btrfs на основном разделе и за полгода никаких проблем. Просто делайте бэкапы".
бекапы -- на любую файловую систему можно закачивать :-) ..вероятность того что поломаются одновременно в один день сразу оба накопителя (и боевой и бэкап) -- не сильно высока. :-) не зависимо от того какая там файловая система на любом из них..
(и конечно же -- "соседний раздел" -- это не для нас Btrfsщиков .. сами занимайтесь полосканием своего накопителя на мелкие разделы!)
**************************************************
кстати говоря, Btrfs очень дружелюбна к восстановлению данных (судя по тому что пишут в блогах и Wiki.. у меня-то оно не ломалось ещё пока-что).
но правда если накопитель сломается физически -- то эта дружелюбность врядли особо поможет.
а в случае Btrfs как раз более вероятно что именно ФИЗИЧЕСКИ накроется Контроллер на SSD (SSD превратится в кирпич), чем вероятнось что файловая система сама-собой испортится.
так что да -- куда уж нам без бэкапов :-)
>> вероятность того что поломаются одновременно в один день сразу оба накопителя (и боевой и бэкап) -- не сильно высока. :-) не зависимо от того какая там файловая система на любом из них..
> я тоже так думал, пока на одном сервере не умерло два винта одновременно. А на предыдущей работе 4 винта в полке ;) Но да, вероятность маленькая :Dну вообще, конечно, всякое может случиться :-) . поэтому я и оперирую термином "вероятность" :-D . и не называю точные цифры!
а расчитать эти вероятности -- не так-то просто (как могло бы показаться на первый взгляд).
ведь события, как правило, взаимозависимы! (а простые формулы вероятностей -- оперируют с независимыми событиями).
и даже если события не имеют прямой зависимости -- то всё равно у них может быть связь через общий причинно-следственый источник! [[и сразу говорю -- нет -- этот "общий причинно-следственый источник" -- не кривые руки меня:)]]
Вообще же, в русском языке новое предложение начинается с заглавной буквы. На клавиатуре есть клавиша Shift. Так вот, раскрываю секрет! Удерживая её и нажимая клавишу с буквой, можно очень быстро ввести заглавную букву вместо строчной, соответствующей клавиши.
Хоть изен и ламо, но придется ему поставить плюс :\. Все-таки нельзя так класть на родной язык, гражданин Xasd. Читать этот галимо отформатированный трэш неудобно.
> ну вообще, конечно, всякое может случиться :-) . поэтому я и оперирую
> термином "вероятность" :-D . и не называю точные цифры!Ну почему же, Вы ведь их знаете -- 50/50, или случится, или не случится.
> а расчитать эти вероятности -- не так-то просто
Раз уж берётесь оценивать сложность оценки вероятности -- прошу для развлечения произвести таковую для ошибки вроде исправленной этим двустрочником хотя бы в нулевом приближении.
Нас-то в школе учили не пытаться оцифривать то, для чего данных недостаточно...
> я тоже так думал, пока на одном сервере не умерло два винта одновременно. А на предыдущей работе 4 винта в полке ;) Но да, вероятность маленькая :DВозможно у них была общая причина - неисправный БП.
> старпёры почему-то уверенны что стоит найти хоть одну какую-то ошибку в Btrfs
> -- и сразу значит можно объявлять о "Btrfs ещё не готова".. :)Никогда не сидели над блокдевайсом, припоминая старые добрые времена, когда эти циферки были структурами данных?
Да, ОДНОЙ найденной в новой ФС неприятной ошибки ДОСТАТОЧНО, чтобы отложить на несколько лет следующую оценку пригодности к работе. Если Вы этого не поняли -- не трогайте чужие данные, гробьте только свои.
Помнится, про ZFS здесь писал аналогичное, указывая на приплывший Joyent.
> не поняли -- не трогайте чужие данные, гробьте только свои.Как вы понимаете, в этом мире мало кто хочет угробить данные. А вот претензия на универсальную истину в последней инстанции, особенно не будучи экспертом в области качества софта - отдает каким-то излишним снобизмом, чтоли.
> Помнится, про ZFS здесь писал аналогичное, указывая на приплывший Joyent.
А теперь - пойдем и посмотрим git log на fs/ и узнаем как страшно жить :)
На самом деле ошибки бывают в любом достаточно сложном коде и если ждать пока их выловят ВООБЩЕ ВСЕ - можно умереть стариком, боясь использовать даже FAT12. А с практической точки зрения есть такая штука как резервирование. Ну там бэкапы, например. Поскольку раз в год и палка стреляет.
> А теперь - пойдем и посмотрим git log на fs/ и узнаем, как страшно жить :)Например, ровно из таких соображений до 2.6.30 и не думал доверять свои данные пресловутой ext4 (а на SSD пришлось ещё некоторое время выждать).
> А с практической точки зрения есть такая штука как резервирование.
Это понятно, но не отменяет.
Собственно, бухтёж был не ради запугивания и устрашения, а чтоб кому-то, может, одной своей шишкой меньше досталось за счёт уже известной чужой.
> Например, ровно из таких соображений до 2.6.30 и не думал доверять свои
> данные пресловутой ext4 (а на SSD пришлось ещё некоторое время выждать).И это правильно - в ext4 до 2.6.28 включительно были довольно убедительные баги в экстентной механике, вызывавшие немало дестроя. Но вообще, парочка жирных и кусачих багов была и сильно потом. Вы в 2.6.30 и далее пользовались фс ... которая на очень больших томах с очень большими файлами рассыпалась. Просто столь огромные файлы были далеко не у каждого первого. Но баг был убедительный.
Ну вот btrfs сейчас - имхо не хуже ext4 в 2.6.30. Я им уже достаточно активно пользуюсь и никаких проблем с этого не поимел. Ну то-есть я пока не пользуюсь RAID5/6, т.к. сначала логика рекавери там была в состоянии "release early, release often". А сейчас - допилили, но протестированность этого code path - понятно какая.
А так, если посмотреть ченжлоги - там много достаточно стремных вещей бывает в самых разных ФС, btrfs вообще ничем таким не уникален в общей куче. Но чаще всего баги в активно используемых ФС остаются в corner cases вида "в полнолуние високосного года файл на 20 терабайтов может превратиться в пыль". По этой причине и придумали бэкапы.
> одной своей шишкой меньше досталось за счёт уже известной чужой.
Это имеет некий пойнт. Но если переборщить - так можно за FAT16 цепляться до самой могилы. И на мой вкус это достаточно спорное решение. Т.к. изначально дизайн многого и не обещал, логично что его было просто сделать. На чем его достоинства и заканчивались - возможность потери данных там просто декларирована фактом что оно нежурналирующее и фиг чего предъявишь :)
> Вы в 2.6.30 и далее пользовались фс ... которая на очень больших томах с очень
> большими файлами рассыпалась. Просто столь огромные файлы были далеко не у
> каждого первого. Но баг был убедительный.Именно, и в этих "каждого первого" не входил -- а в какие входил, то уже успели вытоптать на поголовье федоры и готовых к сюрпризам в полном сознании.
> Но если переборщить - так можно за FAT16 цепляться до самой могилы.
А тут уж каждый сам для себя баланс находит :) Как там -- "моё дело мяукнуть"...
Зря копья ломаете. Смысл? Ну путь юзают что кому удобнее, лишь бы не винду.
> Зря копья ломаете. Смысл? Ну путь юзают что кому удобнее, лишь бы не винду.А винда-то тут причём? Надёжная и проверенная временем операционная система, с которой знакомо подавляющая часть населения (кроме упоротых линуксоидов). Юзают — не плачут.
> знокомо
> знакомоУх ты, первую ашибку заметил сам; вторую, может, допетрит после подсказки; главное, чтоб с разгону и "третью" не нашёл, а переключился на логические. :)
> ни кто из пользователей Ext4 не использует md-raid0 (ды и с discard)?Кстати, используют, когда нужен быстрый кеш на SSD с рабочим discard.
Не все хардварные контроллеры прокидывают discard.
Но использовать raid0 - это подписаться под "мне насрать на данные в массиве".
> А свидетели стабильного btrfs чуть второе пришествие не объявили...наверное потому что у них свой RAID, с шахматами и поэтессами, силами самой ФС, так что md-raid им ни в п...у ни в красну армию. Сделать RAID0 средствами btrfs будет умнее т.к. это даст больше возможностей + возможность плавной миграции на какой-нибудь иной уровень, если хочется :)
Сделать raid силами Btrfs просто несколько проще, чем использовать EXT4+mdamd. И не надо тут язвить. Когда есть EXT4 и нужен raid, пользуем mdadm, когда btrfs - всё уже средствами самой ФС делаем.
> Когда есть EXT4 и нужен raid, пользуем mdadmНу, зачем так категорично...RedHat усиленно продвигает LVM как альтернативу.
Из общих соображений - поймать багу в коде RAID btrfs куда как больше шансов - он моложе, его мало гоняли.
Поздно, тролли уже успели обгадить со всех сторон ext4.
> Поздно, тролли уже успели обгадить со всех сторон ext4.Ниче не поздно: к черту троллей.
> Поздно, тролли уже успели обгадить со всех сторон ext4.и что?
ZFS cамая стабильная
Только оперативы не напасешься
> ZFS cамая стабильнаякакая конкретно её реализация или портирование?
Illumos/BSD
> ZFS cамая стабильнаяСановская на спарочке? Напоминаю недавнее: http://techcrunch.com/2008/01/15/joyent-suffers-major-downti.../
> 2008Это писец насколько свежее. Уже прошло 7(семь)!!!! лет и несколько месяцев.
>> 2008
> Это писец насколько свежее. Уже прошло 7(семь)!!!! лет и несколько месяцев.Михаил, Вам еще в самый раз вспомнить знаменитую страшилку из блога лисяры про разваленый райд
> Михаил, Вам еще в самый раз вспомнить знаменитую страшилку из блога лисяры
> про разваленый райдЕсли это про тот vinum в очумелых ручках Dear Never -- не, там давность вдвое больше, а релевантность платформы в стораджевом сегменте на сколько-то порядков (пяток там, десяток) меньше...
>> 2008
>Уже прошло 7(семь)!!!! лет и несколько месяцев.Просто он не так молод как некоторые. Ощущение времени другое.
Он еще байки из 90-х любит рассказывать про каких-то студентов и прочие заговоры.
> Сановская на спарочке? Напоминаю недавнее: http://techcrunch.com/2008Ничего себе недавнее. Хотя если вы законспирированный МакЛауд - для вас 7 лет, несомненно, ерунда.
>> Сановская на спарочке? Напоминаю недавнее: http://techcrunch.com/2008
> Ничего себе недавнее.Иэхх, прям перепись тех, кого к чужим данным пускать не стоит. Да, недавнее для *такого* попадалова с учётом тогдашней репутации ещё Sun и дальнейшей траектории этого кода по рукам.
Если бы Вас лично вроде бы хороший друг основательно кинул пятую часть жизни тому -- точно бы опять уже ему всё доверили?
> Иэхх, прям перепись тех, кого к чужим данным пускать не стоит.Сразу заметен манагер с привычками "лить гуано в уши клиентов". Как поймали за руку сразу начал изворачиваться и дальше продолжать врать.
А ничего что там в joyent-e стоял оооочень бородатый solaris-express из тех годов (2005?) когда zfs еще не попала в релизы и эти дятлы забив на обновление бета-версий словили баг исправленный за 2 года до этого? Причем Вы это прекрасно знаете но продолжаете врать не краснея.
Вы не разу не то что не работали с zfs, но даже и не видели ее, но с умным видом несете всякую напетую различными Цеперовичами хрень! Стыдно, Михаил
> Сразу заметен манагер с привычками "лить гуано в уши клиентов".Справедливости ради, сан это умел получше Шигорина, раз так в эн. До сих пор лезут упыри, защищающие древний и достаточно грабельный дизайн с аргументом "патамучта гладиолус".
В смысле, технически аргументировть на уровне структур файлухи и логики работы почему сановское нечто хорошее они не могут, но зато яростно набрасываются на всех кто смеет в этом усомниться.
> В смысле, технически аргументировть на уровне структур файлухи и логики работы почему сановское нечто хорошее они не могут, но зато яростно набрасываются на всех кто смеет в этом усомниться.Нет. Просто все помнят слова Иисуса Христа про бисер, свиней и user-а294
> Нет. Просто все помнят слова Иисуса Христа про бисер, свиней и user-а294Вообще-то там "растерзают", а не "поюзают", так что не надо.
В первоисточнике не было "растерзают" или "поюзают". Было "мечут"
> В первоисточнике не было "растерзают" или "поюзают".Было:
---
Не давайте святыни псам и не бросайте жемчуга вашего перед свиньями, чтобы они не попрали его ногами своими и, обратившись, не растерзали вас.
--- http://days.pravoslavie.ru/Bible/B_mf7.htm
> Иэхх, прям перепись тех, кого к чужим данным пускать не стоит.В данном случае 294-го :). Который умеет и в резервное копирование, и вопросы качества как-то умеет, по поводу чего мысль о том кого там к чьим данным пускать не надо ... ну ... наверное здорово ощущать себя самым умным на планете. Жаль что это ощущение редко оказывается истинным.
...а потому я в курсе что за 7 лет в софте меняется довольно многое (а иногда и почти все). Так что "недавний" опыт 7-летней давности не такая уж ценная штука применительно к софту. Ну то-есть бывают те кто не умеет работать над ошибками, но таковы далеко не все двуногие, особенно из софтописак.
> Да, недавнее для *такого* попадалова с учётом тогдашней репутации ещё Sun
> и дальнейшей траектории этого кода по рукам.Лично я считаю что сани умели набивать себе цену, при том - далеко за пределами того что они из себя по факту представляли в технологическом плане.
> точно бы опять уже ему всё доверили?
Есть некоторая разница между ФС и людьми. Лично я ZFS не буду пользоваться по более прагматичниым причинам: на мой взгляд мне не понятно зачем там многое сделано так как сделано и у меня есть ощущение что техническую посредственность свойств - вытягивали громким маркетингом. Не говоря о дурной лицензии. Ну не буду я к ядерщикам с tainted кернелом соваться. Out of tree модули в ядре линукса - граждане второго сорта. Это может нравиться, может не нравиться, но это факт и спорить с ним глупо.
> по поводу чего мысль о том кого там к чьим данным пускать не надо ...
> ну ... наверное здорово ощущать себя самым умным на планете.
> Жаль что это ощущение редко оказывается истинным.Вот и я о чём. Если ещё не теряли чужие данные (необязательно из-за сбоя ФС) -- ну... наверное, всё ещё впереди. А чувствуешь в таком случае себя самым большим дураком на свете -- потому как мог, но не предусмотрел что-то даже не за себя -- за других.
> Проблема проявляется только для ФС, установленных поверх RAID 0 и
> примонтированных с опцией DISCARD.предлагаю добавить в mount новую опцию
mount -o я-прогрессивный-поэтому-включаю-любую-НЁХ-про-которую-на-похорониксе-или-опеннете-написали-что-это-круто
которая будет прописывать нулями один случайный блок при монтировании ФС.
слишком универсальное решение :-) ..нужно время от времени менять название этой опции.. и объявлять новое актуальное название в новостях :-)
(а старое название объявлять устаревшим, и делать kernel-panic при его использовании)
Лучше менять поведение старой опции, повышая грабельность — сегодня 1 блок, завтра 2, послезавтра 1 +1 с вероятностью 30%
Думаете это их остановит? Студенты еще 100 лет назад ради ощущения собственной избранности, правоты и прогрессивности на каторгу шли и бомбами в царя кидались.
А тут какой-то случайный блок.
Вы завязывайте лучше с алкоголем.
Речь была про свидетелей секты самых-прогрессивных-systemd-и-btrfs
DISCARD вроде как SSD-шный TRIM включает, при чём тут НЁХ?
> вероятность того что поломаются одновременно в один день сразу оба накопителя (и боевой и бэкап) -- не сильно высока. :-) не зависимо от того какая там файловая система на любом из них..я тоже так думал, пока на одном сервере не умерло два винта одновременно. А на предыдущей работе 4 винта в полке ;) Но да, вероятность маленькая :D
> я тоже так думал, пока на одном сервере не умерло два винта одновременно.
> А на предыдущей работе 4 винта в полке ;) Но да, вероятность маленькая :DЕсли сигейты, то не такая уж и маленькая...
Ну и для RAID5 хорошо известен эффект double fault, когда следующий в очереди на вылетание диск под повышенной нагрузкой при resync не успевает отдать все данные.
> Ну и для RAID5 хорошо известен эффект double fault, когда следующий в
> очереди на вылетание диск под повышенной нагрузкой при resync не успевает
> отдать все данные.для массивов еще хорошо известен занятный эффект "не тот диск вынул при замене". я как-то раз по большой внимательности наступил на эти грабли, полчаса вытряхивал потом кирпичи из порток :)
а так - следует отдавать себе отчет, что на любых массивах с избыточностью мы обычно всего в двух отказах диска от аварии с потерей данных, и если время простоя и/или потеря данных _действительно_ важны, то довести это число хотя бы до трех-четырех.
Да чёрт с ней,с ФС.Миша ,скажи честно Альт сдох?Даже на вашем форуме всего два бойца,а англоязычная часть сайта обновлялась два года назад.
> Миша, скажи честно Альт сдох?Не дождётесь (ц)
> Даже на вашем форуме всего два бойца,
Странно, на http://forum.altlinux.org их поболе будет...
> а англоязычная часть сайта обновлялась два года назад.
Ну вот новость про 7.0.5 попросили перевести -- может, появится. Посмотрите на основной altlinux.ru и скажите, какие именно новости за это время животрепещут на английском, но отсутствуют.
А ещё лучше пойдёмте в соседнюю http://www.opennet.me/opennews/art.shtml?num=42299 и не будем спамить здесь.
> DISCARD вроде как SSD-шный TRIM включает, при чём тут НЁХ?Он как раз нулями затирает блоки. Правда, не случайные. А которые более не используются ФС :)
Писали бы на нормальном языке - не возникло бы таких проблем.
Возникли бы другие.
there is no one silver bullet
оперативно нашли, наверное bisect-ом
Вероятно. Отличный инструмент, к слову. Намедни с помощью него нашёл баг в одном из 160 коммитов. Не знаю, сколько бы руками искал.
https://bugzilla.kernel.org/show_bug.cgi?id=98501
Все, кто использует raid0 должны быть готовы, что настанет жопа и делать бекапы.
> Если сигейты, то не такая уж и маленькая...в полке вроде hitachi были, sas
> Ну и для RAID5 хорошо известен эффект double fault, когда следующий в очереди на вылетание диск под повышенной нагрузкой при resync не успевает отдать все данные.
два диска были в зеркале