Автор Тема: [РЕШЕНО] Пересборка RAID 1 без потери данных...  (Прочитано 15614 раз)

Оффлайн San

  • Участник
  • *
  • Сообщений: 745
Подскажите пожалуйста, как правильно пересобрать RAID 1 из "готовых" дисков с информацией?

Поизучал интернет и форум, в основном ситуция по выходу из строя 1-го диска или добавления RAID 1 в имеющююся ситему.

Мне нужно так. Сейчас RAID 1 из двух дисков стоит в Одном компьютере, на нем большая папка UPLOAD. Нужно перенести этот RAID 1 в Другой компьютер, собрать и примонтировать. При этом не потерять данные.

Это http://xgu.ru/wiki/mdadm почитал, принцип понял, НО БОЮСЬ! Данные Боюсь потерять. По этому эксперименты отодвинул в сторону...
« Последнее редактирование: 18.05.2020 18:24:18 от San »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Вы бы хоть показали тогда на исходной машине:
cat /etc/mdadm.conf
mdadm --detail --scan --verbose

Поэкспериментируйте на виртуальной машине... если совсем страшно на живую работать...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Вообще, если просто собрать нужно, то примерно такой порядок будет на целевой машине:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
Потом редактируете файл /etc/mdadm.conf, посматривая на файл с исходной машины, но информацию берёте с целевой машины из команды (uuid вас будут интересовать в ней):
mdadm --detail --scan --verbose
Затем пересоберите initrd:
make-initrd
Если последние два действия не делать, то после ребута md0 убежит в md127.
Сноси Винду, переходи на Линукс ! :)

Оффлайн San

  • Участник
  • *
  • Сообщений: 745
Вы бы хоть показали тогда на исходной машине:
Хорошо. Вечером в консоль постараюсь зайти, посмотреть все что можно...
Поэкспериментируйте на виртуальной машине... если совсем страшно на живую работать...
Ну вот не к месту гикнуля основной комп! С ним то и будут эксперименты... Отключу от него диски с RAID 1, переустановлю систему, настрою папки как мне удобно, потом подключу назад свой RAID 1... Как то так... А ноутбуке с Виндой на вируалке тормознуто... Хотя... попробую, Спасибо...

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Мне нужно так. Сейчас RAID 1 из двух дисков стоит в Одном компьютере, на нем большая папка UPLOAD. Нужно перенести этот RAID 1 в Другой компьютер, собрать и примонтировать. При этом не потерять данные.
В смысле физически переставить диски? Так это не прблема вообще. Просто взять и переставить. Главно на пол не уронить. :-)

Оффлайн San

  • Участник
  • *
  • Сообщений: 745
Вы бы хоть показали тогда на исходной машине:
Систему догрохал окончательно. Из Live добрался до /etc/mdadm.conf
# pwd
/run/media/altlinux/c92481b3-9e7b-49f9-8732-beca6ca048a0/etc
# cat mdadm.conf
#
#  /etc/mdadm.conf  --  mdadm configuration file
#
#  Customized for ALTLinux
#  See complete sample on manual page and in documentation directory
#
#  This is a minimalistic skeleton but it should work out-of:a+box!
#

MAILADDR root
PROGRAM /sbin/mdadm-syslog-events
DEVICE partitions

