* New method volume_raid_info() to query RAID type, disk count,
   minimum I/O size, optimal I/O size.

 * These plugins support this new method:
    * sim
        # Simple return UNKNOWN
    * simc
        # Simple set UNKNOWN on output parameter.
    * MegaRAID

 * The C library part might be buggy considering my C skill set.

 * Potential support by other plugin:
    * Targetd: 
        We could use PE size of LVM for minimum I/O size and strip size.
        And set RAID type as JBOD and extent count as 1.
        Once LVM RAID supported, it could provide real RAID type and other
        information.
    * SMI-S:
        In SMI-S spec, each StorageVolume has StorageSetting associated,
        but no definition mentioned ExtentStripeLength is the optimal I/O
        size. In stead of guess or mess with SNIA, simply 'no support' would
        works better.
    * ONTAP:
        Patch for ONTAP plugin is ready but not included in this patch set
        since that was based on my test and guess.
        Waiting NetApp's official answer about their optimal I/O size.
    * Nstor:
        No document found about strip settings.

 * This is the best design and naming scheme I got.
   PLEASE let me know if you got better.
   Thank you very much in advance.

Changes in V2:
 * Patch 6/13 and 10/13:
    Tony introduced a new way for plugin to register newly added API with
    full backward compatibility. Simulator C plugin implemented this change.
 * Patch 10/13:
    Add missing capability LSM_CAP_VOLUME_RAID_INFO

Changes in V3:
 * Patch 6/13:
    Another approach to register newly added API with full backward
    compatibility:
        * New struct lsm_ops_v1_2:
            Free to change during version 1.2 development phase.
            Will frozen it once 1.2 released.

        * New plugin register method: lsm_register_plugin_v1_2()
            It takes all arguments required by old lsm_register_plugin_v1()
            addition to struct lsm_ops_v1_2 pointer.

        * Once version 1.2 released, we could work on struct lsm_ops_v1_3 and
          lsm_register_plugin_v1_3().

 * Patch 9/13:
    Full volume_raid_info() support in simulator plugin.

Changes in V4:

 * Included Tony's bug fix patch for C API:
    [PATCH] lsm_plugin_ipc.cpp: Bug Fix, using san_ops for fs_ops

 * Included ONTAP plugin support.

 * Patch 4/15 and 5/15:
    * Changed the value of these constants from -1 to 0 to align with
      libblkid/sysfs:
        * Volume.STRIP_SIZE_UNKNOWN
        * Volume.MIN_IO_SIZE_UNKNOWN
        * Volume.OPT_IO_SIZE_UNKNOWN
        * Volume.EXTENT_COUNT_UNKNOWN
        * LSM_VOLUME_STRIP_SIZE_UNKNOWN
        * LSM_VOLUME_EXTENT_COUNT_UNKNOWN
        * LSM_VOLUME_MIN_IO_SIZE_UNKNOWN
        * LSM_VOLUME_OPT_IO_SIZE_UNKNOWN

 * Patch 5/15:
    * Add LSM_FLAG_UNUSED_CHECK in public lsm_volume_raid_info() function.

 * Patch 6/15:
    * Removed unneeded import 'Volume' from simulator.py.

Changes in V5:

 * Change output argument name from 'extent_count' to 'disk_count' as
   it fit the most common expectation on RAID. Please check patch 3/15
   for detail.

 * Change constant name:
    * 'Volume.EXTENT_COUNT_UNKNOWN' -> 'Volume.DISK_COUNT_UNKNOWN'
    * LSM_VOLUME_EXTENT_COUNT_UNKNOWN -> LSM_VOLUME_DISK_COUNT_UNKNOWN
 * Change C API these output arguments data type from 'int32_t' to 'uint32_t':
    * strip_size
    * disk_count
    * min_io_size
    * opt_io_size

 * Sync plugins for this change.

Gris Ge (14):
  Python Library: Fix decorator problem with docstrings
  Python Library: New method volume_raid_info()
  C Library: New method lsm_volume_raid_info()
  lsmcli: Add volume_raid_info() support.
  lsmcli Test: Add test for volume-raid-info command.
  C Unit Test: Add test for lsm_volume_raid_info() method
  Constant Test: Fix missing constant with number in it.
  Simulator Plugin: Add volume_raid_info() support
  Simulator C Plugin: Add lsm_volume_raid_info() support.
  MegaRAID plugin: Add pools() method support.
  MegaRAID Plugin: Add volumes() support.
  MegaRAID Plugin: Add Disk.STATUS_RECONSTRUCT support.
  MegaRAID Plugin: Add volume_raid_info() support.
  ONTAP Plugin: Add volume_raid_info() support.

Tony Asleson (1):
  lsm_plugin_ipc.cpp: Bug Fix, using san_ops for fs_ops

 c_binding/include/libstoragemgmt/libstoragemgmt.h  |  20 ++
 .../libstoragemgmt/libstoragemgmt_capabilities.h   |   3 +
 .../libstoragemgmt/libstoragemgmt_plug_interface.h |  55 ++++++
 .../include/libstoragemgmt/libstoragemgmt_types.h  |  43 ++++
 c_binding/lsm_datatypes.hpp                        |   1 +
 c_binding/lsm_mgmt.cpp                             |  48 +++++
 c_binding/lsm_plugin_ipc.cpp                       |  86 ++++++--
 plugin/megaraid/megaraid.py                        | 220 ++++++++++++++++++++-
 plugin/ontap/na.py                                 |   8 +-
 plugin/ontap/ontap.py                              |  55 ++++--
 plugin/sim/simarray.py                             | 149 +++++++++-----
 plugin/sim/simulator.py                            |   3 +
 plugin/simc/simc_lsmplugin.c                       |  33 +++-
 python_binding/lsm/_client.py                      | 103 ++++++++++
 python_binding/lsm/_common.py                      |   1 +
 python_binding/lsm/_data.py                        |  42 ++++
 test/cmdtest.py                                    |  21 ++
 test/tester.c                                      |  30 +++
 tools/lsmcli/cmdline.py                            |  18 +-
 tools/lsmcli/data_display.py                       |  58 ++++++
 tools/utility/check_const.pl                       |   6 +-
 21 files changed, 912 insertions(+), 91 deletions(-)

-- 
1.8.3.1


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Libstoragemgmt-devel mailing list
Libstoragemgmt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libstoragemgmt-devel

Reply via email to