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

mdadm накосячил (( можно исправить?

 ,


0

1

Centos 7

Создан raid10 mdadm из 4 дисков

mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf

добавлен к vg, vgextend vg_FS1_DATA /dev/md10

Что делал. Убрал sdc диск из /dev/md10 физически из сервера, воткнул обратно. Убрал sde диск /dev/md10 физически из сервера, воткнул обратно. mdadm -a /dev/md10 /dev/sdf после обнаружения сбоя.

Теперь знаю, что нужно так:

1 mdadm --manage /dev/md10 --fail /dev/sdc
2 mdadm --manage /dev/md10 --remove /dev/sdc
3 Удаляем физически диск
4 Вставляем
5 Добавляем обратно mdadm -a /dev/md10 /dev/sdc

После подключения диска пропал sde, появился sdg.

Можно восстановить raid массив? Сейчас raid в таком состоянии:

mdadm --detail /dev/md10
mdadm --detail /dev/md10
/dev/md10:
        Version : 1.2
  Creation Time : Sat Apr 23 14:13:32 2016
     Raid Level : raid10
     Array Size : 1953262592 (1862.78 GiB 2000.14 GB)
  Used Dev Size : 976631296 (931.39 GiB 1000.07 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Jun  8 12:30:02 2016
          State : clean, degraded
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1

         Layout : near=2
     Chunk Size : 512K

           Name : fs1.duschy.local:10  (local to host fs1.duschy.local)
           UUID : 46b154b2:54a2cb4a:e64b8232:3d818945
         Events : 45292

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       48        1      active sync set-B   /dev/sdd
       2       8       64        2      active sync set-A
       3       8       80        3      spare rebuilding   /dev/sdf

       0       8       32        -      faulty   /dev/sdc


cat /proc/mdstat
md10 : active raid10 sdf[3] sde[2] sdd[1] sdc[0](F)
      1953262592 blocks super 1.2 512K chunks 2 near-copies [4/2] [_UU_]
        resync=DELAYED
      bitmap: 9/15 pages [36KB], 65536KB chunk


ls -l /dev/sd*
[cut] brw-rw---- 1 root disk 8,  0 Jun  8 01:30 /dev/sda
brw-rw---- 1 root disk 8,  1 Jun  8 01:30 /dev/sda1
brw-rw---- 1 root disk 8,  2 Jun  8 01:30 /dev/sda2
brw-rw---- 1 root disk 8,  3 Jun  8 01:30 /dev/sda3
brw-rw---- 1 root disk 8,  4 Jun  8 01:30 /dev/sda4
brw-rw---- 1 root disk 8, 16 Jun  8 01:30 /dev/sdb
brw-rw---- 1 root disk 8, 17 Jun  8 01:30 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Jun  8 01:30 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Jun  8 01:30 /dev/sdb3
brw-rw---- 1 root disk 8, 20 Jun  8 01:30 /dev/sdb4
brw-rw---- 1 root disk 8, 32 May 26 01:30 /dev/sdc
brw-rw---- 1 root disk 8, 48 Jun  8 01:30 /dev/sdd
brw-rw---- 1 root disk 8, 80 Jun  8 01:30 /dev/sdf
brw-rw---- 1 root disk 8, 96 Jun  8 01:30 /dev/sdg

sda sdb это другой raid, 1 с ним всё ок.

Во-первых, накосячил все-таки не mdadm, справедливости ради :) Во-вторых, массив в рабочем состоянии, хоть и degraded. Что требуется исправить-то?

В массиве сейчас не хватает одного диска, и один диск в процессе ребилда. Добавь диск вместо sdc при помощи mdadm -a, а дальше массив должен сам починиться.

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

Накосячил я.

В массиве нет 2-х дисков.

sdc и sde

Rebuild не идёт. resync=DELAYED

2 active sync set-A это диск sde, который теперь sdg

Как полностью восстановить массив?

Правильно я понимаю, что нужно добавить к каждому spare нужно добавить по диску?

Как это сделать?

Нужно чтобы так было?

/dev/sdd set-B /dev/sdс set-B

/dev/sdf set-A /dev/sdg set-A

Как заменить диск sde в массиве на диск sdg?

Диск sdc удалил, добавил. Не получается.

mdadm --manage /dev/md10 --fail /dev/sdc mdadm --manage /dev/md10 --remove /dev/sdc mdadm -a /dev/md10 /dev/sdc

mdadm: /dev/sdc not large enough to join array

Нужно отформатировать sdc? Чтобы таблицы разделов совпали с sdd?

sfdisk -d /dev/sda | sfdisk /dev/sdb

где источник, где назначение? Чтобы не перепутать.

Массив пишет, что в нормальном состоянии, но часть файлов нечитаемые стали.

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

Смотри, я не понял. Вот ты создавал массив:

mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf

Потом убрал sdc и sde (то, что ты их потом добавил, для запущенного массива ни холодно, ни жарко). У тебя остался массив на дисках sdd и sdf (фактически, raid0). А дальше я не понимаю. 1. Зачем ты сделал mdadm -a /dev/md0 /dev/sdf? sdf не был в массиве? Тогда где я ошибся выше? 2. Что произошло, когда ты добавил sdf?

Проблема в том, что по выводу mdadm --detail кажется, что sdf не был в массиве, так как на него шел ребилд.

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

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

В общем, мой рецепт такой (не забудь сначала сделать бэкапы, очень желательно со всех дисков при помощи dd). Отмонтируй /dev/md0, тормози массив, собирай заново при помощи mdadm --assemble, сначала только на дисках sdd и sde (sdg), затем добавляй sdf и sdc (если получится). После синхронизации дисков делай fsck /dev/md0, и только после этого можно пользоваться массивом дальше.

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

Отдельно про бэкапы: сделай обязательно, хотя бы при помощи dd | gzip или как угодно, потому что 1) я мог ошибиться с пониманием того, что произошло, и у тебя после этих действий развалится вообще всё; 2) я (вообще говоря) для тебя noname, и могу (теоретически) вообще не разбираться в вопросе, раздавая рандомные советы разной степени разумности. Мне-то от этого ничего не убудет, а вот ты данные на дисках можешь потерять окончательно, даже то что еще оставалось; 3) наконец, можно случайно где-нибудь опечататься, и всё.

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

