При создании программного устройства raid для Linux в качестве устройства raid10 я не понимаю, почему его нужно инициализировать. Тот же вопрос относится к raid1 или raid0, правда.
В конечном счете, большинство людей ставят какую-то файловую систему поверх нее, и эта файловая система не должна принимать какое-либо состояние данных на диске. Каждая запись влияет на оба диска в настройках raid10 или raid1, где записано N зеркал. Не должно быть никаких причин для первоначальной инициализации raid10, поскольку это произойдет со временем.
Я могу понять, почему для установки raid5 / 6, где есть требование четности, но даже тогда кажется, что это можно сделать лениво.
Просто так люди чувствуют себя лучше?
linux
software-raid
raid10
Майкл Графф
источник
источник
Ответы:
Начальная синхронизация необходима, потому что любые различия между зеркалами будут отображаться как ошибки во время периодической проверки.
И вы должны делать периодические проверки.
источник
Raid 1, будучи зеркалом, зависит от того, являются ли все диски в зеркале точными копиями друг друга. Возьмите ваш случайный жесткий диск и другой случайный жесткий диск, и у вас там могут быть другие данные, что нарушает это предположение. Вот почему инициализация необходима. Он просто копирует содержимое первого диска другим. Обратите внимание, что в некоторых случаях вы можете обойтись без инициализации дисков - обычно на новых устройствах уже есть нули, поэтому вы можете просто проигнорировать это.
mdadm
Вариант--assume-clean
делает это, но предупреждает вас:Если вы этого не сделаете, между дисками и диском будет несоответствие, и вы не будете знать, что диск прочитает. Вы должны быть в полной безопасности с файловой системой (но обратите внимание на ниже), потому что, скорее всего, вы напишите, прежде чем что-то читать с этого устройства, и тогда все ясно.
Обратите внимание, что по крайней мере Linux
mdadm
будет инициализировать массив в фоновом режиме. Вы можете счастливо создать FS поверх него в первую секунду. Производительность пострадает до завершения инициализации, но это все.Но:
а) При выполнении
mkfs
некоторых утилит проверьте, есть ли уже что-то на этом диске. Хотя это касается только нескольких известных областей диска, оно читает перед тем, как что-то написать, тем самым подвергая вас опасности.б) Если вы делаете периодическую синхронизацию вашего массива, устройство RAID ничего не знает о вашей FS. Он просто читает каждый блок с каждого устройства и сравнивает их. И если вы не используете FS при копировании при записи (например, ZFS или BTRFS) и никогда не заполняете свою FS, вполне вероятно, что блок останется неинициализированным с точки зрения FS в течение многих лет.
Почему повторная синхронизация с устройствами RAID1?
По той же причине вы повторно синхронизируете с устройствами RAID5 или любым другим уровнем (кроме RAID0). Он считывает все данные и сравнивает / проверяет контрольные суммы RAID (в RAID 5 или 6). Если бит был каким-либо образом перевернут (потому что память HD стала самопроизвольно перевернутой, потому что мобильные телефоны вас и ваших 5 соседей просто случайно вмешались в эту конкретную область тарелки, что угодно), это обнаружит несогласованность, но не сможет помочь тебе. Если, OTOH, один из жестких дисков просто сообщит «Я не могу прочитать этот блок», что более вероятно при неисправном диске, вы только что обнаружили сбой раньше и сократили время работы в ухудшенном режиме (считая от сбой диска, а не с того момента, когда вы заметили это). Рейд не поможет вам, если один диск выйдет из строя, а через месяц другой выйдет из строя, если вы не
RAID10
Теперь для RAID10 все вышеперечисленное выполняется. В конце концов, RAID10 - это просто умный способ сказать «я помещаю два моих устройства RAID1 в пару RAID0».
Предостережение:
Это все неопределенное поведение. Почему я проверил на Linux, используя
mdadm
другие программные реализации RAID, может вести себя по-другому. Другие версии ядра Linux и / илиmdadm
инструментов, чем я использую, также могут вести себя по-другому.источник
If you don't do it, there is a discrepancy between the drives and it's read, the RAID device will report failure of a drive
. Я считаю это утверждение неверным. По крайней мере, приведите пример сообщения об ошибке, чтобы можно было обратиться к источнику, чтобы проверить, при каких обстоятельствах оно возникает.While this only touches a few well-known regions of drive, it reads before you write anything, thus putting you in danger.
В чем опасность? Я понимаю, что чтение может привести к чему угодно, но почему это приведет к некоторой опасности для пользователя, если (а) считываемая информация нигде не используется и (б) запись должна произойти?urandom
инициализированном устройстве с linux mdadm показывает, что первые 80 КБ остаются разными, как и последние 48 КБ. Последнее, вероятно, связано с округлением размера RAID до размера блока. Я не тестировал устройства разных размеров, но размер 80 + 48 - это как раз разница в размерах между устройством RAID и базовым блочным устройством.Помните, что RAID 1 является зеркалом, а RAID 10 - полосой зеркал.
Вопрос в том, на каком диске в каждом зеркале действительны данные? В недавно созданном массиве это не может быть известно, поскольку диски могут иметь разные данные.
Помните также, что RAID работает на очень низком уровне; он ничего не знает о файловых системах или каких-либо данных, которые могут быть сохранены на диске. Может даже не быть используемой файловой системы.
Таким образом, инициализация в этих массивах состоит из данных с одного диска в каждом зеркале, копируемых как есть на другой диск.
Это также означает, что массив безопасен для использования с момента создания и может быть инициализирован в фоновом режиме; большинство RAID-контроллеров (и Linux mdraid) имеют опцию для этого или делают это автоматически.
источник
Проще говоря, потому что два новых диска с самого начала не должны быть зеркальными копиями друг друга.
Их нужно превратить в идеальные копии друг друга.
Кроме того, инициализация включает настройку суперблока метаданных с информацией о конфигурации массива.
Файл / proc / mdstat должен сообщать вам, что устройство было запущено, что зеркало восстанавливается, и ETA завершения реконструкции. Реконструкция выполняется с использованием пропускной способности простоя ввода / вывода. Таким образом, ваша система по-прежнему должна реагировать, хотя светодиодные индикаторы диска также будут проявлять большую активность.
Процесс восстановления прозрачен, поэтому вы можете использовать устройство, даже если зеркало в данный момент находится на реконструкции.
источник