linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Fwd: starting an array on Linux, advise needed
@ 2004-01-16 23:46 Arkadiusz Miskiewicz
  2004-01-16 23:55 ` Luca Berra
  2004-01-17  0:04 ` Guy
  0 siblings, 2 replies; 6+ messages in thread
From: Arkadiusz Miskiewicz @ 2004-01-16 23:46 UTC (permalink / raw)
  To: linux-raid

I've asked Neil about that previously but he didn't respond, so I'm asking here....

----------  Przekazana wiadomość  ----------

Subject: starting an array on Linux, advise needed
Date: pon 15. grudnia 2003 13:35
From: Arkadiusz Miskiewicz <arekm@pld-linux.org>
To: neilb@cse.unsw.edu.au

Hi,

I need smallest possible version of tool for starting md array on Linux.
 Right now I'm doing:

raid_start /dev/md0 /dev/hda1 /dev/hdb1 /dev/hdc1

and code does
fd_md = open(argv[1], O_RDWR, 0);

for (i = 2; i < argc; i++) {
       if (stat(argv[i], &st)) {
                       bb_perror_msg("error stating raid builing device
 `%s'", argv[i]);
                       continue;
        }

        if (ioctl(fd_md, START_ARRAY, (unsigned long) st.st_rdev) == -1) {
                       bb_perror_msg("error starting raid device `%s:%s'",
argv[1], argv[i]);
                       continue;
         }
         return 0;
}

return 1;

so it starts using first working device and tries to assemble array from
 other devices found in superblock.

Unfortunately there are some hard disk controllers which on 2.4
provide /dev/hdX devices while on 2.6 these are visible as /dev/sdX so even
raid_start /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 won't work because it will
try to use /dev/sda1 and hdb1+hdc1 (from superblock).

How simplest possible version should look like - is this below ok?

fd_md = open(argv[1], O_RDWR, 0);
ioctl(fd_md, SET_ARRAY_INFO, NULL);
for (i = 2; i < argc; i++) {
       stat(argv[i], &disk);
       ioctl(fd_md, ADD_NEW_DISK, &disk);
}
ioctl(fd_md, RUN_ARRAY, NULL);

and what if some of these ioctls fails - would be safe to do
ioctl(fd_md, STOP_ARRAY, NULL)?

Thanks for help.
--
Arkadiusz Miśkiewicz    CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org AM2-6BONE, 1024/3DB19BBD, arekm(at)ircnet, PLD/Linux

-------------------------------------------------------

The other problem is that after switching from 2.4.21 to 2.6.1 I got:
FS: Mounted root (romfs filesystem) readonly.
+ insmod /lib/modumd: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
les/2.6.1-1.csetraid5: measuring checksumming speed
20040116_0629smp   8regs     :   916.000 MB/sec
/kernel/drivers/   8regs_prefetch:   732.000 MB/sec
md/md.ko
Using    32regs    :   408.000 MB/sec
/lib/modules/2.6   32regs_prefetch:   400.000 MB/sec
.1-1.cset2004011   pIII_sse  :   996.000 MB/sec
6_0629smp/kernel   pII_mmx   :  1252.000 MB/sec
/drivers/md/md.k   p5_mmx    :  1308.000 MB/sec
o
+ insmod /libraid5: using function: pIII_sse (996.000 MB/sec)
/modules/2.6.1-1md: raid5 personality registered as nr 4
.cset20040116_06SCSI subsystem initialized
29smp/kernel/drivers/md/xor.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/xor.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/raid5.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/raid5.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/scsi_mod.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/scsi_mod.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/sd_mod.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/sd_mod.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/jbd/jbd.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/jbd/jbd.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/mbcache.kmd: could not lock unknown-block(8,34).
o
Using /lib/momd: could not import unknown-block(8,34)!
dules/2.6.1-1.csmd: autostart unknown-block(0,2082) failed!
et20040116_0629smd: could not lock unknown-block(8,18).
mp/kernel/fs/mbcmd: could not import unknown-block(8,18)!
ache.ko
+ insmomd: autostart unknown-block(0,2066) failed!
d /lib/modules/2md: could not lock unknown-block(8,2).
.6.1-1.cset20040md: could not import unknown-block(8,2)!
116_0629smp/kernmd: autostart unknown-block(0,2050) failed!
el/fs/ext3/ext3.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/ext3/ext3.ko
+ raid_start /dev/md0 /dev/sdc2 /dev/sdb2 /dev/sda2
raid_start: error starting raid device `/dev/md0:/dev/sdc2': Invalid argument
raid_start: error starting raid device `/dev/md0:/dev/sdb2': Invalid argument
raid_start: error starting raid device `/dev/md0:/dev/sda2': Invalid argument
romfs: unable to read superblock
EXT3-fs: unable to read superblock
Kernel panic: VFS: Unable to mount root fs on md0

(kernel messages are unfortunately mixed with messages from userspace apps)
-- 
Arkadiusz Miśkiewicz    CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org AM2-6BONE, 1024/3DB19BBD, arekm(at)ircnet, PLD/Linux
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Fwd: starting an array on Linux, advise needed
  2004-01-16 23:46 Fwd: starting an array on Linux, advise needed Arkadiusz Miskiewicz
@ 2004-01-16 23:55 ` Luca Berra
  2004-01-17  0:04 ` Guy
  1 sibling, 0 replies; 6+ messages in thread
From: Luca Berra @ 2004-01-16 23:55 UTC (permalink / raw)
  To: linux-raid

On Sat, Jan 17, 2004 at 12:46:45AM +0100, Arkadiusz Miskiewicz wrote:
>I need smallest possible version of tool for starting md array on Linux.
> Right now I'm doing:
>
i developed and use this patch to mdadm
http://cgi.cse.unsw.edu.au/~neilb/source/mdadm/patch/applied/001mdadm-1.3.0-diet.diff

-- 
Luca Berra -- bluca@comedia.it
        Communication Media & Services S.r.l.
 /"\
 \ /     ASCII RIBBON CAMPAIGN
  X        AGAINST HTML MAIL
 / \

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: starting an array on Linux, advise needed
  2004-01-16 23:46 Fwd: starting an array on Linux, advise needed Arkadiusz Miskiewicz
  2004-01-16 23:55 ` Luca Berra
