RAID-1 и обычное удаление диска (с использованием RAID-1 в качестве меры резервного копирования)

1320
Vi.

Хорошая идея - использовать mdadm RAID-1 из двух разделов (один на внутреннем жестком диске ноутбука, другой на внешнем жестком диске).

Я хочу, чтобы система работала как RAID-1, если присутствуют оба диска, работает как обычный том (деградировать RAID-1), если внешний жесткий диск отключен, и быстро выполнить повторную синхронизацию при повторном подключении внешнего жесткого диска.

Вопросы:

  1. Это хорошая идея?
  2. Для этой задачи будет достаточно растрового изображения с записью или мне нужно что-то еще?
  3. Должен ли я рассмотреть возможность сделать это на уровне файловой системы (3б. Если да, то как?).

Основные требования:

  1. Быстрая повторная синхронизация при повторном добавлении внешнего диска (при условии, что я не изменил этот раздел).
  2. Более или менее согласованные данные на удаленном диске, если я удалю их не во время операции записи / повторной синхронизации.

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

2
помните, что RAID ≠ резервное копирование. squircle 14 лет назад 2
@thepurplepixel Это нечто среднее между RAID и резервным копированием. Vi. 14 лет назад 0
Только что закончил ждать «Состояние восстановления: X% завершено», отключил диск, снова подключил его, выдает «mdadm / dev / md0 --add / dev / sdb5», и он снова равен 0% и полностью восстанавливается. Что такое "--bitmap internal" тогда? Почему это восстановление с нуля? Vi. 14 лет назад 0
@Vi попробовал еще раз, похоже, что умное восстановление с использованием растровых работ ... Vi. 14 лет назад 0
@Vi Как RAID 1 "где-то посередине"? Dave M 14 лет назад 1
@DaveM Означает, что когда подключен внешний жесткий диск, это RAID-1 и служит защитой от отказа внутреннего или внешнего жесткого диска. Но когда внешний жесткий диск отключен, он служит частичной (немного устаревшей) защитой как от внутреннего сбоя жесткого диска, так и от ошибочного удаления, поэтому это как резервная копия. Если при отключении внешнего диска некоторые данные на томе повреждены, я могу использовать автономную часть RAID-1 в качестве резервной копии. Vi. 14 лет назад 0

3 ответа на вопрос

1
David Spillett

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

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

Если вы выполняете RAID-настройку всей своей системы таким образом, то снижение производительности записи с намерением записи также может быть весьма значительным (см. Сообщения типа http://blog.ganneff.de/blog/2008/01/30/write-intent-bitmaps. -considere.html ), хотя, если вы используете только файловые системы RAID, которые не видят большой активности записи, это может вас не беспокоить.

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

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

«Если вы таким образом используете RAIDIN для всей своей системы» -> Нет, это всего лишь один том, в основном с пустыми git-репозиториями и данными, которые я не хочу потерять. Это не корневой раздел. «то есть потенциально очень испорченный» -> Я привык, что «--rebuild-tree» спасает от даже умеренного повреждения (например, возобновление гибернации после внешнего монтирования с воспроизведением журнала). Должен ли я ожидать потери в основном новых данных (которые синхронизировались в тот момент). «у вас может быть по крайней мере одна резервная копия в автономном режиме» -> Может быть, это будут обычные редкие архивы DVD, как я раньше создавал. Vi. 14 лет назад 0
0
Vi.

Похоже, идея массива RAID-1 на основе external_HDD работает.

Массив начинает ухудшаться и отслеживает изменения, используя растровое изображение с намерением записи.

Когда я подключаю свой внешний жесткий диск, мой udevскрипт обнаруживает, что один из разделов подходит моему массиву, и добавляет его. Он синхронизируется (мгновенно, если не было никаких изменений), а затем действует как ускорение доступа для чтения.

Когда я отсоединяю свой внешний жесткий диск (включая внезапное удаление), другой udevсценарий регистрирует, что диск удален, и массив снова становится поврежденным.

Однако наблюдается заметное снижение производительности записи, но оно приемлемо для этого использования.

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

0
Raynet

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

Но если вы используете mdadm, я могу предположить, что вы используете какой-то вариант Linux и рекомендовал бы вместо этого использовать rsync. Это будет быстро, так как будут скопированы только измененные файлы, и это также позволит вам иметь скрипт, который создает папку с текущей датой на внешнем жестком диске, а затем создает полную резервную копию вашего внутреннего жесткого диска под ним, но жестко связывает файлы с предыдущая резервная копия, таким образом, используя пространство только для новых данных. Таким образом, вы можете легко восстановить файл, который мог быть удален на внутреннем жестком диске.

Можно ли запустить rsync в каком-либо непрерывном режиме, чтобы отслеживать изменения и обновлять резервную копию? (Я также думал о некоторой файловой системе FUSE, которая запомнит изменения и распространит их на копию.) Будет ли ваш вариант rsync обрабатывать восстановление (без полного стирания и перестройки) после удаления диска в середине синхронизации? И я думаю, что чтение со второго диска и ускорить некоторые вещи (рабочая копия на внутреннем диске, репозиторий git читается с внешнего диска) в некоторых случаях. Vi. 14 лет назад 0
Существует приложение, которое отслеживает любые изменения на исходном диске, а затем немедленно rsyncs их на целевой диск. Вы можете удалить диск во время работы rsync, это просто приведет к частичному копированию текущего скопированного файла, повторный запуск rsync просто продолжит с того места, на котором он остановился. Rsync не даст вам никакой скорости чтения, но если вы не используете eSata для внешнего диска, скорость чтения будет весьма незначительной, а скорость записи будет ограничена более медленными дисками. Raynet 14 лет назад 0

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