LINUX.ORG.RU
решено ФорумAdmin

Ремонт зеркала своими руками

 , , ,


0

3

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

Есть несколько «зеркал» (mdadm, RAID 1), каждое из которых «натянуто» на два идентичных (по геометрии) раздела двух физических дисков (всего дисков три, но в RAID 1 их разделы всегда участвуют попарно). Поверх md-разделов – LVM2. Поверх LVM2 – ext4.

/proc/mdstat в порядке:

Personalities : [raid1]
md4 : active raid1 sda6[0] sdb6[2]
      1299452672 blocks super 1.2 [2/2] [UU]

md3 : active raid1 sda5[4] sdb5[5]
      165540964 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sdb3[5] sda3[4]
      165540964 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb2[4] sda2[3]
      321793764 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[4] sda1[3]
      1048564 blocks super 1.2 [2/2] [UU]

unused devices: <none>

S.M.A.R.T-атрибуты (18x, 19x) тоже в порядке.

/usr/share/mdadm/checkarray положен в cron, и в какой-то момент в почте я начал замечать следующее:

Nov  3 03:54:03 helios mdadm[3953]: RebuildFinished event detected on md device /dev/md4, component device  mismatches found: 4224 (on raid level 1)
Nov  3 05:04:10 helios mdadm[3953]: RebuildFinished event detected on md device /dev/md2, component device  mismatches found: 256 (on raid level 1)
Dec  1 03:53:45 helios mdadm[3929]: RebuildFinished event detected on md device /dev/md4, component device  mismatches found: 4224 (on raid level 1)
Dec  1 04:12:32 helios mdadm[3929]: RebuildFinished event detected on md device /dev/md2, component device  mismatches found: 128 (on raid level 1)
Jan 13 00:01:30 helios mdadm[3914]: RebuildFinished event detected on md device /dev/md2, component device  mismatches found: 256 (on raid level 1)
Jan 13 04:28:05 helios mdadm[3871]: RebuildFinished event detected on md device /dev/md4, component device  mismatches found: 7168 (on raid level 1)
Jan 13 05:36:56 helios mdadm[3871]: RebuildFinished event detected on md device /dev/md2, component device  mismatches found: 256 (on raid level 1)
Jan 13 14:03:54 helios mdadm[3871]: RebuildFinished event detected on md device /dev/md4, component device  mismatches found: 7168 (on raid level 1)
Jan 13 15:12:38 helios mdadm[3871]: RebuildFinished event detected on md device /dev/md2, component device  mismatches found: 256 (on raid level 1)

Повторная проверка (check), как видно, к изменению результатов не привела. Сейчас ситуация следующая (соответствует логам выше):

# cat /sys/block/md2/md/mismatch_cnt
256
# cat /sys/block/md4/md/mismatch_cnt
7168

Формально у меня сейчас два варианта:

  1. Попытаться прочитать (скопировать) все данные с потенциально проблематичных разделов и в результате гадать, была ли проблема и, если была, то с какой из двух половинок зеркала я эти данные считал.
  2. Выполнить echo repair > /sys/block/md{2,4}/md/sync_action и … Вспоминается Картман и его мега-бизнес-идея собирать старые кальсоны.

Вопросы:

  1. Как обычно в таких случаях ремонтируется RAID 1?
  2. Есть ли возможность «посмотреть» (интерактивный repair) на различающиеся блоки, занятые файлами?
★★★★★

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

Там есть своп в любом виде?

Как обычно в таких случаях ремонтируется RAID 1?

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

Есть ли возможность «посмотреть» (интерактивный repair) на различающиеся блоки, занятые файлами?

Если узнаешь адрес, то при наличии в ext4 поддержки reverse-mapping можно попробовать.

anonymous
()

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

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

Там есть своп в любом виде?

Да, про своп я в курсе дела. Но отключение свопа (на /dev/md2) через swapoff и явное его «зануление» (dd if=/dev/zero ...) оставляют разницу в 256 блоков на прежнем значении.

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

Зеркало формально «склеено». Но у меня сейчас состояние, которое обычно называют «split brain».

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

Слишком мало расхождений тогда.

anonymous
()

Есть несколько «зеркал» (mdadm, RAID 1), каждое из которых «натянуто» на два идентичных (по геометрии) раздела двух физических дисков (всего дисков три, но в RAID 1 их разделы всегда участвуют попарно). Поверх md-разделов – LVM2. Поверх LVM2 – ext4.

Очень извиняюсь за сарказм, но надо поверх ext4 положить файл с образом fs и его монтировать дальше.

Как обычно в таких случаях ремонтируется RAID1?

Бэкап и echo repair.

А вообще в логах что-нибудь подозрительное есть, кроме ошибок у mdadm'а? Может, память сбоит? Или сервер резетом перегружали несколько раз?