sdf не был в массиве.

До добавления sdf было так

mdadm --query --detail /dev/md10 /dev/md10: Version : 1.2 Creation Time : Sat Apr 23 14:13:32 2016 Raid Level : raid10 Array Size : 1953262592 (1862.78 GiB 2000.14 GB) Used Dev Size : 976631296 (931.39 GiB 1000.07 GB) Raid Devices : 4 Total Devices : 3 Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Wed Jun 8 11:31:06 2016 State : clean, degraded Active Devices : 2 Working Devices : 2 Failed Devices : 1 Spare Devices : 0

Layout : near=2 Chunk Size : 512K

Name : fs1.duschy.local:10 (local to host fs1.duschy.local) UUID : 46b154b2:54a2cb4a:e64b8232:3d818945 Events : 4534

Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 48 1 active sync set-B /dev/sdd 2 8 64 2 active sync set-A 6 0 0 6 removed

0 8 32 - faulty /dev/sdc

Есть резервная копия данных с дисков. Сетевых шар. Для полной копии dd нет места.

Последовательность, как можно попробовать, понял, спасибо.

Еще проблема. Я не могу остановить массив. Т.к. он pv часть lvg. Если удаляю, то большая вероятность, что lv поломается.

Перед тем как его остановить нужно удалить pv из lvg. Чтобы удалить, нужно перенести все ехтенты pv на другой диск. На других дисках нет столько места.

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

State : clean, degraded Active Devices : 2 Working Devices : 2 Failed Devices : 1 Spare Devices : 0

Вот в этом месте надо было быть очень осторожным. Как так вообще получилось что из 4х дисков осталось только 2, и ни одного spare не было? Судя по всему, до фейла sdc массив уже был «без одной», и повезло, что сфейлился диск из целой половины raid10. Естественно, после вытаскивания рабочего диска массив развалился совсем, без 75% дисков даже raid10 не работает.

Я не могу остановить массив. Т.к. он pv часть lvg

Значит, надо отмонтировать все LVM разделы, останавливать их все (или как там это называется), и затем чинить массив. После починки массива прочекать все ФС, которые могли располагаться на этом массиве. Но от поврежденных файлов это не факт что спасет, если часть данных писалась на раздел во время вытаскивания рабочего диска.

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

Помогла перезагрузка.

После перезагрузки стало 3 диска рабочих.

Посмотрел статус каждого диска, - 3 рабочих. Один в системе не определяется.

Причём это диск не тот, который я переставлял.

Удалил массив.

Пересобрал заново. create

Сейчас работает на 3 дисках. Сбойный меняем по гарантии.

Спасибо. Тему можно закрывать.

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