RE: create metadata from DMRAID

"Kulkarni, Sunil A" <[email protected]>
Newsgroups gmane.linux.ataraid
Message-ID <4D97B70CF7F72144881F66DFF4BD7A120246D49D@fmsmsx413.amr.corp.intel.com>
Is .write being used by any format handlers currently ? If .write is
used to write the complete metadata, then it can be used to create the
metadata also, right ? 

Also, instead of 'dmraid -C isw_xxxxxx_raidSet1 .....'
How about  'dmraid -C VolumeName ...'
And then isw can prepend isw_xxxxxx to the volume name to make
isw_xxxxx_VolumeName
This way, different format handlers can make up their own string and one
need not give isw specific string from the command line (since isw_xxxxx
is generated internally by isw anyway).

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Heinz Mauelshagen
Sent: Monday, July 02, 2007 3:45 AM
To: Fang, Ying
Cc: ATARAID (eg, Promise Fasttrak, Highpoint 370) related discussions
Subject: Re: create metadata from DMRAID

On Sun, Jul 01, 2007 at 11:41:34PM -0700, Fang, Ying wrote:
> >> 2. A metadata handler needs build metadata based on several data
such
> as
> >> raid set name, raid level, size, etc. Can they be carried into as a
> >> string argument or a field in "struct lib_context"? It's possible
to
> >> build disk sets, raid device sets, and raid set sets too.
> >
> >No, a create_set() function needs adding to the library, which can
> >be called with a struct holding the respective parameters and lists
of
> >devices involved.
> >
> >That function will derive properties of raid_dev arguments
> >for the metadata format handler .create method.
> >
> >commands.[ch] need the respective extensions to support
> >the "-C/--create" command line option.
> >
> >> 3. Can I design my own option format to create metadata by DMRAID
> such
> >> as:"dmraid -ms isw_xxxxxx_raidSet1" (d and D have been used.) to
> delete
> >> a raid set and "dmraid -f isw -w "isw_xxxx_raidNewSet device-mapper
> >> format" where device-mapper format is "0 1028160 striped 2 256
> /dev/sdb
> >> 0 /dev/sdc 0". But I have trouble for nested raid setup and try to
> use
> >> raid10 or raid51 to identify it.
> >
> >To create a RAID set:
> >dmraid -C isw_xxxxxx_raidSet1 [--layout LAYOUT] [--size X[kmgt]]
> >[DevicePath...]
> >
> >LAYOUT = string types defined in metadata.c (see get_type() function;
> >eg. "mirror").
> >X = size in KB, MB, GB, TB.
> >
> >In the isw case, which is different from most other metadata format
> >handlers
> >but DDF1, isw.c's create method would need to cover more complex
> >allocation,
> >because other volumes might already be on the devices.
> >
> >To delete a specific RAID set we can add to the existing erase
option:
> >
> >dmraid -rE isw_xxxxxx_raidSet1
> >
> 
> 
> Let me rephrase what you've said. The input of DMRAID includes all
> necessary attributes of a raid set (called volume in ISW) to be
created.
> An internal function, create_set, grabs user's choices and fills into
a
> data structure, e.g. struct raidset_attr.

The data structure already exist: raid_set and raid_dev.
For one-level sets, a raid_set structure with multiple raid_dev
structures hanging off.
For 2-level sets (eg. RAID10), a top-level raid_set structure, multiple
bottom level raid_set structures hanging off it and multiple raid_dev
structures hanging off the bottom level ones.

You got to check, if the properties (ie. the structure mebers) are
sufficient or if we need to add some.

> Then it calls .create of an
> appropriate handler to build and write metadata to each hard device of
> the raid set. 

It calls a) .create and of that succeeds it'll call b) .write
in a followup step.

> 
> Also struct raidset_attr should cover parameters used to setup spare
> devices, resize an old raid set, and migrate non-raid device to a raid
> set, etc. 

All in raid_set and raid_dev.

> 
> How about manual and auto rebuilding? Should updating metadata status
be
> handled by DMRAID or device drivers?

By dmraid using dmeventd, which is part of libdevmapper.
You got to create a dmraid DSO for dmeventd to make that happen.
Look at the mirror DSO for dmeventd for an example.

Heinz

> 
> 
> Thanks,
> Ying

_______________________________________________
Ataraid-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/ataraid-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.