Как mdraid повторно синхронизирует работу?

Несомненно, это легко сделало использование awk:

$ echo -e 'a\nb\nc\nd' | awk '{if (p) {print;}} /^b$/ { print; p=1;}'
b
c
d

$ echo -e 'a\nb\nc\nd' | awk '{if (p) {print;}} /^b$/ { p=1;}'
c
d

Они могут также быть сокращены как (благодаря @manatwork):

$ echo -e 'a\nb\nc\nd' | awk '/^b$/{p=1} p'
b
c
d

$ echo -e 'a\nb\nc\nd' | awk 'p; /^b$/{p=1}'
c
d

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

4
23.02.2013, 03:43
2 ответа

Правильный поступок - что-то как mdadm --add /dev/md0 /dev/sdb1. Используйте корректный массив вместо md0 и корректный раздел вместо sdb1.

Ключевой вещью является массив, работает. Его абсолютно однозначное, который данные скопировать: данные, которые в настоящее время работают. Если у Вас будут включенные битовые массивы, то пересинхронизация будет довольно быстра, поскольку она только скопирует то, что изменилось. Иначе это скопирует все.

Если Вы чрезвычайно параноики — или Вы волнуетесь, что Ваша дисковая система, возможно, потеряла записи, и битовый массив не может быть корректным — и не возражает вызывать полную копию, можно вытереть суперблок на диске, Вы собираетесь добавить использование mdadm --zero-superblock /dev/sdb1 (еще раз используйте корректный раздел).

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

Если необходимо было использовать dd подход, затем: (a) Вы волновали бы копирование суперблока, и Вы будете волновать с двумя дисками 1 с (суперблок хранит положение диска в массиве); (b) у Вас была бы непоследовательная копия, если у Вас не было остановленного массива (или возможно в режиме только для чтения) во время копии. (И затем, для фиксации a и b Вы вытерли бы суперблок и позволили бы mdraid скопировать данные, как выше).

Короче говоря, когда Вы решаете использовать mdraid (или любой другой RAID), Вы даете управление дублированием к нему. Вы почти никогда не хотите обойти его. То же с LVM: если Вы хотите переместить данные, Вы используете pvmove, и т.д. Вы не используете dd.

PS: "один диск так или иначе уехал, зеркало" не является чем-то, что необходимо принять. Существуют журналы; фигура, почему это оставило зеркало. Даже с полунедавним ядром сбойные блоки не отбрасывают, больше едет, таким образом, случайных отбрасываний диска не должно происходить. Проверьте умное состояние и т.д.

10
27.01.2020, 20:47
  • 1
    я не знал, что существует нет - принимает - убирают для - добавляют. Можно было бы сказать: Почему чему-то должно понравиться, которые существуют... :-) Таким образом, для создания корректной синхронизации с dd, нужно было бы остановить массив, скопировать объем, обнулить суперчасы и создать новый массив из этих двух объемов с - принимают - чистят и исправляют UUID впоследствии с - собираются (устройство, которое изменят UUID, но это не должно иметь значения). Прямо сейчас я не могу вообразить ситуацию, в которой это имело бы смысл. спасибо –  Hauke Laging 22.02.2013, 17:48
  • 2
    @HaukeLaging хорошо, если Вы делаете - создает, я думаю, что можно указать UUID для использования. Или используйте - обновляют позже — иногда, UUID используется. Например, в Вашем/etc/mdadm/mdadm.conf файле, Вашем initramfs, и т.д. Конечно, намного лучше для не обхождения mdraid. –  derobert 22.02.2013, 18:51
  • 3
    , нет это не приемлемо, то же как тогда, когда коллега отключает эту машину от питания, потому что он думал, что "это - другой компьютер". Так или иначе спасибо, теперь я знаю то, что я хочу. –  dmnc 22.02.2013, 23:53
  • 4
    я нашел, что диск плох, несколько отказов, находится в журнале и повторно синхронизирует, теперь уничтожил его определенно. –  dmnc 23.02.2013, 09:00

При конфигурировании RAID-1 для использования битового массива (см. страницу справочника), затем --re-add намного быстрее, потому что просто области, записанные после повреждения соединения, должны быть записаны.

Всегда (даже без битового массива полная синхронизация) Вы можете более легко, чем с dd, настраивают синхронизирующую скорость через/sys/block/md0/md/sync_speed_*

Синхронизация с dd потребовала бы, чтобы Вы сделали активные диски только для чтения в течение того времени, также. Таким образом, действительно необходимо позволить, делают md драйвер заданием. И если Вы еще не сделали: Добавьте битовый массив.

3
27.01.2020, 20:47
  • 1
    , это - положительная сторона. Так или иначе я все еще не знаю, перезапишет ли пересинхронизация "старый" диск с "новыми" данными или если я могу освободить свои новые данные путем перезаписи их от "старого" диска, я Вы понимаете меня... –  dmnc 22.02.2013, 15:16
  • 2
    я понимаю Вас, но код RAID не абсолютно глуп. –  Hauke Laging 22.02.2013, 15:18

Теги

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