mdadm hiba - nem lehetséges új tömb hozzáadása

Fórumok

Sziasztok,

adott egy 10.10-es gép, amin software-raid-ot szeretnék használni. Az alaplapnak van 6 SATA csatlakozója, ebböl az elös kettö tud valami extrát is.

Amikor installáltam a 10.10-est, a HDD-k az 1-es és 2-es porton voltak, de a 2-es porton nem ismerte fel a merevlemezt. Ezzel nem foglalkoztam tovább, mert úgy tudtam, késöbb is hozzá lehet adni a 2. merevlemezt a raid1-es tömbhöz.

Megtalálva az alaplap leírását átraktam a HDD-ket a 3, 4-es portra, most mindkettöt felismeri. Gondoltam minden jó, átmásoltam a pariciós tabellát a /dev/sda-ról /dev/sdb-re és gondoltam jöhet a rebuild.

Erre a parancsra

mdadm /dev/md0 -a /dev/sdb1

azonban ez a válasz:

Error adding spare: mdadm exited with exit code 1: mdadm: add new device failed for /dev/sdb as 1: Invalid argument

Erre nem sokat találtam gugliban, az egyetlen használható tipp ez (bár raid5-re vonatkozik):
Just in case there is Ubuntu readers, they need to know that RAID5 array reshaping is disabled in the stock kernels, giving an “invalid argument” error when trying to grow the array. So they need to compile a custom kernel and enable the option CONFIG_MD_RAID5_RESHAPE=y in the .config file. Note that kernel 2.6.17 or above is required.

Ha lehet, elkerülném a saját kernel gyártását, ha van valakinek tippje a problémához...

Elöre is köszi!

Hozzászólások

Gondoltam minden jó, átmásoltam a pariciós tabellát a /dev/sda-ról /dev/sdb-re és gondoltam jöhet a rebuild.
ezt hogy? part tablat ne masolj csak ugy, hacsak nem tudod hogy mit csinalsz. `fdisk -l /dev/sda`, majd `fdisk /dev/sdb`, es szerkezd meg szepen egyesevel a bejegyzeseket.

ha csak pri particioid vannak (/dev/sda[1234]), akkor ugyan elvileg az elso 512 byte atmasolasa atmasolja a particios tablat is, de ha van extended (5+), akkor nem.

Error adding spare: mdadm exited with exit code 1: mdadm: add new device failed for /dev/sdb as 1: Invalid argument
maga az sdb mennyire hasznalhato? `ls -l /dev/sdb*` mit mond? `fdisk -l /dev/sdb` mit mond?

a


bbking@aquamaniac:/usr/src/linux$ ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 2010-11-28 00:10 /dev/sdb


bbking@aquamaniac:/usr/src/linux$ sudo fdisk -l /dev/sdb
[sudo] password for bbking:
Warnung: Schreiben wird ungültiges Flag 0x0000 in Part.-tabelle 5 korrigieren

Platte /dev/sdb: 1000.2 GByte, 1000204886016 Byte
255 Köpfe, 63 Sektoren/Spur, 121601 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a4f97

Gerät boot. Anfang Ende Blöcke Id System
/dev/sdb1 * 1 120852 970737664 fd Linux raid autodetect
/dev/sdb2 120852 121602 6022145 5 Erweiterte

bocsi a német output-ért.. :)

Szerintem az a lenyeges reszt kihagytad a leirasbol, hogy hogyan es mibol hoztad letre az md0-at? Már akkor bele kellett volna venni az sdb-t,max faild-del, anelkul csak igy nem tudod hozzacsapni.
Mi a /proc/mdstat kimeneted most?


bbking@aquamaniac:/usr/src/linux$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sda1[0]
970737600 blocks 64k chunks

unused devices:

amit most nem nagyon értek....már régebben installáltam a gépet, nem emlékszem pontosan, hogy akkor mit állítottam be....

nekiálltam...sok órámba került, azt hittem siker, de mégse.

Most a következö a felállás:
-egyszer már szinkronizálódott az sda1 az sdb1-re
-utána újra indítás után mindig eltünt az egyik lemez a tömbböl. Rájöttem, talán az /etc/mdadm/mdadm.conf -ot és az /etc/fstab-ot még át kellene írni az új UUID-re -> megtörtént
- újraindításnál hirtelen valahonnan megint a RAID0-os konfig került elö, majd gondolom valamit eltoltam, mert már a következö hiba volt:


mdadm: no md superblock detected on /dev/md0

Most a következö lépéseket teszem, mindent az elejéröl:


mdadm -S /dev/md0
mdadm --zero-superblock --force /dev/sda1
mdadm --zero-superblock --force /dev/sdb1
sfdisk /dev/sda
sfdisk /dev/sdb


root@sysresccd /root % sfdisk /dev/sda
Disk /dev/sda: 121601 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 120851- 120852- 970737664 83 Linux
/dev/sda2 120851+ 121601- 750- 6022145 5 Extended
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 120851+ 121601- 750- 6022144 82 Linux swap / Solaris


root@sysresccd /root % sfdisk /dev/sdb
Disk /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sdb1 * 0+ 120851- 120852- 970737664 83 Linux
/dev/sdb2 120851+ 121601- 750- 6022145 5 Extended
/dev/sdb3 0 - 0 0 0 Empty
/dev/sdb4 0 - 0 0 0 Empty
/dev/sdb5 120851+ 121601- 750- 6022144 82 Linux swap / Solaris


