Ru-Board.club
← Вернуться в раздел «UNIX»

» клонирование mdraid

Автор: Alukardd
Дата сообщения: 29.02.2012 11:05
Здравствуйте.
Ситуация следующая: есть машина с OpenSuSE 12.1. 2 жестких диска (по 250Гб). Каждый разбит на 2 раздела: 1 - 5Gb, 2 - всё остальное. Соответственно они попарно объединены в raid1 утилитой mdadm. Первый раздел swap второй / (да всё в кучу).
Есть еще одна машина (железо всё другое) с 2 винтами по 500Гб. По хорошему надо получить точную копию системы на второй машине с таким же raid'ом. Как это лучше сделать?

Мысли есть следующие: загрузится с LiveCD на новой машине разбить жд и создать raid1. Далее по сети(ssh наверное предпочтительнее, не смотря на потери скорости) слить dd со старой машины /dev/md1 раздел на новую машину. Я не знаю что в таком случае будет происходить на новой машине, ведь у неё на 250Гб больше раздел будет...
Вариант второй предполагает использование dump | gzip | ssh | ungzip | restore вместо dd | gzip | ssh | ungzip | dd.

Мб есть более адекватные способы провернуть необходимую операцию?

p.s. надеюсь что при любых подобных переносах ядро распознает новое железо корректно...
Автор: cp58
Дата сообщения: 29.02.2012 12:33
Alukardd
Честно говоря не знаю, сработает ли.
На новой машине разбить хард. Затем mkdir {sys,tmp,proc,dev,dev/input,mnt}, потом скопировать через scp -> scp -r {boot,bin,etc,lib,root,sbin,opt,home} username@hostname:/
Автор: Alukardd
Дата сообщения: 29.02.2012 12:55
cp58
Мало того, что scp совсем не быстро работает, так ваш совет явно упускает ключ -P, дабы права надо перенести корректно. Так же я не уверен за судьбу symlink'ов. Если уж выкатывать такой совет, то использовать следует rsync, а не scp...
Автор: cp58
Дата сообщения: 29.02.2012 13:19

Цитата:
упускает ключ -P

Упустил.

Цитата:
что scp совсем не быстро работает

А вот тут можно поспорить, с blowfish копируется быстро.
На счет ссылок не уверен, rsync точно переносит, а в scp давно не смотрел добавили ли опцию.
Автор: urodliv
Дата сообщения: 29.02.2012 16:12
Alukardd

Код: rsync -avH --progress -x
Автор: Alukardd
Дата сообщения: 29.02.2012 16:47
urodliv
Ну ключи rsync я тоже знаю О чем собственно и написал в комментарии выше.
Вот только щас подошёл момент запускать клонирование - начну потуги я всё-таки с dump/restore, если что-то не зафурычит то тогда уже возьму в руки rsync.
Автор: urodliv
Дата сообщения: 29.02.2012 17:54
Alukardd
Просто я с помощью rsync`а переносил работающую систему на рейд. Потому и вспомнилось.
Автор: Alukardd
Дата сообщения: 29.02.2012 18:34
Возможно я сделал глупость, но ситуация такова:
- на новой машине загрузился с LiveCD(точнее rescue там только был - OpenSuSE, однако...)
- разбил оба винта как надо
- объединил их в raid1 (по разделово, разумеется)
- смонтировал raid устройство
- запустил dump/resotore через ssh
- всё перенеслось, всё хорошо
- как установить загрузчик(на существующей стоит grub)?) raid версии 1.2 (в общем не 0.9), но на старой системе вроде как и версия raid и grub такие же

grub-install так вообще отказывается пахать (и с rescue диска и после chroot), а если запустить grub-install.unsupported то пишет "does not have any corresponding BIOS drive."

После всего этого, разумеется, уже несколько раз перезагружался. При новой загрузке с диска и попытке найти что тут есть(mdadm --examine --scan) он мне отвечал что вот 2 raid'а, но при этом в /proc/mdstat хрень полная - 4 устройства md0,1,126,127 под sdb1,2sda1,2 соответственно... Посмотрев на них и поняв что с ними ни чего я сделать не могу, решил узнать живы ли данные(хотя переносить их меньше получаса заново). Все эти непонятные 4 raid'f я постопил(mdadm --stop) и создал заново рейд как в начале моей эпопеи (правда указал сейчас только одно устройство - 2-ое обозначил missing, что бы он их опять чекать не начал ненароком). Созданное устройство нормально смонтировалось и все данные на нём живы.

Как же всё-таки установить загрузчик?

p.s. или стоит начать с нуля и сделать как-то так, перенеся со старой машины все предварительно не на raid а чисто на один из винтов.

Добавлено:
Только сейчас допёрло! Забыл сказать самое важное - тут новая ASUS мама с EFI. Мб в этом причина - я доселе ни когда с ним не работал...

Добавлено:
Поставил пакет grub2-efi... Не вышло и с ним, хотя он писал что загрузчик установлен, но EFI ратовл что Missing operating system.
Автор: urodliv
Дата сообщения: 29.02.2012 20:36

Цитата:
но при этом в /proc/mdstat хрень полная - 4 устройства md0,1,126,127 под sdb1,2sda1,2 соответственно...

Была такая лабуда. Прописал рейды жёстко в /etc/mdadm/mdadm.conf.

Цитата:
grub-install так вообще отказывается пахать (и с rescue диска и после chroot)

Чего пишет?
И вообще, нам бы глянуть (хоть одним глазком) grub.cfg. Да и в статье как-то опущен вопрос формирования initram`а.

