Discussion:
[Libstoragemgmt-devel] [RFC] Initial plan for local storage management
Gris Ge
2014-12-19 14:15:31 UTC
Permalink
Hi Guys,

I am planning to create a lsm plugin for local storage management for:
1. Linux -- mdadm, rtslibs-fb(iscsi/fcoe target), liblvm, smartctl.
# Use linux open source tools to provide local storage
# management and also use LIO to expose storage out(SAN/NAS).
# Example:
# Use local disk to create a RAID md device as Pool.
# And then use it's partition as iSCSI/FCoE target LUN via
# LIO. Use smartctl to monitor disk status and mdadm to
# monitor RAID status.

2. LSI MegaRAID -- storcli
# LSI binary tools(noarch) to manage local attached MegaRAID
# cards.

3. HP SmartArray -- hpssacli
# HP SmartArray tools(HP provides yum repo) to manage local
# attached SmartArray cards.

Issues:
1. What will happen if storcli/hpssacli not installed?
# Only linux storage is manageable. No error reported.
# To query certain type of storage, use URI parameter
# 'only=megaraid' or 'only=linux' or 'only=hpsa', error will be
# raised if certain tools not installed.

2. How to handle plugin dependency?
# As mentioned above, this plugin only depend only linux open
# source tools. If third party tools(like storcli or hpssacli)
# is not installed, certain type of storage will be ignored and
# unmanageable by default.

3. How to handle root privilege required to manage local storage?
# Possible solution mentioned in mailist:
# 1. The lsmd will invoke the plugin with uid matching the
# client calling uid. User just need to run client tools with
# root privilege for local plugin.

3. What's the name of this plugin?
# Initially, I am using 'local' and URI for 'local://'.
# Alternatives:
# a. das
# # As we will support iscsi/fcoe target or even nfs
# # server, we can be DAS, NAS and SAN.
# b. hba
# # mdadm is not HBA. HBA is not for iscsi and fcoe
# # target.
# c. raid
# # LVM and iscsi/fcoe target is not RAID.
# Any better name?

Any comments?
Thank you in advance.
Best regards.
--
Gris Ge
Tony Asleson
2014-12-19 20:54:06 UTC
Permalink
Post by Gris Ge
Hi Guys,
1. Linux -- mdadm, rtslibs-fb(iscsi/fcoe target), liblvm, smartctl.
# Use linux open source tools to provide local storage
# management and also use LIO to expose storage out(SAN/NAS).
# Use local disk to create a RAID md device as Pool.
# And then use it's partition as iSCSI/FCoE target LUN via
Do you mean Volume, (aka block device) or a partition on the block
device? Up to this point we haven't don't anything with the block
device except get it presented to the user.

LIO can use a raw hardware device, logical block device (lvm lv),
partition and files on a file system. Are you looking to replace storaged?
Post by Gris Ge
# LIO. Use smartctl to monitor disk status and mdadm to
# monitor RAID status.
2. LSI MegaRAID -- storcli
# LSI binary tools(noarch) to manage local attached MegaRAID
# cards.
3. HP SmartArray -- hpssacli
# HP SmartArray tools(HP provides yum repo) to manage local
# attached SmartArray cards.
1. What will happen if storcli/hpssacli not installed?
# Only linux storage is manageable. No error reported.
# To query certain type of storage, use URI parameter
# 'only=megaraid' or 'only=linux' or 'only=hpsa', error will be
# raised if certain tools not installed.
2. How to handle plugin dependency?
# As mentioned above, this plugin only depend only linux open
# source tools. If third party tools(like storcli or hpssacli)
# is not installed, certain type of storage will be ignored and
# unmanageable by default.
I think it would be useful if when the user lists systems that the hba
always shows up in the list. Then when they try to interact with that
system (card) they get an error that the required tools are missing. We
can tell which supported HBAs are available without having the user
space tools installed.
Post by Gris Ge
3. What's the name of this plugin?
# Initially, I am using 'local' and URI for 'local://'.
# a. das
# # As we will support iscsi/fcoe target or even nfs
# # server, we can be DAS, NAS and SAN.
# b. hba
# # mdadm is not HBA. HBA is not for iscsi and fcoe
# # target.
# c. raid
# # LVM and iscsi/fcoe target is not RAID.
LVM has RAID capabilities, thus LIO + LVM has RAID.
Post by Gris Ge
# Any better name?
Not that I can think of at the moment.


