Как проверить целостность mdadm RAID5 после сбоя питания/произвольной перезагрузки

La IP que proporciona un servidor DHCP no se vuelve inválida si el servidor DHCP deja de estar disponible. Entonces, a menos que haya más en la historia que no haya agregado a su pregunta, esto no debería ser demasiado difícil.

  • Todos los dispositivos solicitan direcciones IP del servidor #1 y las obtienen con una concesión válida (, digamos 1 hora ).
  • Apagar el servidor DHCP #1. Todos los dispositivos permanecen en el grupo #1.
  • Después de que el 50 % de la concesión haya expirado (30 minutos en este ejemplo ), el dispositivo intentará renovar la concesión. Dado que el servidor está inactivo, la renovación fallará, pero el dispositivo continuará usando su dirección IP de grupo 1 válida.
  • Después de que haya expirado el 87,5 % de la concesión (quedan 7,5 minutos de concesión ), el cliente realizará un DHCPDISCOVER y aceptará nuevas concesiones. En este punto, debería obtener una dirección válida del servidor DHCP #2 y obtener una dirección IP en el grupo 2.
  • Después de que haya expirado el período de arrendamiento, todos sus clientes deben estar en pool2.
1
20.07.2019, 23:05
1 ответ

(После завершения текущей перестройки )вы можете запустить проверку:

mdadm --wait /dev/mdX # wait for rebuild to finish
mdadm --action=check /dev/mdX
# or if mdadm is too old:
echo check > /sys/block/mdX/md/sync_action

, а затем смотретьmismatch_cnt:

watch cat /sys/block/mdX/md/mismatch_cnt

пока остается 0, четность в порядке.

См. также man md, SCRUBBING AND MISMATCHES.

   A  count  of  mismatches is recorded in the sysfs file md/mismatch_cnt.
   This is set to zero when a scrub starts and is incremented  whenever  a
   sector  is  found  that is a mismatch.  md normally works in units much
   larger than a single sector and when it finds a mismatch, it  does  not
   determine exactly how many actual sectors were affected but simply adds
   the number of sectors in the IO unit that was used.  So a value of  128
   could  simply  mean  that  a  single  64KB  check found an error (128 x
   512bytes = 64KB).

Этот процесс займет столько же времени, сколько и само перестроение... поскольку он в основном делает то же самое, что и перестроение. Чтобы узнать о прогрессе, обратитесь к /proc/mdstat.

Также можно протестировать только конкретный регион — если вы хотите проверить только отметку 75% — но это сложнее, так как (я думаю, что )в mdadmнет командной опции для этого. Вы можете установить md/sync_min, md/sync_max, чтобы определить диапазон (диапазон по умолчанию 0-max, покрывающий все устройство ).

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

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

1
27.01.2020, 23:41

Теги

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