@ 2004-01-17  0:04 ` Guy
  2004-01-17  0:34   ` Michael Tokarev
  1 sibling, 1 reply; 6+ messages in thread
From: Guy @ 2004-01-17  0:04 UTC (permalink / raw)
  To: 'Arkadiusz Miskiewicz', linux-raid

I found this old message, it may help.
======================================
http://www.corpit.ru/mjt/mdctl.c - a very small utility similar to raidtools
suite.  I wrote this program to use it inside an initrd to bring raid arrays
up at boot time - where the size of executable and simplicity is at premium.
Differences between this implementation and raidtools are:

  - size.  When compiled with dietlibc, executable is about
    7kb on i386.

  - it does not have mkraid utility and other fun stuff.
    Supported are
    - raidstart
    - raidstop
    - raidhot{add,remove,generateerror)
    - raidsetfaulty
   i.e., only "simple" commands - just ioctls in fact.

  - it uses NO config file like all the raidtools suite.
    I.e., it is more like mdadm in this respect.  All
    parameters are accepted in the command line.  This
    makes the utility handy inside read-only boot-time
    environment (you may e.g. parse md=... kernel
    parameter and convert it into mdctl commandline)

  - `mdctl start' tries to bring an array using ALL components
    of the array given in the command line, until successeful
    (raidstart tries only first component, and if that is missing
    but other component(s) are available, operation will fail).

Usage:

  mdctl start /dev/mdN /dev/hda1 /dev/hdb1 /dev/hdc1
    equivalent to md=N,/dev/hda1,/dev/hdb1,/dev/hdc1 boot
    parameter, but you can't specify raid level (it will
    be read from the superblock), and kernel may choose to
    bring up another mdN (as indicated by super-minor)

  mdctl {stop,readonly,ro,readwrite,rw} /dev/mdN

  mdctl {add,remove,setfaulty,generaterror} /dev/mdN /dev/hda1

This tiny code released under GPL licence... in a hope it will be useful to
someone else too, not only to me ;)

Enjoy.

/mjt

-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the
body of a message to majordomo@vger.kernel.org More majordomo info at
http://vger.kernel.org/majordomo-info.html

-----Original Message-----
From: linux-raid-owner@vger.kernel.org
[mailto:linux-raid-owner@vger.kernel.org] On Behalf Of Arkadiusz Miskiewicz
Sent: Friday, January 16, 2004 6:47 PM
To: linux-raid@vger.kernel.org
Subject: Fwd: starting an array on Linux, advise needed

I've asked Neil about that previously but he didn't respond, so I'm asking
here....

----------  Przekazana wiadomość  ----------

Subject: starting an array on Linux, advise needed
Date: pon 15. grudnia 2003 13:35
From: Arkadiusz Miskiewicz <arekm@pld-linux.org>
To: neilb@cse.unsw.edu.au

Hi,

I need smallest possible version of tool for starting md array on Linux.
 Right now I'm doing:

raid_start /dev/md0 /dev/hda1 /dev/hdb1 /dev/hdc1

and code does
fd_md = open(argv[1], O_RDWR, 0);

for (i = 2; i < argc; i++) {
       if (stat(argv[i], &st)) {
                       bb_perror_msg("error stating raid builing device
 `%s'", argv[i]);
                       continue;
        }

        if (ioctl(fd_md, START_ARRAY, (unsigned long) st.st_rdev) == -1) {
                       bb_perror_msg("error starting raid device `%s:%s'",
argv[1], argv[i]);
                       continue;
         }
         return 0;
}

