mdadm: Возобновить начальную синхронизацию

У меня есть новый md RAID10, который я создал ( на Synology DS416slim, кроме точки ), который находился в процессе начальной синхронизации:

root@ds416slim:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
      1943881088 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
      [===>.................]  resync = 19.8% (386172736/1943881088) finish=2613.6min speed=9932K/sec

md1 : active raid1 sdc2[1] sdb2[2] sda2[0] sdd2[3]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sdc1[1] sdb1[2] sda1[0] sdd1[3]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>

Заметив, что это действительно ужасная скорость синхронизации (она должна была быть ближе к 100M, чем к 10M), я решил приостановить синхронизацию, используя echo idle> / sys / block / md2 / md / sync_action

После тестов (где hdparm показал, что / dev / sdd имеет ужасную производительность), я попытался возобновить его с помощью echo resync> / sys / block / md2 / md / sync_action . Однако синхронизация не возобновлялась и оставалась в состоянии ожидания:

root@ds416slim:~# echo resync > /sys/block/md2/md/sync_action
root@ds416slim:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid10 sdd3[3] sdc3[2] sdb3[1] sda3[0]
      1943881088 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]

md1 : active raid1 sdc2[1] sdb2[2] sda2[0] sdd2[3]
      2097088 blocks [4/4] [UUUU]

md0 : active raid1 sdc1[1] sdb1[2] sda1[0] sdd1[3]
      2490176 blocks [4/4] [UUUU]

unused devices: <none>
root@ds416slim:~# cat  /sys/block/md2/md/sync_action
idle

Я проверил возможные варианты возобновления синхронизации, как параметры, указанные в разделе sysfs документации MD на kernel.org дает список, в котором нет опции возобновить . Чтение всех перечисленных опций, похоже, подразумевает повторную синхронизацию как правильное действие, но при этом не возобновляется начальная синхронизация, как показано выше.

Мои вопросы:

  • Повлияет ли это на рейд и как ?
  • Как возобновить первоначальную синхронизацию?
  • Можно ли полностью проигнорировать это и начать использовать рейд?
2
задан 18 March 2019 в 16:21
1 ответ

Вам необходимо используйте действие repair , то есть: echo repair> / sys / block / md2 / md / sync_action

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

Из страницы руководства md:

md / sync_action

Это можно использовать для мониторинга и управления ресинхронизация / восстановление MD. В частности, написав здесь "чек" заставит массив прочитать все блоки данных и проверить, что они согласованный (например, четность правильная, или все зеркальные реплики являются одна и та же). Обнаруженные неточности НЕ исправляются. Кол-во проблем найденное будет храниться в md / mismatch_count. В качестве альтернативы "ремонт" может будет написано, что вызовет выполнение той же проверки, но любой ошибки будут исправлены. Наконец, можно написать "idle", чтобы остановить процесс проверки / восстановления.

Другими словами, повторная синхронизация игнорируется, потому что это не допустимое действие, а проверка , восстановление ] и простаивают являются.

0
ответ дан 3 December 2019 в 13:45

Теги

Похожие вопросы