LINUX.ORG.RU
ФорумAdmin

приключения с software RAID 1 ( inactive)

 ,


1

2

приветствую!
итак: ядро 3.10.17 если это важно,был собран софтверный райд 1 из двух дисков - sda & sdb.
sda1 sdb1 md1 - / ( root partition, ext4, partition type: FD)
sda2 sdb2 md2 - swap ( partition type: FD ( linux_raid_autodetect?)

sda3 sdb3 md3 - /second (ext4, FD type)

первая партиция ( бутабельная) создана по типу
mdadm --create /dev/md1 --level 1 --raid-devices 2 /dev/sda1 /dev/sdb1 --metadata=0.90

остальные две создавались без ключа "--metadata=0.90".
в таком виде оно заработало в дефаултном ядре. после создания
generic kernel с initrd в сиём генериц кернел начались проблемы
-было исправлено путём записи в /etc/mdadm.conf


ARRAY /dev/md1 devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md2 devices=/dev/sda2,/dev/sdb2
ARRAY /dev/md3 devices=/dev/sda3,/dev/sdb3

и далее всё это работало без замечаний.
но тут отстроенную машину понадобилось наконец поставить в
продакшн вместо временной версии, и я перед уносом сего
сделал клон диска:

dd if=/dev/sda of=/dev/sdc bs=1M

склонированный диск, который при клонировании был sdc
( все диски одинаковой модели и емкости - т е идентичные)
поставил в идентичное железо как первый ( sata1) второй такой
же пустой диск - на сата2. включил комп и приготовился узреть
деградированный райд, но случилось веселей:

cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]

md2 : inactive sda2[0](S)
15615020 blocks super 1.2

md3 : inactive sda3[0](S)
341667868 blocks super 1.2

md1 : active raid1 sda1[0]
97659008 blocks [2/1] [U_]

unused devices: <none>

из дмесг:

[ 0.577150] ata7: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
[ 3.592356] ata8: PATA max PIO4 cmd 0x170 ctl 0x376 irq 15
[ 3.745991] md: linear personality registered for level -1
[ 3.746218] md: raid0 personality registered for level 0
[ 3.746443] md: raid1 personality registered for level 1
[ 3.746667] md: raid10 personality registered for level 10
[ 3.746892] md: raid6 personality registered for level 6
[ 3.747117] md: raid5 personality registered for level 5
[ 3.747342] md: raid4 personality registered for level 4
[ 3.747570] md: multipath personality registered for level -4
[ 3.962787] md: bind<sda1>
[ 3.964195] md/raid1:md1: active with 1 out of 2 mirrors
[ 3.964446] md1: detected capacity change from 0 to
100002824192 [ 3.966139] md1: unknown partition table
[ 3.972889] md: bind<sda3>
[ 3.974270] md: bind<sda2>
[ 5.101156] EXT4-fs (md1): mounted filesystem with ordered
data mode. Opts: (null)
[ 9.379520] EXT4-fs (md1): re-mounted. Opts: (null)
[ 12.763991] EXT4-fs (md3): unable to read superblock
[ 18.410493] EXT4-fs (md3): unable to read superblock


соответственно, свап и второй раздел не подмонтировались.

почему такое случилось, что теперь делать, и как опять собрать
райд и синхронизировать ( восстановить двудисковость?)
спасибо заранее

Ответ на: комментарий от anonymous

mdadm --detail --scan
ARRAY /dev/md1 metadata=0.90
UUID=205734ac:9252463d:208cdb8d:9e23b04b
mdadm: md device /dev/md3 does not appear to be active.
mdadm: md device /dev/md2 does not appear to be active.

wisedraco ★★ ()

почему такое случилось

Первая очевидная ошибка - копирование через dd с активированного raid'а. Соответственно, при отключении этого диска, в метаданные рейда на /dev/sdc* не было записано, что рейд корректно остановлен.

Дальше - моё предположение.

Поэтому сейчас с точки зрения mdadm эти «куски рейда» - в НЕ актуальном состоянии. Т.е. их вырвали из рейда нештатно. И значит, ни в коем случае нельзя пытаться собирать из них рейд. mdadm спасает твою задницу от потенциальной потери данных.

router ★★★★★ ()

swap на рейде лучше разобрать, по делу ничего сказать не могу.

IvanR ★★★ ()
Ответ на: комментарий от router

ИМХО, всё проще. Там где superblock 0.9 raid собирает ядро, и оно его собирает всегда. А там где более новый суперблок, его собирает initrd, который может содержать проверку целостности raid'а (и не активирует его, если не все диски есть).

mky ★★★★★ ()

Совет на будущее : если хочешь поменять/скопировать диск для рэйда - sfdisk-ом копируй таблицу разделов на новый диск и добавляй его в рэйд mdadm.