return 1;

so it starts using first working device and tries to assemble array from
 other devices found in superblock.

Unfortunately there are some hard disk controllers which on 2.4
provide /dev/hdX devices while on 2.6 these are visible as /dev/sdX so even
raid_start /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 won't work because it will
try to use /dev/sda1 and hdb1+hdc1 (from superblock).

How simplest possible version should look like - is this below ok?

fd_md = open(argv[1], O_RDWR, 0);
ioctl(fd_md, SET_ARRAY_INFO, NULL);
for (i = 2; i < argc; i++) {
       stat(argv[i], &disk);
       ioctl(fd_md, ADD_NEW_DISK, &disk);
}
ioctl(fd_md, RUN_ARRAY, NULL);

and what if some of these ioctls fails - would be safe to do
ioctl(fd_md, STOP_ARRAY, NULL)?

Thanks for help.
--
Arkadiusz Miśkiewicz    CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org AM2-6BONE, 1024/3DB19BBD, arekm(at)ircnet, PLD/Linux

-------------------------------------------------------

The other problem is that after switching from 2.4.21 to 2.6.1 I got:
FS: Mounted root (romfs filesystem) readonly.
+ insmod /lib/modumd: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
les/2.6.1-1.csetraid5: measuring checksumming speed
20040116_0629smp   8regs     :   916.000 MB/sec
/kernel/drivers/   8regs_prefetch:   732.000 MB/sec
md/md.ko
Using    32regs    :   408.000 MB/sec
/lib/modules/2.6   32regs_prefetch:   400.000 MB/sec
.1-1.cset2004011   pIII_sse  :   996.000 MB/sec
6_0629smp/kernel   pII_mmx   :  1252.000 MB/sec
/drivers/md/md.k   p5_mmx    :  1308.000 MB/sec
o
+ insmod /libraid5: using function: pIII_sse (996.000 MB/sec)
/modules/2.6.1-1md: raid5 personality registered as nr 4
.cset20040116_06SCSI subsystem initialized
29smp/kernel/drivers/md/xor.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/xor.ko
+ insmod
/lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/raid5.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/md/raid5.ko
+ insmod
/lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/scsi_mod.ko
Using
/lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/scsi_mod.ko
+ insmod
/lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/sd_mod.ko
Using
/lib/modules/2.6.1-1.cset20040116_0629smp/kernel/drivers/scsi/sd_mod.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/jbd/jbd.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/jbd/jbd.ko
+ insmod /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/mbcache.kmd:
could not lock unknown-block(8,34).
o
Using /lib/momd: could not import unknown-block(8,34)!
dules/2.6.1-1.csmd: autostart unknown-block(0,2082) failed!
et20040116_0629smd: could not lock unknown-block(8,18).
mp/kernel/fs/mbcmd: could not import unknown-block(8,18)!
ache.ko
+ insmomd: autostart unknown-block(0,2066) failed!
d /lib/modules/2md: could not lock unknown-block(8,2).
.6.1-1.cset20040md: could not import unknown-block(8,2)!
116_0629smp/kernmd: autostart unknown-block(0,2050) failed!
el/fs/ext3/ext3.ko
Using /lib/modules/2.6.1-1.cset20040116_0629smp/kernel/fs/ext3/ext3.ko
+ raid_start /dev/md0 /dev/sdc2 /dev/sdb2 /dev/sda2
raid_start: error starting raid device `/dev/md0:/dev/sdc2': Invalid
argument
raid_start: error starting raid device `/dev/md0:/dev/sdb2': Invalid
argument
raid_start: error starting raid device `/dev/md0:/dev/sda2': Invalid
argument
romfs: unable to read superblock
EXT3-fs: unable to read superblock
Kernel panic: VFS: Unable to mount root fs on md0

(kernel messages are unfortunately mixed with messages from userspace apps)
-- 
Arkadiusz Miśkiewicz    CS at FoE, Wroclaw University of Technology
arekm.pld-linux.org AM2-6BONE, 1024/3DB19BBD, arekm(at)ircnet, PLD/Linux
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: starting an array on Linux, advise needed
  2004-01-17  0:04 ` Guy
