Portál AbcLinuxu, 2. listopadu 2025 20:08
Řešení dotazu:
mdadm -D /dev/mdX
by mel ukazat Raid Devices : 2
Pokud ne, zkusil bych
mdadm --grow -n 2 /dev/mdX
V nejhorsim pripade partition vyhodit z pole a pustit na ni mdadm --zero-superblock /dev/sdXY (s tim zamozrejme opatrne).
Btw v tom vadnem poli je opravdu jen jedna aktivni partition a jedna jako spare? Zadna jina? Pro priste by bylo vhodne k dotazu rovnou pripojit alespon cat /proc/mdstat, idealne i mdadm -D /dev/mdX
/dev/md1:
Version : 1.2
Creation Time : Wed Aug 28 14:37:28 2013
Raid Level : raid1
Array Size : 9756544 (9.30 GiB 9.99 GB)
Used Dev Size : 9756544 (9.30 GiB 9.99 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Jan 21 17:12:07 2016
State : clean, degraded
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Name : gameserver-slave:1 (local to host gameserver-slave)
UUID : 15ffbfb4:04d61b3d:cd9bd34d:eb2aa7d0
Events : 1352
Number Major Minor RaidDevice State
0 8 5 0 active sync /dev/sda5
1 0 0 1 removed
2 8 21 - spare /dev/sdb5
--zero-superblock /dev/sdb5 som použil na úvod .
:
mdadm --grow --force -n 1 /dev/md1
mdadm /dev/md1 -a /dev/sdb5
mdadm --grow -n 2 /dev/md1
A dostal som sa tam, kde som bol na začiatku.
mdadm /dev/md1 -r /dev/sdb5 mdadm --grow -n 2 --force /dev/md1 mdadm /dev/md1 -a /dev/sdb5
cat /proc/mdstat by se hodil
opensuse64:~ # mkdir test_raid
opensuse64:~ # cd test_raid/
opensuse64:~/test_raid # dd if=/dev/zero of=disk1 bs=10M count=1
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 0.0480564 s, 218 MB/s
opensuse64:~/test_raid # dd if=/dev/zero of=disk2 bs=10M count=1
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 0.0295233 s, 355 MB/s
opensuse64:~/test_raid # losetup -f disk1
opensuse64:~/test_raid # losetup -f disk2
opensuse64:~/test_raid # mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop0 /dev/loop1
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
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop1[1] loop0[0]
10176 blocks super 1.2 [2/2] [UU]
unused devices: <none>
opensuse64:~/test_raid # mdadm --manage /dev/md0 --fail /dev/loop1
mdadm: set /dev/loop1 faulty in /dev/md0
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop1[1](F) loop0[0]
10176 blocks super 1.2 [2/1] [U_]
unused devices: <none>
opensuse64:~/test_raid # mdadm --manage /dev/md0 --remove /dev/loop1
mdadm: hot removed /dev/loop1 from /dev/md0
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop0[0]
10176 blocks super 1.2 [2/1] [U_]
unused devices: <none>
opensuse64:~/test_raid # mdadm --zero-superblock /dev/loop1
opensuse64:~/test_raid # mdadm -E /dev/loop1
mdadm: No md superblock detected on /dev/loop1.
opensuse64:~/test_raid # mdadm --grow --force -n 1 /dev/md0
raid_disks for /dev/md0 set to 1
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop0[0]
10176 blocks super 1.2 [1/1] [U]
unused devices: <none>
opensuse64:~/test_raid # mdadm /dev/md0 -a /dev/loop1
mdadm: added /dev/loop1
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop1[1](S) loop0[0]
10176 blocks super 1.2 [1/1] [U]
unused devices: <none>
opensuse64:~/test_raid # mdadm --grow -n 2 /dev/md0
raid_disks for /dev/md0 set to 2
opensuse64:~/test_raid # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 loop1[1] loop0[0]
10176 blocks super 1.2 [2/2] [UU]
unused devices: <none>
Personalities : [raid1]
md10 : active raid1 sdb9[1]
390497216 blocks super 1.2 [2/1] [_U]
md9 : active raid1 sdb8[1]
146349440 blocks super 1.2 [2/1] [_U]
md8 : active raid1 sdb7[1]
146349440 blocks super 1.2 [2/1] [_U]
md7 : active raid1 sdb6[1]
48796672 blocks super 1.2 [2/1] [_U]
md6 : active raid1 sdb5[1]
19518528 blocks super 1.2 [2/1] [_U]
md5 : active raid1 sdb1[1]
192576 blocks super 1.2 [2/1] [_U]
md3 : active raid1 sda10[2]
97593472 blocks super 1.2 [2/1] [U_]
md4 : active raid1 sda9[0]
97593472 blocks super 1.2 [2/1] [U_]
md2 : active raid1 sda6[0]
97589120 blocks super 1.2 [2/1] [U_]
md1 : active raid1 sda5[0]
9756544 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
96128 blocks super 1.2 [2/1] [U_]
md5 a vyššie som založi na to, aby som súbory z /dev/sda, na ktorom som zistil chyby čítania, ktoré som uviedol nižšie, dostal na /dev/sdb na raid partície, aby som pri výmene mohol len vymaniť /dev/sda a zrekonštruovať pole. Ale v /dev/sdb sú všetky partície vytvorené nanovo po zistení chyby na /dev/sda.
mdadm --grow --force -n 1 /dev/md1 mdadm /dev/md1 -a /dev/sdb5 mdadm --grow -n 2 /dev/md1Ty poslední dva řádky by měly být v opačném pořadí, ne? Abyste nejprve nastavil, že chcete 2 disky v poli, a pak přidal tu chybějící partition...
man mdadm:
For Manage mode:
-a, --add
hot-add listed devices. If a device appears to have recently been part of the array (possibly it failed or was removed) the device is re-added as described in the next point. If that fails or the device was never part of the array, the device is added as a hot-spare. If the array is degraded, it will immediately start to rebuild data onto that spare.
Protože "If that fails ..., the device is added as a hot-spare." je přidávání zastaveno a disk je hot-spare.
mdadm /dev/md1 --remove detached ? Pripadne predtim mdadm /dev/md1 --fail detached .
Chyba je samozrejme v tom removed device, ktere by v pripade chyby bylo faulty removed a doslo by k jeho nahrazeni novym diskem. Takhle si pole mysli, ze ma dva disky ze dvou a nema potrebu aktivovat dalsi disk.
Pravdepodobne jsi neco nestandardniho udelal pri uvodnim rozebirani pole (v dotazu neni blizsi info o tom k cemu doslo - mozna ti failnul jeden z raidu a aniz bys rucne rozebral i ostatni pole, disk jsi rovnou vymenil?)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.