Email or username:

Password:

Forgot your password?
Alexey Skobkin

Что-то сегодня адуха какая-то.

Как будто бы рейд посыпался.

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

При этом диски не были помечены сбойными, а просто пропали из массива. При этом находясь в системе и показывая по mdadm --examine, что они часть рейда. Причём ещё и в статусе "active". Когда в это же время в mdadm --detail было минус два диска как будто их просто не существует.

В итоге один вернулся сам после того как я этих двоих физически вынул и вернул обратно.

Второй вернулся после mdadm <array> --add. Выглядело всё это так как будто mdadm - слепой, а я его носом ткнул и он такой: "Да вот же он!".

Вот только в следующий ребут ФС, которая находится поверх LUKS на этом массиве не подмонтировалась с ошибкой "fsconfig system call failed: Structure needs cleaning", а e2fsck нашёл какую-то ебАную кучу всякой хрени (пока просто в режиме без изменений).

Оставил на ночь mdadm провести проверку целостности массива с пересчётом и ...

Заказал дисков, на которые планировал обновляться в самом конце года.

Короче говоря, астрологи объявили неделю приключений, танцев с бубном, незапланированных трат и потенциальной потери 30 терабайт данных 🎉

Предлагаю делать ставки на исход.

#hardware #server #soft #mdadm #Linux #RAID #log #storage #WTF #shit

Anonymous poll

Poll

[Почти] всё восстановишь
13
59.1%
Много проебёшь
3
13.6%
Всё проебёшь
6
27.3%
22 people voted.
Voting ended 5 October at 23:17.
37 comments
kurator88

@skobkin  а почему нет варианта где ты уверенно все восстановишь без потерь ?

как хорошо с zfs где два диска отданы в жертву богам

Alexey Skobkin

@kurator88
Это первый вариант.
Для меня "всё" и "почти всё" - это примерно одно и то же в данной ситуации.

Почти гарантированно при исправлении ФС до той стадии где она монтируется что-то потеряется.

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

Да, я обновляю диски до тех, что в два раза больше, но RAID 6 съедает два диска на отказоустойчивость и тогда у меня будет место для снятия образов, но не будет места, куда можно что-то восстанавливать.

Так что скорее всего я остановлюсь на том, что добившись стабильной работы рейда и проверив, что сам по себе он цел запущу e2fsck в режиме с записью и буду надеяться, что оно не сожрёт вообще всё 🤷‍♂️

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

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

Я переживу потерю коллекции фильмов, сериалов, аниме, а также бекапов того, что сейчас живо.

Да, потеряю какие-то, скажем, фотографии со времён школы или сорцы моих видео, какие-то старые документы, но это всё преходящее.

Не знаю как так получается, но я к тому, что это всё может проебаться отношусь абсолютно спокойно. :philosoraptor:

> как хорошо с zfs где два диска отданы в жертву богам

Ну так ZFS с двумя дисками отданными в жертву - это примерно то же самое, что у меня, просто на уровне ФС, а не блочных устройств.

Shit иногда happens даже в таких случаях 🤷‍♂️

@kurator88
Это первый вариант.
Для меня "всё" и "почти всё" - это примерно одно и то же в данной ситуации.

Почти гарантированно при исправлении ФС до той стадии где она монтируется что-то потеряется.

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

kurator88

@skobkin

>Shit иногда happens даже в таких случая

да, добавил в бэклог добавить бэкапов и по-больше по-больше

нужна какая-то социальная сеть где я даю людям 100гб а мне за это 2 раза по 50гб на разных хостах

Alexey Skobkin

@kurator88
Слушай, а что-то подобное уже есть в разных вариантах.

Я знаю, что такое есть у Synology. Знаю, что подобный [не совсем бекап] можно сделать с помощью syncthing - там есть режим, когда на конкретном девайсе данные лежат только зашифрованные.

По-моему ещё где-то видел что-то подобное. Но с ходу опенсорсных решений не вспомню именно для бекапа - где у тебя данные хранятся удалённо, а не синкаются с локальной копией.

kurator88

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

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

Alexey Skobkin

@kurator88
Да, то, что ты описываешь звучит как что-то, что я где-то слышал.

В общем-то я когда писал выше - примерно подобная мысль проскакивала.

Беглый гуглинг выдаёт как минимум вот это:
- storj.io
- filecoin.io
- tartle.co
- safenetwork.tech
- sia.tech
- u.is/en/

Из этого я раньше видел Sia, Storj и Filecoin по-моему - из-за чего и написал, что что-то такое есть.

@kurator88
Да, то, что ты описываешь звучит как что-то, что я где-то слышал.

В общем-то я когда писал выше - примерно подобная мысль проскакивала.

Беглый гуглинг выдаёт как минимум вот это:
- storj.io
- filecoin.io
- tartle.co
- safenetwork.tech
- sia.tech
- u.is/en/