@ 2004-01-17  0:34   ` Michael Tokarev
  2004-01-17  0:48     ` Michael
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Tokarev @ 2004-01-17  0:34 UTC (permalink / raw)
  To: linux-raid

Guy wrote:
> I found this old message, it may help.
> ======================================
> http://www.corpit.ru/mjt/mdctl.c - a very small utility similar to raidtools

Note it will not work correctly in the situation described.
Or at least it may not work.  For the same reason as original
code does not work: "renamed" devices in 2.4 vs 2.6.

With raidstart (and this utility follows it logic), it is the
kernel who is reading the raid superblock, opening devices
and assembles the array.  Most important part is the superblock:
kernel will pick up any devices found there (by major/minor
number).  When booting 2.4 and 2.6, or when your devices are
using dynamically-assigned numbers, that numbers may be different
on next reboot, so kernel will not be able to find all required
devices.

While mdadm tries to examine all superblocks and find all
devices in between the ones listed on command line, in the
superblock or ones that are really present on your system
at any given time (--scan; depends on your mdadm.conf also).

So when you expect your device names/numbers to be instable
between reboots, it's best to use mdadm together with --scan
and proper mdadm.conf or with all possible devices listed in
command line.  Mdassemble by Luca Berra will be useful here
too.

/mjt

P.S.  Please trim original message somehow when replying.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: starting an array on Linux, advise needed
  2004-01-17  0:34   ` Michael Tokarev
@ 2004-01-17  0:48     ` Michael
  2004-01-17  2:04       ` Guy
  0 siblings, 1 reply; 6+ messages in thread
From: Michael @ 2004-01-17  0:48 UTC (permalink / raw)
  To: linux-raid

> Guy wrote:
> > I found this old message, it may help.
> > ======================================
> > http://www.corpit.ru/mjt/mdctl.c - a very small utility similar to raidtools
> 
> Note it will not work correctly in the situation described.
> Or at least it may not work.  For the same reason as original
> code does not work: "renamed" devices in 2.4 vs 2.6.

<snip>

I've been following this thread for a while and have now become a bit 
confused. What are the implications for an autostart array marked 
'FD' in 2.6 ?? Will it start correctly? hmmm.... I think I missed 
something in the discussion..... How does one specify the raidtab 
under this circumstance if the device names are not stable.

Michael
Michael@Insulin-Pumpers.org

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: starting an array on Linux, advise needed
  2004-01-17  0:48     ` Michael
@ 2004-01-17  2:04       ` Guy
  0 siblings, 0 replies; 6+ messages in thread
From: Guy @ 2004-01-17  2:04 UTC (permalink / raw)
  To: michael, linux-raid

raidtab? 
Your sad devotion to that ancient software has not helped you conjure up the
superblocks.

Read:
	man mdadm

I have this line in my mdadm.conf:
	DEVICE /dev/sd[abcdefghijklmnopqrstuvwxyz][12]
It handles the first 2 partitions of the first 26 SCSI disks!
I only have 17 disks, most only have 1 partition, some have 2.


-----Original Message-----
From: linux-raid-owner@vger.kernel.org
[mailto:linux-raid-owner@vger.kernel.org] On Behalf Of Michael
Sent: Friday, January 16, 2004 7:48 PM
To: linux-raid@vger.kernel.org
Subject: Re: starting an array on Linux, advise needed

> Guy wrote:
> > I found this old message, it may help.
> > ======================================
> > http://www.corpit.ru/mjt/mdctl.c - a very small utility similar to
raidtools
> 
> Note it will not work correctly in the situation described.
> Or at least it may not work.  For the same reason as original
> code does not work: "renamed" devices in 2.4 vs 2.6.

<snip>

I've been following this thread for a while and have now become a bit 
confused. What are the implications for an autostart array marked 
'FD' in 2.6 ?? Will it start correctly? hmmm.... I think I missed 
something in the discussion..... How does one specify the raidtab 
under this circumstance if the device names are not stable.

Michael
Michael@Insulin-Pumpers.org
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-01-17  2:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-16 23:46 Fwd: starting an array on Linux, advise needed Arkadiusz Miskiewicz
2004-01-16 23:55 ` Luca Berra
2004-01-17  0:04 ` Guy
2004-01-17  0:34   ` Michael Tokarev
2004-01-17  0:48     ` Michael
2004-01-17  2:04       ` Guy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).