P.S. Поэтому связку mdadm->lvm->ext4 и не использую, т.к. пока всё хорошо - всё хорошо. Как подземный стук в виде подобных косяков или падения производительности - не найдёшь хвостов. И в случае факапа с железом восстановители ничего не вытащат.

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

Есть несколько «зеркал» (mdadm, RAID 1), каждое из которых «натянуто» на два идентичных (по геометрии) раздела двух физических дисков (всего дисков три, но в RAID 1 их разделы всегда участвуют попарно). Поверх md-разделов – LVM2. Поверх LVM2 – ext4.

Для чего этот франкенштейн?

С такими извращениями иди в zfs. Там умеют собирать несобираемые пазлы, и считают, что это правильно и надежно.

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

С такими извращениями иди в zfs.

В ZFS подобного извращения как раз вообще не будет, а будет вменяемая и целостная ситуация.

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

будет вменяемая и целостная ситуация.

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

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

Как сделать 4 raid’а на 3 дисках, чтобы они были независимые (по mdstate’у, вообще, на 2 дисках). Надеюсь не надо объяснять что такое зависимость? Сколько дисков надо поменять, если проблема с одним из четырех raid’ов? Одну четвертую диска?

Этот франкенштейн не дает ни надежности, ни скорости чтения для raid1.

anonymous
()

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

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

Как сделать 4 raid’а

Зачем делать 4 зеркала, когда можно сделать один зеркальный pool и нарезать его на 4 fs?

на 3 дисках

Это вообще откуда? У ТС - 2 диска, по описанию.

Этот франкенштейн не дает ни надежности, ни скорости чтения для raid1.

То, то ты предлагаешь - конечно, франкенштейн (хотя на mdadm делают то же самое 20 лет и он даёт надёжность, а по поводу скорости - так raid1 не для скорости). Просто перед тем, как критиковать - надо матчасть знать :)

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

У ТС´а три диска, но каждое md-устройство состоит из двух реплик (общий объём, таким образом, составляет 3/2 или 150% ёмкости одного диска).

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

Причём тут ТС уже, когда ты написал ерунду про ZFS по незнанию, а я тебе показал, как надо? :)

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

Да, в зеркале у мд на один диск и читается и пишется а на второй только пишется

да что ты говоришь.

Linux MD RAID-1 (mirroring) read performance: MD implements read balancing. That is, the RAID-1 code will alternate between each of the (two or more) disks in the mirror, making alternate reads to each.

и каких только сказок от тебя не услышишь.

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

всего дисков три, но в RAID 1 их разделы всегда участвуют попарно

Блин, я только сейчас правильно прочитал. Но зачем??

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

ТС´а три диска

Так.

каждое md-устройство

Сколько их? СКОЛЬКО?

общий объём, таким образом, составляет 3/2 или 150% ёмкости одного диска

А это откуда высосал?

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

ZFS я тебе показал, как надо

Не знаю что ты показываешь, но я знаю что ты слепой. И поэтому не важно, что ты показываешь.

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

А вообще в логах что-нибудь подозрительное есть, кроме ошибок у mdadm’а? Может, память сбоит? Или сервер резетом перегружали несколько раз?

Спасибо за рекомендации. Нет, память не сбоит (там 4 не самые плохие и не самых старые планки стоят, одинаковые; memtest86+ проходит).

Сервер вполне перегружали в моё отсутствие, и, возможно, не раз (электричество «мигнуло», фен в ванну уронили, кот кабель погрыз — ну, ты понимаешь =)

Что характерно, после:

  1. проверки разделов с важными данными в R/O-режиме (e2fsck -nf, ошибок не было) и
  2. всяких /usr, /var, /usr/local и /opt в RW (e2fsck -f, ошибок не было) и
  3. последующим занулением свободного места через zerofree (ну или cat /dev/zero), а также
  4. повторным занулением свопа,
  5. после чего 100500 раз был сделан sync; sync; sync, а затем
  6. reboot

— так вот, после всех этих приседаний разница автомагически исчезла, причём и на md2, и на md4.

Сейчас выполняю повторный check всего.

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

Блин, я только сейчас правильно прочитал. Но зачем??

Ну, потому что 10 лет назад я не знал, что можно вот так запросто «кастануть» тебя, и ты мне объяснишь, как надо. RAID 5/6 не хотелось, ибо его восстанавливать вообще геморрой. Хотелось зеркало, и использовать диски по максимуму. Больше трёх в корпус не влезает.

Ну и полный отказ любого из трёх физических дисков не ведёт к потере данных.

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

А это откуда высосал?

Представь, что у тебя три одинаковых диска ёмкостью 2 попугая. Каждый из них ты делишь пополам, и шесть «половин» попарно объединяешь в зеркало. Получается три зеркала, ёмкость каждого — 1 попугай.

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

Ну прочитал жопой, что сразу слепой то? :)

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

Твоя точка зрения, кстати, оправдана =)

Вот какую красоту мне только что друг прислал (в отличие от меня, профессиональный админ и, так же как и ты, любитель ZFS):

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804629#25

