From: Peter Braam <Peter.Braam@Sun.COM>
To: lustre-devel@lists.lustre.org
Subject: [Lustre-devel] Lustre HSM HLD draft
Date: Thu, 28 Feb 2008 21:30:45 -0700 [thread overview]
Message-ID: <C3ECD885.117D%peter.braam@sun.com> (raw)
In-Reply-To: <47C594F8.20409@cea.fr>
The discussion below about the API's is a standard element of data
abstraction taught in advanced programming courses (see e.g. Abelson et.
al. Structure and Interpretation of Computer Programs (SICP)).
From this one concludes that the coordinator and agents will use abstract
data types and call abstract methods that accommodate multiple:
- source and destination descriptors for the data
- data movers implementing the methods to move data
If you proceed along the lines you outline you will get a big matrix of
movers and data types to keep track of. If you follow my approach you will
encapsulate things much more cleanly.
Think in terms of virtual classes data movers acting on source and
destination objects.
- peter -
On 2/27/08 9:51 AM, "Aurelien Degremont" <aurelien.degremont@cea.fr> wrote:
>
> Peter J Braam a ?crit :
>>> Coordinator:
>>>
>>> This element will manage migration externally (HSM) and internally of
>>> Lustre (space balancing?). Is the current API acceptable (specific
>>> calls for external migration, and other ones for internal migration)?
>> I would like to see a parameter indicating what agent will be used and
>> keep all other parameters the same.
>
> Agreed.
>
>>> The best way could have been to have generic call for migration, but
>>> we must also have generic objects to describe the migration sources
>>> and destinations and those are not simples.
>> For migration to and from external sources, Lustre must already manage
>> this data in an extended attribute (e.g. to describe the file on tape to
>> which a Lustre file was migrated). This data is opaque to Lustre and
>> can be passed as a blob.
>>> It seems, to support Lustre internal migration, you have planned to
>>> implement specific Agents which will reside on OST.
>> To avoid many complications involving locks, we decided that even the
>> agents used for internal migrations will layer on the file system. The
>> Lustre file system will be mounted on the OST's and it will use the
>> "LOLND" to transport the data efficiently between the OST process and
>> the client file system cache. In the internal case source and
>> destination lie in Lustre in the HSM case only one of them.
>>
>> As a result I believe these two cases are closer together than you may
>> think, and should be one "type".
>
>
> If we unify the API, we must have a way to request some data movement like:
>
> copy elemA in placeP
> copy elemA,stored in placeP bak into Lustre
> copy elemA into placeC
> move elemB into elemB
>
>
> The elem could be unified using Lustre FID, but the places could be an
> external storage, or a precise OST. If we want a unify API, the API call
> should manipulate a generic object which could describe a Lustre storage
> element (ost) or a external storage (hsm,...)
>
> ie:
> struct storage_place {
> ...
> }
> copy(fid,storage_place*)
> move(fid,storage_place*)
>
> and their is some specific cases to handle. The other possibity:
>
> ext_copyout(fid, external storage)
> ext_copyin(fid, external object)
> int_copy(fid, fid, ost)
> int_move(fid, fid, ost)
>
> I think this one, even if the design is not the most beautiful one, if
> the easiest one.
>
> Instead you want to create some new generic objects to manipulate lustre
> object data and generic storage areas, the second case is the best one IMO.
>
next prev parent reply other threads:[~2008-02-29 4:30 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-07 10:52 [Lustre-devel] Lustre HSM HLD draft DEGREMONT Aurelien
2008-02-08 21:18 ` Nathaniel Rutman
2008-02-11 14:59 ` Aurelien Degremont
2008-02-11 20:33 ` Nathaniel Rutman
2008-02-12 3:55 ` Andreas Dilger
2008-02-12 11:04 ` Eric Barton
2008-02-12 15:25 ` Aurelien Degremont
2008-02-12 17:23 ` Andreas Dilger
2008-02-12 19:43 ` Eric Barton
2008-02-12 23:24 ` Nathaniel Rutman
2008-02-18 21:51 ` Canon, Richard Shane
2008-02-19 17:13 ` Aurelien Degremont
2008-02-25 22:44 ` Peter J Braam
2008-02-21 15:26 ` Aurelien Degremont
2008-02-25 22:38 ` Peter J Braam
2008-02-27 16:51 ` Aurelien Degremont
2008-02-29 4:30 ` Peter Braam [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-02-07 16:19 Rick Matthews
2008-02-08 0:03 ` JC.LAFOUCRIERE at CEA.FR
2008-02-08 11:52 ` Rick Matthews
2008-02-08 15:55 ` Aurelien Degremont
2008-02-11 18:18 ` Andreas Dilger
2008-02-11 19:38 ` Peter Braam
2008-02-11 21:11 ` Ricardo M. Correia
2008-02-11 21:39 ` Andreas Dilger
2008-02-11 22:07 ` Ricardo M. Correia
2008-02-11 22:32 ` Nathaniel Rutman
2008-02-11 22:46 ` Rick Matthews
2008-02-12 15:41 ` Aurelien Degremont
2008-02-12 0:25 ` Ricardo M. Correia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C3ECD885.117D%peter.braam@sun.com \
--to=peter.braam@sun.com \
--cc=lustre-devel@lists.lustre.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.