linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <Shyam_Iyer@Dell.com>
To: <vgoyal@redhat.com>
Cc: <rwheeler@redhat.com>, <linux-fsdevel@vger.kernel.org>,
	<linux-scsi@vger.kernel.org>
Subject: RE: [LSF/MM TOPIC] linux servers as a storage server - what's missing?
Date: Thu, 22 Dec 2011 20:35:07 -0800	[thread overview]
Message-ID: <DBFB1B45AF80394ABD1C807E9F28D157077DD22DED@BLRX7MCDC203.AMER.DELL.COM> (raw)
In-Reply-To: <20111223030632.GF12738@redhat.com>

> -----Original Message-----
> From: Vivek Goyal [mailto:vgoyal@redhat.com]
> Sent: Thursday, December 22, 2011 10:07 PM
> To: Iyer, Shyam
> Cc: rwheeler@redhat.com; linux-fsdevel@vger.kernel.org; linux-
> scsi@vger.kernel.org
> Subject: Re: [LSF/MM TOPIC] linux servers as a storage server - what's
> missing?
> 
> On Fri, Dec 23, 2011 at 02:24:42AM +0530, Shyam_Iyer@Dell.com wrote:
> >
> >
> > > -----Original Message-----
> > > From: linux-scsi-owner@vger.kernel.org [mailto:linux-scsi-
> > > owner@vger.kernel.org] On Behalf Of Vivek Goyal
> > > Sent: Thursday, December 22, 2011 10:59 AM
> > > To: Iyer, Shyam
> > > Cc: rwheeler@redhat.com; linux-fsdevel@vger.kernel.org; linux-
> > > scsi@vger.kernel.org
> > > Subject: Re: [LSF/MM TOPIC] linux servers as a storage server -
> what's
> > > missing?
> > >
> > > On Thu, Dec 22, 2011 at 01:44:16PM +0530, Shyam_Iyer@Dell.com
> wrote:
> > >
> > > [..]
> > >
> > > > Simple asks -
> > > > 1) Provide a consistent storage and fs management library that
> > > discourages folks to write their own usespace storage library.
> Include
> > > things like fs formatting(fs profiles), transport configuration(eg:
> > > iscsiadm as a library), thin provisioning watermarks, cluster
> > > management, apis for cgroups etc.
> > >                                       ^^^^^^^^^^^^^^^^
> > > For cgroups, we have libcgroup library. Not many people like to use
> it
> > > though as cgroup is exported as a filesystem and they prefer to use
> > > normal
> > > libc api to traverse and configure cgroups (Instead of going
> through
> > > another library). Some examples include libvrit, systemd.
> > >
> > > Thanks
> > > Vivek
> >
> > Well honestly I think that is a libvirt/systemd issue and libvirt
> also invokes things like iscsiadm, dcb etc as a binary :-/
> >
> > Some one could always use qemu command lines to invoke KVM/XEN but
> libvirt has saved me one too many days in doing a quick operation
> without wondering about a qemu commandline.
> >
> > I am also asking for ideas on how to avoid this fragmentation because
> just like libvirt others are also encouraged to do their own libc thing
> in the absence of a common storage management framework..
> >
> > Does the standard interface for linux end at the user/kernel boundary
> or the user/libc boundary? If so I feel we would continue to lag behind
> other OSes in features because of the model.
> 
> This is true only for IO cgroup management. There is not much to be
> done. For
> basic management, an applicatoin can just write 500 lines of code and
> be
> done with it.
> 
> libcgroup does offer bunch of commnad lines operations too.
> 
> Do you have something in mind, what applications expect out of a IO
> cgroup
> library and what other OSes are supporting. Don't extend this libc
> thing
> to iscsi, and other storage management requirements.

Sorry Vivek but that is just one of the points in my original post..

I think I am providing points on how to improve linux as a storage server and therefore I don't want to restrict the discussion to io cgroup alone. 

The problem is a lack of framework that  looks somewhat like this.. (I hope the formatting is preserved )



	Fs management	IO cgroup management	Monitoring Apis	      HBA Management			Thin provisioning
	Fs_create()		bw				log_dump			HBA Apis					Watermark
	Snap_create						scsi_log				\					\
								fs_log				 hba_create				 High
	...							io_log				\					\
	...												 iscsi_session_create		 Alarms/Notifications
	|			|				|					\
	|			|				|					 fc_login

------------------------------------------------------------Storage API-----------------------------------------------------------




Double clicking on FS Management
VFS
\
 Fs_clone