Цитата:
тут новая ASUS мама с EFI. Мб в этом причина

Может быть, а может и не быть. Я на подобную от MSI ставил дебиан. Даже не задумывался о том, что там не биосяка уже.
Автор: Alukardd
Дата сообщения: 29.02.2012 20:48
urodliv
при свежей установке-то да, а вот когда восстановить надо загрузчик...
я щас уже все потер с чистого листа поставился даже grub 0.97.

Че-то я винты намучал разными таблицами - щас на ночь хочу поставить их потереть с /dev/random, а завтра уже заново попытаться склонировать с рабочей машины систему и восстановить загрузчик.
Автор: urodliv
Дата сообщения: 29.02.2012 21:05

Цитата:
при свежей установке-то да, а вот когда восстановить надо загрузчик...

Для тестов 1с нужно было "зеркало". Ставить с нуля было лень. Взял винч с дебом 6. И почти как в вышеозначенной статье всё и нафигачил. Естественно пришлось кое-что править, кое-что пилить. Но вроде всё поднялось.

Цитата:
Че-то я винты намучал разными таблицами - щас на ночь хочу поставить их потереть с /dev/random,

Ну нафиг такое --zero-superblock хватит.
Автор: Alukardd
Дата сообщения: 29.02.2012 23:01
urodliv
ну там не только рейдом я его мучил, но и без него таблицы на создавал несколько раз по разному...

давайте я еще раз опишу последовательность действий, а вы скажите мне щито я делаю не так или просто не делаю...
- старая машина включена, работает. новую загрузил с CD в rescue mode
- через fdisk удалил все разделы со всех ЖД, создал на каждом из 2-х винтов по 2 раздела, всем разделам поставил тип fd(Linix raid partition). на каждом из винтов второму раздела поставил флаг boot.
- создал 2 рейда: mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 и 2-ой аналогично. подождал пока они засинхронятся
- mount /dev/md1 /mnt
- слил данные с рабочей машины на новую: dump -0aun -f - | ssh root@newhost "cd /mnt && restore -rf -"
- смонтировал служебные каталоги: mount -o biind /dev /mnt/dev. /sys и /proc аналогично.
- chroot /mnt
вот далее нужны пояснения (ваши для меня)
- видимо первым делом надо перечитать рейд разделы, т.к. тут все настройки со старой машины, а почти все работает по uuid. mdadm --examine --scan > /etc/mdadm.conf
- ну и больше хз что делать кроме как поставить grub на каждый из дисков: grub-install --spam_detected --no-flopy /dev/sda и на sdb аналогично. Вот тут скорее всего вылезет ошибка описанная мною выше - сначала просто ругнется, а при попытке поставить через grub-install.unsupported - скажет что BIOS не нашёл у себя винтов.
- в довершение выполняем обратные действия. exit из chroot, umount всё что использовали и reboot.

[more=menu.lst]# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

default 0
timeout 8
gfxmenu (hd0,1)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 12.1 - 3.1.0-1.2
root (hd0,1)
kernel /boot/vmlinuz-3.1.0-1.2-desktop root=/dev/disk/by-id/md-uuid-8955ffe4:8c98d8fb:e3a882c7:e961a1ff resume=/dev/disk/by-id/md-uuid-5387086a:7a34adf7:269e4610:b786856c showopts vga=0x31a
initrd /boot/initrd-3.1.0-1.2-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.1 - 3.1.0-1.2
root (hd0,1)
kernel /boot/vmlinuz-3.1.0-1.2-desktop root=/dev/disk/by-id/md-uuid-8955ffe4:8c98d8fb:e3a882c7:e961a1ff showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x31a
initrd /boot/initrd-3.1.0-1.2-desktop
[/more] с рабочей машины (чего это вы grub.cfg захотели - 12.1суся при установке даже не предлагает grub2, только grub, lilo elilo)
Автор: cp58
Дата сообщения: 01.03.2012 00:30
Alukardd

Цитата:
12.1суся при установке даже не предлагает grub2, только grub, lilo elilo

grub,lilo не поддерживают 1.x суперблоки, надо или ставить grub2, или ставить старый суперблок(0.9).
mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1
Автор: Alukardd
Дата сообщения: 01.03.2012 10:38
cp58
кэп...
я тоже так думал... точнее меня в этом убеждали...
[more=смотри]cat /proc/mdstat
Personalities : [raid1] [raid0] [raid10] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdb1[1]
6288372 blocks super 1.0 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sdb2[1] sda2[0]
237908856 blocks super 1.0 [2/2] [UU]
bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>