mdadm --create /dev/md0 --level=1 --raid-devices2 /dev/sda1 /dev/sdb1


mdadm: /dev/sda1 appears to contain an ext2fs file system
size=970737600K mtime=Mon Nov 29 02:06:03 2010
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=970737600K mtime=Mon Nov 29 01:33:13 2010
Continue creating array?


y


mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.


root@sysresccd /root % mdadm -D /dev/md0


/dev/md0:
Update Time : Mon Nov 29 22:15:37 2010
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Rebuild Status : 0% complete

Name : sysresccd:0 (local to host sysresccd)
UUID : 52ff37b3:0ae4fa37:7864ad4d:38baebd5
Events : 0

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1


root@sysresccd /root % mount /dev/md0 /mnt/backup


mount: /dev/md0: can't read superblock

Idáig egyszer már eljutottam, akkor az


xfs_repair -L /dev/md0

nem segített.

Nem értem, miért nem jó a superblock, ha az mdadm -D /dev/md0 azt írja, hogy "Superblock is persistent" ?

Itt elakadtam....

Kezdek lassan kétségbe esni, hogy látom-e még az adataimat...


root@sysresccd /root % xfs_repair -n /dev/md0


Phase 1 - find and verify superblock...
bad primary superblock - bad magic number !!!

attempting to find secondary superblock...
........................................................................................................
..................................................Sorry, could not find valid secondary superblock
Exiting now.


root@sysresccd /root % xfs_db /dev/md0


xfs_db: /dev/md0 is not a valid XFS filesystem (unexpected SB magic number 0x00810000)


root@sysresccd /root % xfs_db /dev/sda1


xfs_db: /dev/sda1 is not a valid XFS filesystem (unexpected SB magic number 0x00000000)


root@sysresccd /root % xfs_db /dev/sdb1


xfs_db: /dev/sdb1 is not a valid XFS filesystem (unexpected SB magic number 0x00000000)

Amit eddig ki tudtam deríteni a superblock-ról, az az, hogy elég nagy gáz van, ha nem talál egy tartalék superblock-ot sem, és kb löttek az adatoknak...

Ha esetleg valaki tudna még tapasztalból pár dolgot mondani, nagy megköszönném!

Az én tapasztalatom az, hogy ennél sokkal kisebb operáció esetén is legalább egy backupot kell csinálni!
Hogy segítsek is, szerintem az történt, hogy az xfs szuperblokkodat felülírtad a raid szuperblokkjával. Nekem anno (nem xfs volt) az segített, hogy a mkfs-nek van (volt) olyan paramétere, hogy csináljon úgy, mintha megcsinálná, de ne írjon a lemezre. Ekkor kiírta, hogy hova tette a szuperblokk másolatokat és azok közül talán a 4. vag 5. jó volt és az fsck megjavította a fájlrendszert - persze néhány fájl odalett, de a lényeg megmenekült.

Ha a 10.10-est lehet rögtön féllábú raid1re telepíteni (nem a "gyári" partícionálással), akkor az "üres" diszkre nyomd fel, - külön boot, root, és az lv-ket tartalmazó (összesen) három primary partícióra.

Az fstab-ban az UUID helyett használj /dev/md-ket (írd át).

(én így raktam fel 10.04 servert)

Utána próbáld felcsatolni a "régi"-ről a kívánt partíciókat, és az új diszkre át másolni a megfelelő helyre.

Hátha, _csak_nem_látod_ most, de egyébként meg van.

Őőőő... itt ezt írod:

mdadm: /dev/sda1 appears to contain an ext2fs file system
size=970737600K mtime=Mon Nov 29 02:06:03 2010

fent meg xfs_repair-rel próbálkozol.

Azt passzolom, h az első válasz "csak" az mdadm slendriánsága, vagy tényleg ext* FS-t talált, de ha az utóbbi, akkor gondolom az xfs_* joggal h nem talál superblock-ot.

Amit eddig ki tudtam deríteni a superblock-ról, az az, hogy elég nagy gáz van
Nem tudom mennyit kerestél :), de ezt azért nem árt megérteni alaposabban: link.

a fájlrendszer az ext4 - nem is értettem, miért mondja, hogy nem ext2 (ami mondjuk igaz...)
az xfs-el azért próbálkoztam, mert sok helyen a neten ezt találtam, de igazából nem olvastam utána...:/

akkor megnézem, milyen eszköz van ext4-hez superblock helyreállításra

amit nem teljesen vágok: ha pl. egy fsck-t haszálok, akkor azt az md0-ra vagy egyenként sdda1/sdb1-re kell ráengedni?

mindenesetre köszi a válaszokat, majd írok az eredményekről....

nem is értettem, miért mondja, hogy nem ext2 (ami mondjuk igaz...)
huh, ezt nem igazán értem :)
az mdadm pont azt mondja hogy ott egy ext FS van.

az xfs-el azért próbálkoztam, mert sok helyen a neten ezt találtam
Szerintem nézz utána ezeknek a dolgoknak, mert ebből nagy gond lehet...

egy fsck-t haszálok, akkor azt az md0-ra vagy egyenként sdda1/sdb1-re kell ráengedni
Ráengedheted a raw diszkre/partícióra, ha "csak" az md réteg van az FS és az eszköz között. LVM esetén kicsit már necces lenne.