\
 Copy Offload
-------------------------			
|		|		|
|		|		|
Ext 4		btrfs		nfs


For eg: If ext4 did not support discard it would return an error with one of the fs apis.

Unless you have a unified interface there won't be uniformity of features or coordination to make linux a complete storage server with apps that do things at the higher layer. 

Today if xfs supports copy offload it would be an intuitive guess on the part of the app running on top of it.
If you want to create thin provisioning water marks possibly  snapshot management is a different tool.


I think the reason libvirt has so many features built in quickly is because of the modular architecture and clear interface it provides for creating and managing virtual machines.

Today if I had to write a virtualization management tool with libvirt as the back end for VM management it is really a question of whether there is an API support or not..

So.. in that sense linux has matured as a virtualization server. I don't think I can do that for storage..

Now while we are talking about storage servers it is important to note if we are talking about servers with local storage or attached remote storage and so I added transport management apis to the framework along with the hba management apis..

Which is why I think storage management could get a better interface than just libc/ ioctl calls/sysfs operations


On your question on what applications would like out of io cgroups..

I think that is for a different discussion.. ;-) But nevertheless here is something I was thinking..

Apis around the following.. there can be more..
-io timeouts, driver/controller, scsi, blk, fs etc
-io scheduler tunings, io_delay, read_ahead,
-bw profile
-IOPs stats
-io resource monitoring - Eg:  spindle movement per application run. This will help in data placement.

For a storage server folks do a lot of tuning to qualify it. Having apis to manage these and auto calibrate them with application performance load would be awesome..



  reply	other threads:[~2011-12-23  4:35 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-21 15:59 [LSF/MM TOPIC] linux servers as a storage server - what's missing? Ric Wheeler
2011-12-22  8:14 ` Shyam_Iyer
2011-12-22 15:58   ` Vivek Goyal
2011-12-22 20:54     ` Shyam_Iyer
2011-12-23  3:06       ` Vivek Goyal
2011-12-23  4:35         ` Shyam_Iyer [this message]
2012-01-09 12:18       ` Hannes Reinecke
2012-01-09 12:59         ` Tom Coughlan
2012-01-10  6:53           ` Ric Wheeler
2012-01-20  8:55             ` Hannes Reinecke
2012-01-19 16:17           ` [LSF/MM TOPIC] linux servers as a storage server - what'smissing? Loke, Chetan
2012-01-19 16:19             ` Ric Wheeler
2012-01-19 16:26               ` Loke, Chetan
2012-01-19 16:29                 ` Ric Wheeler
2012-01-19 17:32                   ` Loke, Chetan
2012-01-19 17:44                     ` Ric Wheeler
2012-01-19 21:30                       ` Loke, Chetan
2012-01-19 21:39                         ` Ric Wheeler
2012-01-24 17:05                           ` Loke, Chetan
2012-01-24 18:13                             ` Ric Wheeler
2012-01-26 22:24                             ` Dave Chinner
2012-01-26 22:29                               ` Ric Wheeler
2012-01-03 19:26 ` [LSF/MM TOPIC][ATTEND] linux servers as a storage server - what's missing? Jeff Layton
2012-01-03 19:32   ` Chuck Lever
2012-01-17 21:16     ` J. Bruce Fields
2012-01-17 21:25       ` Chuck Lever
2012-01-24 21:36   ` J. Bruce Fields
2012-01-24 23:13     ` Ric Wheeler
2012-01-25 19:05       ` Christopher R. Hertel
2012-01-25 20:25       ` Christopher R. Hertel
2012-01-25 21:56         ` Roland Dreier
2012-01-25 22:09           ` Christopher R. Hertel
2012-01-26 21:52             ` Andy Grover
2012-01-26 11:15         ` Bart Van Assche
2012-01-18 17:00 ` [LSF/MM TOPIC] " Roland Dreier
2012-01-18 17:51   ` Ric Wheeler
2012-01-18 18:46     ` Roland Dreier
2012-01-18 18:51       ` Bart Van Assche
2012-01-18 19:00         ` Roland Dreier
2012-01-19  8:16         ` Rolf Eike Beer
2012-01-19 17:50       ` Loke, Chetan

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=DBFB1B45AF80394ABD1C807E9F28D157077DD22DED@BLRX7MCDC203.AMER.DELL.COM \
    --to=shyam_iyer@dell.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=rwheeler@redhat.com \
    --cc=vgoyal@redhat.com \
    /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 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).