ubiquitine ()
Ответ на: комментарий от router

# mdadm -E /dev/sda2
/dev/sda2:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 5b613f00:da14a664:b875a6bd:b026051a
Name : slackware:2
Creation Time : Sun Jan 5 14:33:06 2014
Raid Level : raid1
Raid Devices : 2

Avail Dev Size : 31230041 (14.89 GiB 15.99 GB)
Array Size : 15614912 (14.89 GiB 15.99 GB)
Used Dev Size : 31229824 (14.89 GiB 15.99 GB)
Data Offset : 16384 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 7657d102:0e0861fb:6e078488:bd56d05d

Update Time : Sun Jan 5 15:36:56 2014
Checksum : 49463ec1 - correct
Events : 17



Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing)


root@SER2:~# mdadm -E /dev/sda3
/dev/sda3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 58081709:b5a2e03e:9400158b:c49b14a7
Name : slackware:3
Creation Time : Sun Jan 5 14:35:28 2014
Raid Level : raid1
Raid Devices : 2

Avail Dev Size : 683335736 (325.84 GiB 349.87 GB)
Array Size : 341667712 (325.84 GiB 349.87 GB)
Used Dev Size : 683335424 (325.84 GiB 349.87 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : b45dbc8b:7eca8ebb:552941db:bc67c5fc

Update Time : Tue Feb 4 09:30:35 2014
Checksum : f8a162f - correct
Events : 17


Device Role : Active device 0 Array State : AA ('A' == active, '.' == missing)

по нкекорректносити размножения чере дд - понял, спасибо. каковы способы корректного размножения?

wisedraco ★★ ()
Ответ на: комментарий от ubiquitine

спасибо за совет! значит, обобщая - метадата лучще всегда указывать как 0.90? копирование разделов sfdisk-om каковы тоности, если диски неидентичные по производителю \ размерам? как добавить новый диск в массив, если изначально при устройстве райда указано что девицес = 2, и как потом его корректно убрать?

wisedraco ★★ ()
Ответ на: комментарий от wisedraco

State : clean

Тогда рейд должен собраться без проблем

Попробуй /etc/init.d/mdadm-raid restart

Только в mdadm.conf лучше заменить

ARRAY /dev/md2 devices=/dev/sda2,/dev/sdb2
ARRAY /dev/md3 devices=/dev/sda3,/dev/sdb3

на

ARRAY /dev/md2 uuid=5b613f00:da14a664:b875a6bd:b026051a auto=yes
ARRAY /dev/md3 uuid=58081709:b5a2e03e:9400158b:c49b14a7 auto=yes

по нкекорректносити размножения чере дд - понял, спасибо. каковы способы корректного размножения?

1) копировать через dd с корректно остановленного рейда

2) добивить диск в raid, увеличить num-devices с 2 до 3, дождаться завершения ребилда. После этого остановить рейд, и можно забирать диск.

router ★★★★★ ()
Ответ на: комментарий от wisedraco

Почитай мануал по mdadm. Изменить коликество дисков в рэйде можно при помощи «mdadm grow -n». На счет метадаты 0.90 не уверен что это необходимо для всех девайсов - только для загрузочного раздела. Про добавление и удаление диска из рэйда - читай мануал, там все доходчиво написано.

ubiquitine ()
Ответ на: комментарий от router

ага. нема у нас в инит.д ничего с райдами связанного - на слаквари мы :) по поводу мдадм.конф - значимо добавление ауто=иес,я так понимаю, ибо привязка по ууид - это привязка конкретных дисков, в данном этапе как по мне, не есть необходимо. второй диск, кстати, совершенно пустой, как с завода. перед тем как восстановить райд, туда ж надо таблицу разделов скопировать?

по поводу вопросов копирования райд - массива - первое самому в голову пришло, а вот по второму - перед удалением третьего диска надо ж обратно нум-девицес в 2 поставить, иначе действующий райд будет ругатся, нет?

wisedraco ★★ ()
Ответ на: комментарий от ubiquitine

почитаю, конечно, н6о хочется лёгких и проверенных путей :) поповоду метадаты я тож был неуверен, и посему 0.90 поставил только для загрузочного раздела - но однако теперь у меня более или менее сам поднялся именно загрузочный раздел, а те два которые с метадата 1.2 ( по умолчанию) - не поднимаются сами. стал быть - есть разница в этом аспекте...

wisedraco ★★ ()
Ответ на: комментарий от wisedraco

Разница есть. но метадата 0.90 работает только для девайсов размером до 2Тб. Так что не всегда можно 0.90 использовать.

ubiquitine ()
Ответ на: комментарий от wisedraco

нема у нас в инит.д ничего с райдами связанного

Попробуйте:

mdadm --stop /dev/md2

mdadm --verbose --force --assemble /dev/md2 /dev/sda2

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.