Mdadm перенос на другой компьютер
У меня есть недавно построенная машина со свежей установкой Gentoo Linux и программным массивом RAID 5 с другого компьютера (4 диска IDE, подключенных к внешним PCI-контроллерам). Я успешно переместил контроллеры на новую машину; диски обнаруживаются ядром; и я использовал mdadm --examine и проверял, что один раздел RAID обнаружен, чист и даже в «правильном» порядке (hde1 == привод 0, hdg1 == диск 1 и т. д.).
У меня нет доступа к исходным файлам конфигурации с более старой машины. Как я должен продолжить активацию этого массива без потери данных?
3 ответа
Вам действительно нужен оригинальный файл mdadm.conf. Но, поскольку у вас его нет, вам придется его воссоздать. Прежде всего, прежде чем что-либо сделать, зачитайте mdadm на странице руководства . Почему вероятность потери данных в ситуации или команде, которую вы не понимаете?
Сказав это, этот совет на свой страх и риск. Вы можете легко потерять все свои данные с неправильными командами. Перед тем, как запустить что-либо, дважды проверьте последствия команды . Я не могу нести ответственность за потерю данных или другие проблемы, связанные с любыми действиями, которые вы предпринимаете - поэтому дважды проверьте все .
Вы можете попробовать следующее:
Это должно дать вам некоторую информацию, чтобы начать работать вместе с идентификатором. Он также создаст новое устройство массива /dev /md , оттуда вы сможете найти любые крепления. Не используйте опцию --auto , формулировка man-страницы подразумевает, что при определенных обстоятельствах это может привести к перезаписи настроек вашего массива на диски. Это, вероятно, not случай, и, вероятно, страница должна быть переписана для ясности, но почему это возможно?
Если массив собран правильно и все «нормально», обязательно запишите свой mdadm.conf, записанный и сохраненный в /etc , поэтому вы будете иметь его во время загрузки. Включите новый идентификатор из массива в файл, чтобы помочь ему.
Сканировать все разделы и устройства, перечисленные в разделе /proc /partition, и собрать /dev /md0 из всех таких устройств с суперблоком RAID с меньшим числом 0.
Если conf был успешным, вы можете добавить --detail --scan>> /etc/mdadm/mdadm.conf, чтобы он ловил его при загрузке
Просто хотел добавить мой полный ответ для Debian по крайней мере.
В этот момент мне нравится проверять BLKID и монтировать рейд вручную для подтверждения.
Убедитесь, что вывод:
Популярные теги
Приветствую.
Если перенести жесткие диски с raid1 с одного пк с linux на другой пк с linux, система корректно распознает массив и будет достаточно просто смонтировать его? Несовместимости м-ду разными версиями mdadm нету? Имя устройства, например было /dev/md1, останется прежним? Что будет если на новом ПК устройство с таким именем уже существует?
достаточно одной части
вы похоже ответили не в той теме.
Несовместимости м-ду разными версиями mdadm нету?
В случае зеркала (RAID1) проблем быть не должно.
Имя устройства, например было /dev/md1, останется прежним?
Зависит от конфигурации системы. В общем случае сохранение нумерации не гарантируется.
Что будет если на новом ПК устройство с таким именем уже существует?
Кто-то из массивов изменит нумерацию. Кто именно, зависит от порядка инициализации дисков при загрузке. Чтобы избежать подобных проблем, лучше в fstab указывать UUID дисков, а не конкретные устройства.
вы похоже ответили не в той теме.
Ответ был по теме. Речь о том, что в случае зеркала для доступа к информации достаточно смонтировать один диск, переносить массив целиком необязательно.
перенести жесткие диски с raid1 с одного пк с linux на другой пк с linux
неплохо бы добавить его /etc/mdadm/mdadm.conf, но ЕМНИП это уже не обязательно
система корректно распознает массив
если mdadm установлен и автообнаружение включено ( по умолчанию включено )
Несовместимости м-ду разными версиями mdadm нету?
тебя интересует версия метаданных ( mdadm metadata version )
на актуальных версиях ОС несовместимости нет. Если новый комп спёр из музея и не стал обновлять ОСь, теоретически может не взлететь. Но на моей памяти такого ещё не было
Имя устройства, например было /dev/md1, останется прежним? Что будет если на новом ПК устройство с таким именем уже существует?
На имена устройств глубоко пофиг, они динамические, уже лет пятнадцать всё работает по uuid
Если тебе зачем-то нужно постоянное имя, добавить в /etc/mdadm/mdadm.conf
Если ты вручную доабавил два рейда с одним именем, это уже точно твои проблемы. Скорее всего, первый обнаруженный получит имя, а конкурент станет чем-то вроде md127. Никогда не интересовался, что будет, если выстрелить себе в ногу. Просто не стрелял - по мне так отличное решение ;)
router ★★★★★ ( 18.02.20 22:02:54 )
Последнее исправление: router 18.02.20 22:03:09 (всего исправлений: 1)
Спасибо всем за ответы. Последний вопрос, имя устройства задаваемое при создании массива, например md1, хранится на диске в спец. области или только в конфигах системы на которой был создан массив?
Последний вопрос, имя устройства задаваемое при создании массива, например md1, хранится на диске в спец. области или только в конфигах системы на которой был создан массив?
В общем случае - нигде. Получает рандомное при загрузке, как например диски именуются sda, sdb и т.д.
Можно для удобства добавить в mdadm.conf постоянное имя, но это не обязательно
Ubuntu 8.04. Сервер с двумя дисками в RAID1.
3 раздела: / - md0, swap - md1, /home - md2.
Вынул один диск и вставил в другой сервер (типа миграция).
В итоге оба компьютера оказались в нерабочем состоянии.
На старом компьютере:
- grub вообще не стартует;
- rescue CD/"запуск с первого диска" - тишина.
Что не так делал?
По простоте душевной думал все пройдет за 5 минут :)
> Что не так делал?
наверно диск не в полнолуние вынимал.
>- grub вообще не стартует;
не на оба диска граб поставил?
а ещё нужно не по id можнтировать а по устройству из /dev
> а ещё нужно не по id можнтировать а по устройству из /dev
диск из софтверного рейда нужно вынимать только в полнолуние, голым и со свечкой в руке.
Если нет корзины, то нужно знать "устройство (sda) - серийный номер"
или на материнской смотреть разводку?
Чем пользуетесь для нахождения диска?
Есть ли в природе драйвера для корзины, в Win точно есть?
переставь линупс на этих дисках, убери софтверный рейд.
Драйвер для корзины, это что-то вроде драйвера для коврика мышки.
1) Компьютер с двумя дисками в RAID1, диски подключаются
шлейфами прямо к материнской плате и нет индикаторов
на передней панели.
Какой диск нужно вынуть из компьютера?
А если я не тот диск вытащу?
2) Компьютер с корзиной. В Windows есть драйвер корзины.
Если пометит диск, как fail сразу писк на всю комнату и иллюминация.
В Linux, что угодно делай никаких признаков проблемы.
откуда диск изначально вынул, туда и верни.
Я все сделал и диски раза 4 уже в корзине поменял (для тренировки).
В теории спрашиваю:
- корпус без корзины и индикаторов дисков нет;
- mdadm пометил диск как fail;
- через mdadm делаю remove;
- выключаю компьютер.
А если винтов будет 4 штуки в RAID10, который из них sdb?
Нужен хотя бы серийный номер диска или порядок нумерации.
На одном жестком диске появились ошибки, о чем и mdadm сообщил.
Было принято решение перенести всё это добро на новое железо, таким образом еще будет произведён апгрейд. Пробовал через Clonzilla сделать копию на новый жесткий диск, но не запустилось на новом железе. Выдавало kernel panic (Может из-за отсутствия raid-контроллера? На новом компьютере просто два SATA-диска).
Прошу Вас кратко, по пунктам рассказать что надо сделать, чтобы перенести сервер.
А на что ругалось при этом?
К сожалению не помню точно на что ругалось. Но в интернет я не смог найти информации, которая бы мне помогла.
Сейчас винчестеры почищены и приготовлены для второй попытки копирования.
Ну а перед этим я решил уточнить действия, которые лучше предпринять.
Вообще сейчас у меня такие мысли в голове:
- Подключить один новый жесткий диск к серверу
- Сделать разметку аналогично работающему серверу
- Скопировать данные в single-mode
- Подключить новый жесткий к новому компьютеру
- Установить загрузчик GRUB
- Настроить mdadm, создать новый массив
мой совет возможно покажется офтопиком, но всё же.
Не думали отставить систему заного и перекинуть письма пользователей на новый сервер (если они хранятся на сервере)?
Просто Fedora Core весьма старый дистрибутив, да и железо вероятно сильно различается. А отставить пакеты на свежей Fedor'е (или другом дистре), и подложить конфиги - не должно занять много времени, это будет проще и надежней, чем мучиться с клонированием, ИМХО
WhiteWolf ★ ( 04.06.13 16:27:23 )
Последнее исправление: WhiteWolf 04.06.13 16:27:46 (всего исправлений: 1)
1 - да
2 - да
3 - зачем? У тебя RAID. Заведи его в RAID вместо битого и подожди, пока у тебя отзеркалируются данные. В идеале ты получишь нулевое время простоя.
А с битым можешь пока поупражняться на новой железке - там у тебя вполне рабочая копия системы.
Не забудь только на новый диск поставить загрузчик.
Если один жёский диск посыпался, то скоро может и второй пойти следом, 80 Gb было достаточно давно. Если у вас есть backup-ы то всё хорошо, иначе лучше сначала одни новый диск просто подключить на место посыпавшегося и восстановить md0 до нормального состояния, а потом, со вторым новый диском проводить всякие опыты.
Если стоит задача просто скопировать систему, на втором новом диске после разметки можно сразу создать raid в degradeted режиме, и копировать в single-mode данные в этот raid. Загрузчик на новый винт можно устанавливать на старой системе, а не на новой.
А отставить пакеты на свежей Fedor'е (или другом дистре), и подложить конфиги - не должно занять много времени
Перелазил с 12-13 федор на centos6. Ничего не взлетело. Гемор с каждым пунктом. Пакетная база казалось бы очень близкая, но вот получил такой опыт. У ТС вообще древняя штука.
squid 100% надо будет переделывать. Я когда переходил с 2.6 на 2.7 пришлось долго и внимательно разбирать конфиг - у меня он очень большой - много всяко-разно нарезано. Почту когда переезжал с f12 на centos6 немного не допилил (кой-какая мелочевка не отрабатывает) - попросту занят и не успеваю. Может сейчас и заниматься буду почтой. Если у тебя еще ерунды какой накручено, то возможно придется разбираться и с этим. В зависимости от того что уже есть надо быдет сделать выбор из centos5 или 6.
Если же мне помогут советам, то я с удовольствием это и сделаю.
Советую мигрировать с физического сервера на виртуальный. Первоначальная настройка гипервизора займет много времени, но если ты уже в курсе темы, то справишься быстро. А потом подсунешь образ диска виртуалке и все будет норм. После этого уже мигрируй на параллельный сервер с новым дистрибутивом.
Спасибо за ответы и советы.
Да, сервер, к сожалению, старый мне достался.
Сейчас остановился на том, что заменил на сервере в рейде битый винчестер на новый, чтобы это работало и не сильно волновало. И планирую повозиться с переносом на новое железо старого сервера. То есть ничего меняться не будет, кроме железа.
Думаю, что при смене железа ничего страшного возникнуть не должно.
Про переход с Fedora на CentOS тоже понял, спасибо. Непростое и геморное это дело. Лучше заново организовать сервер, что и будет сделано в дальнейшем.
И снова здравствуйте.
Прошу все же вашей помощи.
Замена диска прошла успешно, сервер работает в штатном режиме. Сам сижу и пытаюсь поковыряться с «битым» жёстким диском, который был удалён из рейда. И хочу с него перенести Fedora на новое железо.
Выяснилось, что на «битом» винте не установлен загрузчик, или слетел. При загрузке был черный экран и мигал курсор. В результате восстановления загрузчика таблица файловой системы была немного изменена, а точнее тип файловой системы /dev/sda2 был изменён с FD на 83.
Ладно, загрузчик восстановлен. ОСь загружается, но не до конца.
Вот что даёт во время загрузки:
Вот что в fstab:
а точнее тип файловой системы /dev/sda2 был изменён с FD на 83.
Зачем это было сделано? Попробуйте поменять обратно — грузитесь с флешки/LiveCD, запускайте fdisk и меняйте. Потом посмотрите, что пишет команда:
mdadm -v --examine /dev/sda1
Столкнулся с анологичной проблемой. Переезжал с debian etch на centoso 6 и на новое железо. Подложить конфиг не получилось, не совпадали пути и т.д Система спотыкалась, ругалась. Во времени был ограничен, поэтому решил так: С ноля centos 6 minimal+iredmail и заюзал свою vmail базу. Ну а прокси - поправил конфиг.
Потому что не получалось у меня смонтировать этот раздел при загрузке с LiveCD.
Если он был RAID'ом - то и обращаться с ним надо было, как с RAID'ом.
Дак если там на разделе был RAID, то раздел надо было не монтировать напрямую, а собирать из этого раздела RAID в degradeted-режиме: «mdadm --assemble /dev/md0 /dev/sda2».
Я успешно создал RAID (зеркалирование) с помощью mdadm . Тем не менее, я должен запускать следующие команды после каждой загрузки:
Что я делаю не так / почему мне нужно запускать эти команды при загрузке? Как правильно автоматически запускать RAID при каждой (пере) загрузке?
NB: Вам либо нужно войти в систему как root, либо использовать sudo для всего этого .
- Используйте ваш любимый редактор для создания или редактирования файла /etc/mdadm/mdadm.conf следующим образом:
Если файл даже не существует, вставьте следующее в новый пустой файл:
Выполните следующую команду, чтобы добавить ссылку на конфигурацию вашего массива в конце файла:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Это должно добавить следующую строку в конец mdadm.conf:
ARRAY / dev / md0 level = raid5 num-devices = 3 метаданных = 00.90 UUID = a44a52e4: 0211e47f: f15bce44: 817d167c
Если команда mdadm добавила какие-либо другие элементы над строкой ARRAY, удалите их. Например, на одном из моих компьютеров команда возвращает «mdadm: формат метаданных 00.90 неизвестно, игнорируется». до линии ARRAY.
Теперь ваш массив должен автоматически собираться при загрузке, и, таким образом, вы можете добавить запись в / etc / fstab для его монтирования (если его там еще нет)
mdadm --detail --scan ничего не печатает в моей системе, хотя я точно знаю, что у меня есть два раздела, которые являются частью raid0 (зеркало). Любые общие советы по этому вопросу приветствуются.
это не сработало для меня, я должен был сделать, grub-install /dev/sda чтобы это сработало (замените sda на что-нибудь подходящее для вас)
Я понимаю, что это старый вопрос, но у меня было разочаровывающее время на 32-битной версии Ubuntu Server 12.04.
Бег mdadm --detail --scan >> /etc/mdadm/mdadm.conf дополнил линию
ARRAY / dev / md0 метаданные = 1.2 name = ubuntu: 0 UUID = a8a570c6: 96f61865: 05abe131: 5c2e2f7e
После перезагрузки я никогда не видел / dev / md0. Выполнение mdadm --detail --scan снова (без помещения результата в файл) я бы увидел
ARRAY / dev / md / ubuntu: 0 метаданных = 1.2 name = ubuntu: 0 UUID = a8a570c6: 96f61865: 05abe131: 5c2e2f7e
и ручной монтаж /dev/md/ubuntu:0 будет работать. В конце концов, это было то, что я положил в файл fstab.
Я не уверен, что я ошибся, если это так в Ubuntu 12.04, или это плохая практика. Просто хотел поделиться тем, что сработало для меня.
В Debian wheezy требуется еще один шаг: при /etc/default/mdadm установке автозапуска с false на true
Кроме того, я должен был использовать mdadm -Es >>/etc/mdadm/mdadm.conf вместо --scan опции, так как это не работает для меня.
Теперь отредактируйте строки, добавленные в /etc/mdadm/mdadm.conf, следующим образом. Удалите все, кроме основных частей. Должно выглядеть
Примечание: вы можете выбрать X в mdX для вашего удобства.
РЕДАКТИРОВАТЬ: команда исправлена.
У меня была эта проблема на моем Raspberry Pi 2 под управлением Raspbian GNU / Linux 8 (Джесси). У меня был массив RAID на /dev/sda1 и /dev/sdb1 которые не удалось собрать при загрузке. В моем /etc/mdadm/mdadm.conf файле была запись
(ваши цифры будут другими; см. другие ответы о том, как получить это.)
В моем /etc/fstab файле была запись
(и, конечно, /data действительно существовал)
Как и OP, я мог собирать и монтировать RAID-массив вручную после загрузки, но я не мог сделать так, чтобы это происходило автоматически во время загрузки, несмотря на то, что, видимо, он был правильно настроен.
Мне удалось решить проблему следующим образом. Я исследовал скрипт в /etc/init.d/mdadm-raid и вставил строку кода отладки
ls /dev > /home/pi/devices.txt
Перезагрузка и проверка этого файла я узнал , что устройства /dev/sda и /dev/sdb существовавшие в то время mdadm-raid инициализация произошла, но перегородка /dev/sda1 и /dev/sdb1 пропали без вести. Я отредактировал /etc/init.d/mdadm-raid файл и вставил строку
Я боролся с этим на Raspbian, используя пару внешних жестких дисков USB на Raspberry Pi. Мне пришлось возиться с порядком запуска служб, чтобы убедиться, что mdadm-raid запускался после того, как udev распознал USB-накопители, но до checkfs.sh (который проверяет файловые системы во время загрузки). Если mdadm-raid запускался слишком рано, диски были недоступны и, следовательно, массив не был собран. Это означало, что fsck впоследствии потерпел неудачу, и процесс загрузки прекратился до приглашения на обслуживание (потому что массив raid необходим для других сервисов).
Изменение загрузочных зависимостей для запуска mdadm-raid после checkroot.sh, но перед запуском checkfs.sh и update-rc.d mdadm-raid defaults последующим update-initramfs -uv -k `uname -r` (обратите внимание на огрехи uname ) исправило его (наконец). Для меня, во всяком случае, YMMV.
Обратите внимание, что uname -r в приведенном выше примере должен быть в галочках, но я не могу понять, как избежать их, поэтому они напечатаны здесь .
Какая версия распбиана была? У меня все работало нормально на Wheezy, но унизить до Джесси не удалось собрать сборку при загрузке.
mdadm --create /dev/md/abcdef .
Я вижу, что /dev/md/abcdef программная ссылка сохраняется при перезагрузке, и, если необходимо, доступ к устройству осуществляется через программную ссылку.
Похожие вопросы
Читайте также: