Я могу создать программное обеспечение RAID 1 с одним устройством

Как оказалось, экспериментальное b43 драйвер конфликтует с ним. Я должен был разгрузить драйвер, поместить в черный список его, затем скомпилировать rt2x00 драйвер от compat-беспроводной-связи, затем установить его, и там Вы идете, он работал. Не идеальный для переключения между этими двумя, но это работает, и это - FAST.

20
30.01.2018, 02:33
3 ответа

Простой ответ на вопрос в заголовке - "Да". Но то, что Вы действительно хотите сделать, является следующим шагом, который зеркально отражал существующие данные.

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

Во-первых, инициализировать /dev/sdb1 как новое /dev/md0 с недостающим диском и инициализируют файловую систему (я принимаю ext3, но выбор является Вашим),

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing
mkfs -text3 /dev/md0

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

Скопируйте все содержание файловой системы на /dev/sda1 кому: /dev/md0. Например:

mount /dev/sda1 /mnt/a       # only do this if /dev/sda1 isn't mounted as root
mount /dev/md0 /mnt/b
cd /mnt/a                    # or "cd /" if it's the root filesystem
cp -dpRxv . /mnt/b

Править /etc/fstab или иначе удостоверьтесь это на следующей начальной загрузке, /dev/md0 смонтирован вместо /dev/sda1. Ваша система, вероятно, установлена загрузиться от /dev/sda1 и параметры начальной загрузки, вероятно, указывают это как корневое устройство, поэтому когда перезагрузка Вас должна вручную изменить это так, чтобы корень был /dev/md0 (принятие /dev/sda1 был корень). После перезагрузки проверьте это/dev/md0 теперь смонтирован (df) и это это работает как ухудшенное зеркало (cat /proc/mdstat). Добавить /dev/sda1 к массиву:

mdadm /dev/md0 --add /dev/sda1

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

Необходимо будет повторно создать конфигурацию начальной загрузки для использования /dev/md0 как корень (если /dev/sda1 был корень), и вероятно должен повторно создать mdadm.conf удостовериться /dev/md0 всегда запускается.

27
27.01.2020, 19:44
  • 1
    Усовершенствуйте точно, что мне нужен :D –  whoami 06.02.2013, 15:21
  • 2
    , не используют cp для копирования файловых систем Вы пропустите некоторые вещи как жесткие ссылки, расширенные атрибуты... Использовать tar или rsync с надлежащими опциями. При начальной загрузке Живого CD остерегайтесь, тот uid-пользователь, отображающийся, отличаются (см. - опции числового владельца tar/rsync). См. также clone2fs для клонирования extx файловые системы. –  Stéphane Chazelas 06.02.2013, 15:42
  • 3
    Опции к cp ссылки сохранения дескриптора (-d), режим, владение и метки времени (-p), выполнение его рекурсивно (-R) и пребывание в одной файловой системе (-x), но я думаю, что можно быть правы относительно жестких ссылок и расширенных атрибутов. –  StarNamer 07.02.2013, 00:46

Несомненно, можно создать его указывающий, что второй диск в настоящее время missing:

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 missing /dev/sda1
5
27.01.2020, 19:44
  • 1
    Сладкое спасибо, я, вероятно - OCD здесь, но являюсь там причиной, почему Вы добавили пропавших без вести, прежде чем/dev/sda1, действительно ли порядок будет важен? –  whoami 06.02.2013, 13:14
  • 2
    я думаю порядок, не имеет значения. –  eppesuig 06.02.2013, 13:31
  • 3
    Осторожный с этим! с - metadata=1.2 (новое значение по умолчанию), метаданные RAID (1 МБ) будут вставлены в запуске (переопределяющий содержание там). И запуск массива MD запустится, 1 МБ в/dev/sda1 (/dev/md0 будет на 1 МБ короче, чем/dev/sda1). С metadata=0.9 (старое значение по умолчанию), метаданные (64 КБ) будут вставлены при переопределении конца, что там. Так использование - metadata=0.9 и изменяют размер FS сначала. Независимо от того, что Вы делаете, возьмите резервное копирование заранее. –  Stéphane Chazelas 06.02.2013, 13:31

Можно сделать это. Необходимо быть немного осторожными, но это не опасный ¹, если Вы очень боитесь вводить что-нибудь с опечаткой, и он не оставляет глюков в установке.

Я настоятельно рекомендую не выполнение любых из манипуляций в живой системе. Это возможно в некоторых случаях, но требует дополнительного ухода. Начальная загрузка от liveCD/liveUSB такой как Разделенный или SystemRescueCD.

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

Необходимо удостовериться, что последние 128 КБ от блочного устройства не использованы, для создания места для суперблока. Таким образом, необходимо будет уменьшить файловую систему на /dev/sda1. Если это - ext2/ext3/ext4 файловая система, получите текущий размер файловой системы с tune2fs /dev/sda1, затем выполненный resize2fs /dev/sda1 NNN где NNN является тем размером минус 128 КБ. Можно сделать это с Разделенным вместо этого. Если необходимо уменьшить extN файловую систему, необходимо будет размонтировать ее сначала; btrfs файловая система может быть уменьшена живая.

После того как Вы удостоверились, что последние 128 КБ блочного устройства свободны, звонить mdadm --create создать объем RAID-1. Это не касается никакой части объема кроме суперблока. Первоначально, объем будет иметь единственный компонент: все другие установлены, как отказавший. Необходимо передать --level=1 (или эквивалентно -n 1) (этот подход только работает на RAID-1), и --metadata=0.9 или --metadata=1.0 (формат 1.2 суперблока по умолчанию помещает суперблок около начала устройства, которое может перезаписать данные). Аргумент --raid-devices (-n) количество компонентов (включенные недостающие) в объеме RAID.

mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda1 missing

Можно теперь активировать массив и добавить другие компоненты.

mdadm --add /dev/md0 /dev/sdb1

Примечание по загрузчикам: Grub2 понимает Linux RAID-1 и может загрузиться от него. Загрузчики, такие как Grub1, которые не понимают чтение RAID прозрачно от зеркальных объемов, но Вашей системы, не загрузятся, если диск загрузчик будет читать из сбоев. Если объем RAID находится на разделе, несомненно, установят загрузочный сектор Личинки на обоих дисках.

¹ убедиться иметь резервные копии. “Не опасный” означает, что “Вам, вероятно, не будут нужны они”, не “ставят Ваши данные”.

Повторно отправленный и немного адаптированный от того, Как настроить зеркализацию дисков (RAID-1)

3
27.01.2020, 19:44

Теги

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