Вывод mdadm --detail --scan --verbose уже получить не удается, но когда система работала, на память скажу, UUID-ов я в ней не видел? Может как то можно из Live глянуть что эта команда покажет?
Если последние два действия не делать, то после ребута md0 убежит в md127.
А возможно как то обойти или потом исправить этот md127? После подключения дисков из массива и загрузки системы (пока пробовал только в Live) - RAID подхватывается сразу, без команды сборки, при чем с теми же UUID-ами на диски по отдельности и массив в сборе, но RAID видится как /dev/md127
# blkid
/dev/loop0: TYPE="squashfs"
/dev/sdb1: UUID="af8dbdc4-1db0-8c9a-675f-e0ec389bc530" UUID_SUB="4763ee3e-feae-833d-b875-56017cc6eb78" LABEL="desk-alsanlin17.localdomain:0" TYPE="linux_raid_member" PARTUUID="c06f8b5b-2671-462d-9311-ee694fd353ed"
/dev/sdc1: UUID="af8dbdc4-1db0-8c9a-675f-e0ec389bc530" UUID_SUB="3eb865e4-e960-e875-5d25-a2fc8f59b6f4" LABEL="desk-alsanlin17.localdomain:0" TYPE="linux_raid_member" PARTUUID="85ad8aaa-57ed-4915-8a88-b0da9664f66d"
/dev/sda1: UUID="4c06c019-c84f-436f-a2ef-010678be1f5a" TYPE="ext4" PARTUUID="7cb277b6-01"
/dev/sdd1: UUID="bc369e6a-f058-44c9-aafe-42bcbba4c756" TYPE="ext4" PARTUUID="3e2e557e-01"
/dev/sde1: UUID="0b8cbd85-95aa-4a21-a569-044a1952c511" TYPE="swap" PARTUUID="00046b5f-01"
/dev/sde2: UUID="c92481b3-9e7b-49f9-8732-beca6ca048a0" TYPE="ext4" PARTUUID="00046b5f-02"
/dev/sde3: UUID="007fa8d6-d240-44b8-a7be-fe403d7c60b0" TYPE="ext4" PARTUUID="00046b5f-03"
/dev/sr0: UUID="2019-10-22-12-28-21-00" LABEL="ALT Workstation 9.0 x86_64" TYPE="iso9660" PTUUID="2e9f3b45" PTTYPE="dos"
/dev/md127: UUID="381c5a0f-d9a9-4c91-88f4-0f6992f13e23" TYPE="ext4"
# cat /proc/mdstat
Personalities : [raid1]
md127 : active raid1 sdc1[1] sdb1[0]
      3906885632 blocks super 1.2 [2/2] [UU]
      bitmap: 0/30 pages [0KB], 65536KB chunk

unused devices: <none>
Просто взять и переставить. Главно на пол не уронить.
Я их даже не вытаскиваю из компьютера! Так что не упадут. А вот заморочка с /dev/md127 присутствует. Помню как то пытался ее решить и лишился всей информации. Благо была архивная копия. Сейчас архивной копии нет, и диска такого большого "лишнего" нет...   :-\

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Можно посмотреть "mdadm --detail --scan" и дописать строчку в mdadm.conf

ARRAY /dev/md0 UUID=<какой тут UUID будет>

« Последнее редактирование: 27.04.2020 21:14:42 от asy »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Вообще, если просто собрать нужно, то примерно такой порядок будет на целевой машине:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
Стоп. Какой --create, если массив уже создан?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Стоп.
Ну как бы ТЗ разнится:
Одном компьютере
Другой компьютер
Если всё так, то на другом нужно снова собирать массив...
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Стоп.
Ну как бы ТЗ разнится:
Одном компьютере
Другой компьютер
Так он готовые HDD переставить хочет.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Пересборка RAID 1 без потери данных...
« Ответ #10 : 27.04.2020 21:36:51 »
Мне нужно так. Сейчас RAID 1 из двух дисков стоит в Одном компьютере, на нем большая папка UPLOAD. Нужно перенести этот RAID 1 в Другой компьютер, собрать и примонтировать. При этом не потерять данные.
Из этой фразы я понимаю так: есть ПК1, в нём настроен RAID1, нужно взять два HDD из RAID1 и перенести их на ПК2. На ПК1 и ПК2 разные системные HDD, на RAID1 только папка UPLOAD.
Тогда на ПК2 нужно выполнять эту команду.
Либо задача неясна...
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Пересборка RAID 1 без потери данных...
« Ответ #11 : 27.04.2020 21:39:57 »
Мне нужно так. Сейчас RAID 1 из двух дисков стоит в Одном компьютере, на нем большая папка UPLOAD. Нужно перенести этот RAID 1 в Другой компьютер, собрать и примонтировать. При этом не потерять данные.
Из этой фразы я понимаю так: есть ПК1, в нём настроен RAID1, нужно взять два HDD из RAID1 и перенести их на ПК2. На ПК1 и ПК2 разные системные HDD, на RAID1 только папка UPLOAD.
Я так же понял. Только "два HDD c RAID1".
Тогда на ПК2 нужно выполнять эту команду.
Нет. Надо "mdadm --assemble ...", так как --create оно уже давно. Ну или в mdadm.conf добавить.
« Последнее редактирование: 27.04.2020 21:42:15 от asy »