I think what is more important is what the API interface for these
direct attached storage will look like. Some of them will have a
feature set that looks like SAN, but without the masking/mapping.
However, when you start talking about LVM + LIO + NFS, then you are
talking about targetd, except that it's local.

I believe our goal should be to provide an abstracted API that allows
the user to manage and monitor: software RAID, logical volume management
and hardware RAID in a consistent way.

Regards,
Tony
Tony Asleson
2014-12-19 20:57:09 UTC
Permalink
Post by Tony Asleson
I believe our goal should be to provide an abstracted API that allows
the user to manage and monitor: software RAID, logical volume management
and hardware RAID in a consistent way.
To facilitate this, I would like to see a list of use cases we want to
support.

Thanks,
Tony
Gris Ge
2014-12-22 08:21:24 UTC
Permalink
Post by Tony Asleson
Do you mean Volume, (aka block device) or a partition on the block
device? Up to this point we haven't don't anything with the block
device except get it presented to the user.
LIO can use a raw hardware device, logical block device (lvm lv),
partition and files on a file system. Are you looking to replace storaged?
Yeah. But at second thought, I would like to postpone the LIO things.
I will do the local RAID support first.
The partition support could be added after/with we has LIO supported.
Post by Tony Asleson
Post by Gris Ge
2. How to handle plugin dependency?
# As mentioned above, this plugin only depend only linux open
# source tools. If third party tools(like storcli or hpssacli)
# is not installed, certain type of storage will be ignored and
# unmanageable by default.
I think it would be useful if when the user lists systems that the hba
always shows up in the list. Then when they try to interact with that
system (card) they get an error that the required tools are missing. We
can tell which supported HBAs are available without having the user
space tools installed.
I don't have any good way to know whether certain cards are supported
or not in their binary tools, it might be possible we incorrectly mark
some MegaRAID/SmartArray RAID card as supported while their binary tools
said not.
I will give it a try. And we can back on this on detailed patch.
Post by Tony Asleson
I believe our goal should be to provide an abstracted API that allows
the user to manage and monitor: software RAID, logical volume management
and hardware RAID in a consistent way.
Sounds reasonable.

Thank you! Tony.

Best regards.
--
Gris Ge
Tom Coughlan
2014-12-23 23:08:47 UTC
Permalink
Post by Gris Ge
Post by Tony Asleson
Do you mean Volume, (aka block device) or a partition on the block
device? Up to this point we haven't don't anything with the block
device except get it presented to the user.
LIO can use a raw hardware device, logical block device (lvm lv),
partition and files on a file system. Are you looking to replace storaged?
Yeah. But at second thought, I would like to postpone the LIO things.
I will do the local RAID support first.
The partition support could be added after/with we has LIO supported.
I agree. Focus on local HBA RAID first.

For the time being at least, the unique role of libStoragemgmt is to
manage storage that is hidden from the o.s. behind RAID firmware that is
running in either local HBAs or remote SAN arrays.

At some point, we may extend lsm to include the management of storage
that is directly accessible to the o.s. (lvm, md, LIO, drbd, multipath,
crypt-setup, parted, smartctl, SCSI and HBA driver parameters). Or, we
may do this unification in storaged, or some other tool. Either way,
this is somewhat lower priority, since there are already ways to do it,
even if they are disparate, piecemeal solutions.

Tom

Loading...