S | Name | Type | Version | Arch | Repository
--+-------------+---------+--------------+--------+-----------
i | grub | package | 0.97-177.1.2 | x86_64 | ALL REPOS
| grub2 | package | 1.99-8.7.2 | x86_64 | ALL REPOS
| grub2-efi | package | 1.99-8.7.2 | x86_64 | ALL REPOS [/more]
Автор: cp58
Дата сообщения: 01.03.2012 11:50
Alukardd
Grub от этого не начинает работать с 1.x суперблоком, он просто не конфликтует с 1.0 суперблоком, потому что тот пишет свои заголовки в конец устройства, поставив туда raid0 начнется каша, а raid1 живет.
К тому же я не понимаю, чем не устраивает старый 0.9, если он позволяет использовать до 28 устройств и размером каждого до 2ТБ, к задаче выше вполне приемлемо.
Автор: Alukardd
Дата сообщения: 01.03.2012 12:16
cp58
Да всем устраивает, если только в этом вопрос, то сегодня в новых попытках буду собирать 0.9 версию.
Через несколько часов отпишусь...
Автор: Alukardd
Дата сообщения: 01.03.2012 16:03
Я опять зашёл в некоторый тупик, однако я продвинулся уже дальше:
grub я установил и он грузится норм, но дальше raid не монтирует. Я где-то забыл изменить uuid после переноса и теперь он ищет старые разделы, скорее всего в /etc/fstab и /boot/frub/menu.lst. Менял я только файл /etc/mdadm.conf и /boot/grub/device.map про остальное как-то и забыл... Как теперь их исправить? При загрузки системы вываливаюсь в то, что есть - похоже на initramfs.
А при загрузке с rescue диска хз как лучше raid подклбючить что бы ни чего не испортить. Сейчас вижу [more=такое]Rescue:~ # mdadm --examine --scan
ARRAY /dev/md0 UUID=24f5daff:c3ebc2f4:14a75d6a:bbcc0774
ARRAY /dev/md1 UUID=413e1a8a:7c774e76:14a75d6a:bbcc0774
Rescue:~ # cat /proc/mdstat
Personalities :
md126 : inactive sdb2[1](S)
482097088 blocks

md127 : inactive sda1[0](S)
6288320 blocks

md0 : inactive sdb1[1](S)
6288320 blocks

md1 : inactive sda2[0](S)
482097088 blocks

unused devices: <none>[/more].
Поможите как лучше исправить ситуацию. Не хочется сломать то что есть, уж слишком долгие все эти операции что бы их опять переделывать...

Добавлено:
Пока подключил raid(те 4 штуки постопил провел скинрование и сборку) - щас попытаюсь исправить и загрузить систему... ждите новостей с фронта

Добавлено:
Исправил я все by-id и by-uuid в /etc/fstab и /boot/grub/menu.lst и на всякий заново установил загрузчик.
Результат всё тот же, только теперь ошибки валятся с корректными uiud.
[more=Вот перечепятннай вывод]. . .
mdadm: an md device must be given in this mode
mdadm: an md device must be given in this mode
Trying manual resume from /dev/disk/by-id/md-uuid-{МНОГО ЦИФРОБУКВ}
resume device /dev/disk/by-id/md-uuid-{МНОГО ЦИФРОБУКВ} not found (ignoring)
Trying manual resume from /dev/disk/by-id/md-uuid-{МНОГО ЦИФРОБУКВ}
resume device /dev/disk/by-id/md-uuid-{МНОГО ЦИФРОБУКВ} not found (ignoring)
Waiting for device /dev/disk/by-id/md-uuid-{МНОГО ДРУГИХ ЦИФРОБУКВ} to appear: ............. Could not find /dev/disk/by-id/md-uuid-{МНОГО ДРУГИХ ЦИФРОБУКВ}
not found -- exiting to /bin/sh
sh: cannot set terminal process group (-1): Inappropriate ioctl for device[/more]
Ну то что там нету resume и хер ты с ним - это вообще swap раздел, а вот то что он Waiting это систмный раздел...

Что еще и где я мог забыть прописать?( Просто когда я делаю это в пятый раз у меня уже как-то мозг замозолен и я не могу найти что мог упустить...

Добавлено:
На сколько я понимаю это udev не создает simlink'и md-uuid...

Добавлено:
О великий google пол часа спустя...
просто надо было выполнить mkinitrd.

Всё работает - с внутренностями я уже сам дальше разберусь)))

p.s. вот я ппц - сам пишу вопросы сам же на них отвечаю... просто по другому не могу - вечно так же в jabber кого-нить долбаю и сам же отвечаю...

Страницы: 1

Предыдущая тема: [README.1ST] Где спросить. Карта форума.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.