Там автор совсем не стесняется в выражениях.

Но это всё горький опыт — кто-то наступает на эти грабли, и таких не один человек.

10 лет назад, когда я собирал домашний сервер, LVM2 поверх mdadm (кроме, разумеется, /) был вполне себе одним из рекомендованных решений. Я не являюсь профессиональным админом, но на тот момент я таки потратил опр. кол-во времени на изучение матчасти.

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

В документации можно что угодно написать. Но выглядеть это будет вот так:

# mdadm --detail /dev/md3
...
    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       1       8       20        1      active sync   /dev/sdb4
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda4              0,00     0,00 1261,00   34,00 161388,80   989,30   250,78     0,82    0,64    0,47    6,92   0,47  60,58
sdb4              0,00     0,00    6,00   34,00   768,00   989,30    87,86     0,27    6,79    3,00    7,46   3,90  15,58
Nastishka ★★★★★
()
Последнее исправление: Nastishka (всего исправлений: 1)
Ответ на: комментарий от Bass

Твоя точка зрения, кстати, оправдана =)

Скорее всего. Ибо я один раз носил диск к восстановителям, там они мне сказали. что восстанавливают из невиндовых FS только с extX.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804629

жЫрный жЫр, спасибо!

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

жЫрный жЫр, спасибо!

Но, правда, там RAID1 средствами lvm, а не mdadm.

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

три одинаковых диска ёмкостью 2 попугая. Каждый из них ты делишь пополам, и шесть «половин» попарно объединяешь в зеркало.

Это как-то согласуется с твоим mdstat?

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

Да, согласуется.

md0 — это «корень». Он без lvm, и он очень невелик (1 ГБ).

Что касается md4, то он появился позже, когда я заменял полутерабайтные диски двухтерабайтными, и лень было пересобирать всё «с нуля». Соответственно, всю геометрию я перенёс со старой тройки дисков через dd, а потом добавил md4 на оставшемся свободном месте. Ну и ещё что-то на оффтопик пошло.

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

В общем, гугл подтвердил, что я всё сделал правильно:

http://decafbad.net/2017/01/03/mismatch_cnt,-raid1,-and-a-clever-fix/

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

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

Да, согласуется.

…<тут был несвязный текст>…

Франкенштейн тут не из дисков. Это ты франкенштейн, если ты это можешь согласовать.

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

вследствие резкого выключения питания.

RAID на защищает от ошибок во время включения и выключения, тем более внезапного.

RAID - это про бесперебойную работу.

Зачем тебе RAID для подкроватного сервера, который ты выключаешь пинками?

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

Виноват, сейчас там действительно два физических диска.

Ранее описанная схема из трёх дисков была до замены 500 ГБ -> 2 ТБ.

Это называется склероз =)

Но, так или иначе, это не меняет поставленного вопроса и пути решения.

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

RAID на защищает от ошибок во время включения и выключения, тем более внезапного.

Верно. Но RAID неплохо защищает данные от внезапной смерти одного из носителей.

Бэкапы никто не отменял, разумеется.

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

Но RAID неплохо защищает данные от внезапной смерти одного из носителей.

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

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

Прекрасно.

Допустим, от LVM можно отказаться — не так уж часто он бывает нужен.

Что ты сам рекомендуешь?

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

Допустим, от LVM можно отказаться

Как родилось это допущение?

Тебе не нужен RAID, если ты не можешь обеспечить бесперебойную работу массива. Любое выключение массива - это формально смерть массива.

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

Как родилось это допущение?

См выше: Ремонт зеркала своими руками (комментарий)

Тебе не нужен RAID, если ты не можешь обеспечить бесперебойную работу массива. Любое выключение массива - это формально смерть массива.

Хорошо. Можно решить проблему покупкой и настройкой ИБП. Как можно решить эту проблему иначе (программными средствами)?

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

Как родилось это допущение?

См выше:

Там неразбираемый поток слов. Вы с этой котожабой один и тот же человек, … что понимаете друг друга, общаясь таким шифропотоком?

Можно решить проблему покупкой и настройкой ИБП.

Ого, ты смог родить дельное допущение.

Как можно решить эту проблему иначе (программными средствами)?

Может тебе еще серебряную пулю дать? RAID - не серебряная пуля, у него тоже есть недостатки, например, вампиров не берет и смертен.

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

Там неразбираемый поток слов.

И что там неразбираемого?

Вы с этой котожабой один и тот же человек, … что понимаете друг друга, общаясь таким шифропотоком?

А, понятно, анон не посоветовать, а посратьпокритиковать пришёл :)

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

Может тебе еще серебряную пулю дать? RAID - не серебряная пуля, у него тоже есть недостатки, например, вампиров не берет и смертен.

Чувак, вот у RAID есть недостатки. А вот у тебя какие достоинства? Что полезного ты привнёс в дискуссию?

Спасибо, свободен.

Bass ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.