Max

@skobkin @kurator88

Восстанавливать диск можно не на RAID-массив - тогда и места хватит на все.

А потом данные перекинуть на старый диск, новые в RAID и обратно закинуть.

Да, несколько больше копирований - но зато и "поиграться" полноценно можно.

Alexey Skobkin

@max @kurator88
Это если доверять хардвари старых дисков. А я пока не знаю.

Alexey Skobkin

Немножко картинок для привлечения внимания и вызывания нервных тиков.

#pic #server #fail #RAID

RAID is probably dying.
RAID is probably dying 2.
Filesystem is failed to mount.
Minoru

@skobkin Жесть. А я только вчера мечтал дополнить пару внешних HDD красивеньким самосборным NAS с RAID6 :(

Alexey Skobkin

@minoru
Ну так дополни, чо нет-то.

Minoru

@skobkin Места нет :( Вот перееду и ка-ак развернусь! А пока что только мечтать остаётся. И выбирать между пятидисковым RAID6 и, даже не знаю, зеркалом из трёх дисков, что ли.

Roman

@skobkin а не надежнее btrfs zfs?

Alexey Skobkin

@3draven
Не надёжнее чем что?

Зависит от.

Я с ZFS не хотел связываться по нескольким достаточно простым причинам:

- её нет в ядре
- она всё равно будет плохо работать на дисках разных объёмов если её не балансировать с бубном
- это привязка к конкретной ФС

В итоге решил не переусложнять и разделить задачи по отдельным инструментам. Один занимается рейдом, один шифрует, один файлы хранит.

Раньше я вообще на mhddfs, а потом mergerfs жил 🤷‍♂️

@3draven
Не надёжнее чем что?

Зависит от.

Я с ZFS не хотел связываться по нескольким достаточно простым причинам:

- её нет в ядре
- она всё равно будет плохо работать на дисках разных объёмов если её не балансировать с бубном
- это привязка к конкретной ФС

В итоге решил не переусложнять и разделить задачи по отдельным инструментам. Один занимается рейдом, один шифрует, один файлы хранит.

Roman

@skobkin не надежнее чем изолированные инструменты, не знающие данных друг друга. Фс цельная и просто так ничего не потеряет.

Alexey Skobkin

@3draven
> Фс цельная и просто так ничего не потеряет

Эмм... Ну, скажи это людям, которые проёбывали всё с BTRFS.

Проебать можно всё и везде. Если это что-то очень важное - нужно заботиться о резервных копиях.

Правило трёх бэкапов - оно не просто так существует.

Roman

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

Alexey Skobkin

@3draven
А я не знаю.

Я не знаю, что конкретно произошло пока.

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

Возможно это диски отказали. Возможно, недорогой SATA контроллер пизданулся. Даже баг в ФС исключать нельзя 🤷‍♂️

Taciturn

@skobkin > Я не знаю, что конкретно произошло пока.
А логи совсем не смотрел или в них ничего?

@3draven

Alexey Skobkin

@Taciturn @3draven
Немного смотрел, но не все. Их много достаточно, надо выделить время на ковыряние.

Taciturn

@skobkin Выкладывай все, почитаем вместе!

@3draven

Andrey Esin

@skobkin

Я немного хз, какие данные на дисках и насколько критичен сервер в онлайне, но я бы его выключил и не включал но новых дисков, особенно, если оставшиеся 3 той же марки, что и выпавшие из рейда. В этот момент я бы взял выпавшие диски и с помощью badblocks без деструктивных опций проверил бы их
А если есть возможность воткнуть ещё диск, из тех новых, что пришли, то воткнул бы как hot spare один диск, на случай повторных пиздецов

Моё мнение не спрашивали, но поделился опытом, столкнувшись с такой же ситуацией, но рейд5 из 4 дисков осталось в живых 2, которые пришлось умаливать и через ddrescue уносить с них данные на новые диски и уже новые диски вставлять для последующего ребилда (lvm, luks, все как надо поднялось после такой дрочки)

Сил тебе и терпения!

#hardware #server #soft #mdadm #Linux #RAID #log #storage #WTF #shit

@skobkin

Я немного хз, какие данные на дисках и насколько критичен сервер в онлайне, но я бы его выключил и не включал но новых дисков, особенно, если оставшиеся 3 той же марки, что и выпавшие из рейда. В этот момент я бы взял выпавшие диски и с помощью badblocks без деструктивных опций проверил бы их
А если есть возможность воткнуть ещё диск, из тех новых, что пришли, то воткнул бы как hot spare один диск, на случай повторных пиздецов

Alexey Skobkin

@andrey
Спасибо.

Тут ещё смешно то, что у меня последние три года лежал запасной диск на 10 в ящике специально для такого случая.

Но неделю назад я его дал поюзать родне для восстановления данных с плохого диска 😁

Как вернут - добавлю, скорее всего.

Taciturn

@skobkin Опрос завершился. Соответствует ли результат реальности?

Alexey Skobkin

@Taciturn
Узнаем через ~неделю.

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

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

Когда будет о чём писать - напишу.

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

@Taciturn
Узнаем через ~неделю.

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

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

67K mismatches on RAID 6 array.
Taciturn

@skobkin > накопиться
Может стоит добавить в cron, хотя бы раз в пол года (а лучше раз в три месяца) проверку (echo check > /sys/block/md127/md/sync_action)?

Alexey Skobkin

@Taciturn
Так, ну "repair" прошёл и нашёл ровно столько же мисматчей, сколько было найдено ранее.

И это уже хорошо. Значит они как минимум не растут в реальном времени.

Сейчас немного раскидал диски по разным контроллерам и повторяю "check". Скорость проверки заметно повысилась. Посмотрим, что найдёт.

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

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

А пока успел получить два из пяти новых дисков.

@Taciturn
Так, ну "repair" прошёл и нашёл ровно столько же мисматчей, сколько было найдено ранее.

И это уже хорошо. Значит они как минимум не растут в реальном времени.

Сейчас немного раскидал диски по разным контроллерам и повторяю "check". Скорость проверки заметно повысилась. Посмотрим, что найдёт.

RAID stats after "repair".
Alexey Skobkin

@Taciturn
"check" после "repair" показал 0 мисматчей.
Запускаю проверку ФС (пока readonly) чтобы оценить масштаб бед. В прошлый раз там были дикие простыни находок.

Alexey Skobkin

Так.

Ну не одним же рейдом веселиться, правда?

Стал запускать полученные новые диски для нового рейда и из пяти:

- Один не запустился вообще
- Один оказался 12 ТБ в корпусе 20 ТБ

🎉

Успех!

#hardware #HDD #Ozon #fun #log #server #RAID

burbilog

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

Andrey Esin

@burbilog
Если используется mdadm - можно утащить на любую машину весь массив/диск, на котором есть Линукс с поддержкой mdadm

@skobkin

Alexey Skobkin

@andrey @burbilog
Я полагаю, он имел в виду, что нельзя из RAID 5/6 вытащить ОДИН диск, унести
на другую машину и легко читать с него данные потому, что они там размазаны с контролем чётности.

Впрочем непонятно что тут ненавидеть, т.к. это не баг, а фича 🤷‍♂️

burbilog

@skobkin @andrey да-да я именно про это. однажды две недели ждал, пока прососется. на любителя это, ИМХО, куда спокойнее переплатить за диски пожирнее или за дополнительные массивы, не складывая абсолютно все в одну корзину

Alexey Skobkin

@burbilog @andrey
Ну, на моём массиве разница между зеркалом и 6 будет измеряться в очень больших деньгах.

Плюс у RAID 6 есть два parity.
В случае же просто зеркала придётся самому решать где правильные данные если один на одном диске, который не умер физически некорректные данные.

1lyaP

@skobkin @burbilog @andrey У софтовых рейдов на линуксах, mdadm, lvm, zfs, etc есть один существенный минус: ПО размазывает блоки контроля чётности равномерно по всем дискам вместе с данными. Это даёт удобство администрирования, но скорость восстановления таких массивов гораздо медленнее, чем у честных "железных" рейдов. К примеру, в хуавеевской железке 16-терабайтный hdd на 10k ребилдится за день, около 11 часов. В lvm-ном массиве аналогичный диск восстанавливается почти трое суток, на топовом ксеоне и терабайте оперативки.

У меня был в практике случай, когда администрация одного города закупила хранилки под конкретный проект, проигнорировав рекомендации архитекторов. Купили 6 схд, в каждой по несколько сотен nl-sas дисков и сколько-то там ссдшек под кеш. Запилили на этом хозяйстве шестые рейды. Где-то год всё работало, потом начали сыпаться диски: сначала меняли по одному-два в неделю, через пару месяцев уже по 4-5 штук. Постепенно довели инфраструктуру до критической точки, диски в рейдах уже не успевали перестраиваться. Проебали пару петабайт. Могли бы и больше, но к рекомендациям уже начали прислушиваться и мы сумели более-менее всё разрулить.

@skobkin @burbilog @andrey У софтовых рейдов на линуксах, mdadm, lvm, zfs, etc есть один существенный минус: ПО размазывает блоки контроля чётности равномерно по всем дискам вместе с данными. Это даёт удобство администрирования, но скорость восстановления таких массивов гораздо медленнее, чем у честных "железных" рейдов. К примеру, в хуавеевской железке 16-терабайтный hdd на 10k ребилдится за день, около 11 часов. В lvm-ном массиве аналогичный диск восстанавливается почти трое суток, на топовом ксеоне...

Go Up