Commit fb6fbf32 authored by Mike Carlin's avatar Mike Carlin Committed by Jim Harris
Browse files

spdkcli: Add support for raid devices



Adds support to spdkcli.py for raid devices via UIRaidBdev with
functionality to construct and destroy raid bdevs.

Information regarding the raid can be viewed via 'show_details' on a
given pooled_device child in the tree.

Signed-off-by: default avatarMike Carlin <mikefcarlin@protonmail.com>
Change-Id: I2ca89e641b201c09b3d4db070eac6cc0c2cdec73
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/452774


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarPawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 67882ed7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -193,6 +193,9 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then
	if [ $SPDK_TEST_ISCSI -eq 1 ]; then
		run_test suite ./test/iscsi_tgt/iscsi_tgt.sh posix
		run_test suite ./test/spdkcli/iscsi.sh

		# Run raid spdkcli test under iSCSI since blockdev tests run on systems that can't run spdkcli yet
		run_test suite test/spdkcli/raid.sh
	fi

	if [ $SPDK_TEST_BLOBFS -eq 1 ]; then
+41 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ class UIBdevs(UINode):
        UIiSCSIBdev(self)
        UIVirtioBlkBdev(self)
        UIVirtioScsiBdev(self)
        UIRaidBdev(self)


class UILvolStores(UINode):
@@ -819,3 +820,43 @@ class UIVhostTargetObj(UINode):
class UIVhostLunDevObj(UINode):
    def __init__(self, name, parent):
        UINode.__init__(self, name, parent)


class UIRaidBdev(UIBdev):
    def __init__(self, parent):
        UIBdev.__init__(self, "raid_volume", parent)

    def delete(self, name):
        self.get_root().destroy_raid_bdev(name=name)

    def ui_command_create(self, name, raid_level, base_bdevs, strip_size_kb):
        """
        Creates a raid bdev of the provided base_bdevs

        Arguments:
        name - raid bdev name
        raid_level - raid level, supported values 0
        base_bdevs - base bdevs name, whitespace separated list in quotes
        strip_size_kb - strip size of raid bdev in KB, supported values like 8, 16, 32, 64, 128, 256, etc
        """
        base_bdevs_array = []
        for u in base_bdevs.strip().split(" "):
            base_bdevs_array.append(u)

        raid_level = self.ui_eval_param(raid_level, "number", None)
        strip_size_kb = self.ui_eval_param(strip_size_kb, "number", None)

        ret_name = self.get_root().construct_raid_bdev(name=name,
                                                       raid_level=raid_level,
                                                       base_bdevs=base_bdevs_array,
                                                       strip_size_kb=strip_size_kb)
        self.shell.log.info(ret_name)

    def ui_command_delete(self, name):
        """
        Deletes this raid bdev object

        Arguments:
        name - raid bdev name
        """
        self.delete(name)
+8 −0
Original line number Diff line number Diff line
@@ -244,6 +244,14 @@ class UIRoot(UINode):
        response = rpc.vhost.remove_virtio_bdev(self.client, **kwargs)
        return response

    @verbose
    def construct_raid_bdev(self, **kwargs):
        rpc.bdev.construct_raid_bdev(self.client, **kwargs)

    @verbose
    def destroy_raid_bdev(self, **kwargs):
        rpc.bdev.destroy_raid_bdev(self.client, **kwargs)

    @verbose
    @is_method_available
    def get_virtio_scsi_devs(self):
+17 −0
Original line number Diff line number Diff line
o- bdevs ..................................................................................................................... [...]
  o- aio ................................................................................................................ [Bdevs: 0]
  o- error .............................................................................................................. [Bdevs: 0]
  o- iscsi .............................................................................................................. [Bdevs: 0]
  o- logical_volume ..................................................................................................... [Bdevs: 0]
  o- malloc ............................................................................................................. [Bdevs: 2]
  | o- Malloc1 ................................................................................................ [Size=8.0M, Claimed]
  | o- Malloc2 ................................................................................................ [Size=8.0M, Claimed]
  o- null ............................................................................................................... [Bdevs: 0]
  o- nvme ............................................................................................................... [Bdevs: 0]
  o- pmemblk ............................................................................................................ [Bdevs: 0]
  o- raid_volume ........................................................................................................ [Bdevs: 1]
  | o- testraid .......................................................................................... [Size=16.0M, Not claimed]
  o- rbd ................................................................................................................ [Bdevs: 0]
  o- split_disk ......................................................................................................... [Bdevs: 0]
  o- virtioblk_disk ..................................................................................................... [Bdevs: 0]
  o- virtioscsi_disk .................................................................................................... [Bdevs: 0]
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ o- / ...........................................................................
  | o- nvme ............................................................................................................. [Bdevs: 1]
  | | o- Nvme0n1 $(S) [Size=$(S), Claimed]
  | o- pmemblk .......................................................................................................... [Bdevs: 0]
  | o- raid_volume ...................................................................................................... [Bdevs: 0]
  | o- rbd .............................................................................................................. [Bdevs: 0]
  | o- split_disk ....................................................................................................... [Bdevs: 4]
  | | o- Nvme0n1p0 $(S) [Size=$(FP)G, Not claimed]
Loading