Оффлайн San

  • Участник
  • *
  • Сообщений: 745
Re: Пересборка RAID 1 без потери данных...
« Ответ #12 : 28.04.2020 05:13:23 »
Прошу ОГРОМНЕЙШЕГО Прощения!
Ну как бы ТЗ разнится:
Из этой фразы я понимаю так: есть ПК1, в нём настроен RAID1, нужно взять два HDD из RAID1 и перенести их на ПК2. На ПК1 и ПК2 разные системные HDD, на RAID1 только папка UPLOAD.
Тогда на ПК2 нужно выполнять эту команду.
Либо задача неясна...
Запутал, каюсь. Просто для меня ПК с одной OS1 - Это ПК 1, а ЭТОТ же ПК с другой OS2 - Это уже ПК 2. Или я ошибаюсь? Связка MB + HDD - Это постоянный UUID? Ну ладно, связка MB + HDD, а связка MB + Программный RAID...

Стоп. Какой --create, если массив уже создан?
Можно посмотреть "mdadm --detail --scan" и дописать строчку в mdadm.conf

ARRAY /dev/md0 UUID=<какой тут UUID будет>
Нет. Надо "mdadm --assemble ...", так как --create оно уже давно. Ну или в mdadm.conf добавить.
Почему я у себя в mdadm.conf ни чего подобного не вижу? https://forum.altlinux.org/index.php?topic=43862.msg349016#msg349016 Или добавление этой строки в mdadm.conf только при получении /dev/md127?

PS: Попробую устанавливать. Если соберется в /dev/md127 буду дальше искать пути решения. Интересно, а если его потом разобрать? Потом "mdadm --assemble ...", потом make-initrd

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Re: Пересборка RAID 1 без потери данных...
« Ответ #13 : 28.04.2020 08:19:14 »
PS: Попробую устанавливать. Если соберется в /dev/md127 буду дальше искать пути решения. Интересно, а если его потом разобрать? Потом "mdadm --assemble ...", потом make-initrd
Да на самом деле без разницы этот номер у md-устройства, если с UUID всё прописывать. В общем он и так наверное соберётся, если в initrd просто все они ищутся и собираются. И, на всякий случай, под "..." я имел ввиду какой-то ещё набор команд, сходу не помню, но ищется в описании mdadm. UUID привязывается, в данном случае, к информации на hdd. Материнская плата тут не при чём. У RAID свой, у файловой системы на нём - свой.

Оффлайн San

  • Участник
  • *
  • Сообщений: 745
Re: Пересборка RAID 1 без потери данных...
« Ответ #14 : 18.05.2020 18:22:48 »
Всем Огромное Спасибо!

После установки системы и подключения дисков из старого RAID - # blkid показал, что зеркало собралось и стало /dev/md127. Для смены имени массива проделал следующее:
# mdadm --stop /dev/md127
# mdadm --detail --scan
ARRAY /dev/md127 metadata=1.2 name=desk-alsanlin17.localdomain:0 UUID=af8dbdc4:1db08c9a:675fe0ec:389bc530

Добавил строку ARRAY /dev/md0 UUID=af8dbdc4:1db08c9a:675fe0ec:389bc530 в файл mdadm.conf, после чего выполнил:
# make-initrd
# reboot
RAID стал /dev/md0

# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=desk-alsanlin17.localdomain:0 UUID=af8dbdc4:1db08c9a:675fe0ec:389bc530

Можно монтировать в новую систему.

Только интересно, RAID тащит с собой имя старого компьютера на котором был создан: name=desk-alsanlin17.localdomain:0 Как правильно сделать mdadm --name=... пока не понял. Да и надо ли?
« Последнее редактирование: 18.05.2020 18:25:12 от San »