Назад | Перейти на главную страницу

Raid1 вопрос

Допустим, у меня есть программный массив raid1 из двух разделов. Я достаю один жесткий диск из компьютера, вставляю его в другой компьютер и копирую некоторые данные на зеркальный раздел.

Что произойдет, если я верну жесткий диск на прежнее место? Будут ли новые данные отображаться на другом диске? Если да, то как контроллер проверяет / замечает наличие новых данных на диске? Конечно, он не может проверять весь раздел при каждой загрузке.

Кроме того, что произойдет, если я удалю файл в том же сценарии, что и выше? Будет ли он удален с другого диска или скопирован?

Это на машине Ubuntu, и, вынимая диск, я имею в виду, что компьютер полностью выключен при этом и снова включается только тогда, когда диск возвращается на свое место.

Если рейд-контроллер не распознает изменение, потому что при этом отключено питание, есть ли способ дать ему указание восстановить массив? Например, предположим, что raid создан из / dev / sda1 и / dev / sdb1, я выключаю компьютер, вытаскиваю диск sdb, копирую на него данные, кладу обратно, и теперь я хочу проинструктировать контроллер реконструируйте массив, используя / dev / sdb1 «как мастер».

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

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

Два ответа о том, что он помечен как неудачный и перестраивается, верны, и, надеюсь, именно это и произойдет. Это лучший сценарий.

Другая возможность заключается в том, что программное обеспечение этого не замечает, и тогда оно все равно будет думать, что диски синхронизированы. (Например, это может произойти, если вы проделали этот трюк с выключенным питанием). Конечным результатом, скорее всего, будет повреждение, и единственным исправлением будет форматирование и восстановление из резервной копии.

Помните, что RAID работает на уровне диска, он ничего не знает о файловой системе наверху. Просто куча секторов. Когда файловая система запрашивает блок 10, уровень RAID знает, что блок 10 хранится в блоке 10 как disk1, так и disk2. Каким-то образом он выбирает один диск или другой и читает блок 10. За исключением того, что вы изменили диски за его спиной, блок 10 на disk1 и disk2 отличается. Ой. Вы можете рассчитывать на сочетание disk1 и disk2 для каждого блока, включая блоки, используемые для хранения метаданных файловой системы.

Устранение беспорядка

Я предлагаю вам лучше всего восстановиться после этого, учитывая, что форматирование и восстановление из резервной копии не подходят:

(a) Немедленно создайте образы обоих дисков. Резервные копии важны. При желании вы можете работать только с копиями.

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

(c) Если массив был в режиме чтения / записи, выберите диск и удалите его из массива. Восстановите на новый диск.

(d) Если вам совершенно все равно, какой именно диск, просто (конечно, заменив X номером вашего массива): это вызывает повторную синхронизацию.

echo repair > /sys/block/mdX/md/sync_action 

(e) Выполните команду fsck для восстановленного массива.

(f) Сделайте все возможное, чтобы проверить свои данные. Например, запустите debsums, чтобы проверить целостность ОС, предоставив все необходимые файлы пакетов для вещей, которые не имеют сумм MD5.

Обратите внимание, что диск должен быть пустым или, по крайней мере, с него должна быть удалена вся информация RAID, иначе восстановление не будет работать правильно.

Это вопрос Linux или Windows? Какая у вас конкретная реализация?

Обычно удаленный диск выходит из строя, и при повторном добавлении его придется «восстановить». Это, в свою очередь, обычно означает, что отказавший диск повторно инициализируется со всеми данными с рабочего диска. Таким образом, по сути, все изменения, внесенные на удаленный диск, вероятно, будут потеряны в такой ситуации.

В общем, когда выдергиваете диск из массива RAID-1 пока массив активен, то массив считается рассинхронизированным.

Если вы снова вставите удаленный диск, он пойдет примерно так же, как если бы вы вставили совершенно новый диск - содержимое активный диск будет копироваться поблочно, пока новый диск не станет точной копией, а затем массив вернется в «нормальное» рабочее состояние как живой массив RAID-1.

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

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

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

Если у вас есть диск a и b в рейде mdadm 1 и вы

1) выключите сервер A 2) поместите диск B на сервер B 3) с помощью mdadm запишите на диск B на сервере B 4) выключите B 5) загрузите сервер A с помощью A и B.

Скорее всего, он заметит, что контрольные суммы A и B различаются, и массив начнет с B, и A будет считаться ошибочным, поскольку контрольная сумма B будет более новой.

Затем вы должны добавить A в массив, и B будет скопирован поверх A.

Я не знаю, зачем тебе это нужно.