[libvirt] SolidICE integration

Shahar Frank sfrank at redhat.com
Wed Nov 19 18:50:09 UTC 2008


Hi All,

I am sending this again because the last mail was using a wrong source...

So here it is:


Hi All, here is an initial version of the operations required for SolidICE
and the proposed high level interface.

I would like to discuss how to map it to libvirt calls and what libvirt
calls are missing.

Thanks,

Shahar Frank

HostLevel
---------
enumarateLuns():
        return:
                returns all luns visible by the host.
                In case multipathing is enabled then only the multipath
device should   be in the return list.

enumerateISCSILuns(target):
        params:
                target - ISCSI target
        Description:
                enumerate all ISCSI luns on a specific target
        return:
                list of
getBlockInfo(name or UUID):
        return:
                at least uuid & size
enumerateVGs():
        return:
                VG UUID list


open issues - should we assume ISCSI auto connect or FC login?



StoragePool level
-----------------
createVolumeGroup(name, devices):
        params:
                name = name
                devices - a list of UUIDs
        description:
                Should create a volume group out of the UUID list
                In case multipathing is enabled then only the multipath
device          should be used
                In case it is not a PV yet then a PV is to be created.
        Return:
                Uuid of the VG

removeVolumeGroup(VG):
        params:
                VG - uuid of the Volume group
        Description:
                Remove all remains for the VolumeGroup (LVs, PVs ...)
        Return:
                Sucsess/failure

mountNFS(server, remotePath, localPath, params)
        params:
                server - the NFS server name or IP
                temotePath - remote server export path
                localPath - local path to mount on
                params - nfs mount params
        description:
                mounts the remote export onto the local path using the
mount            params
        return:
                success/failure


unmount(localPath, forceFlag)
        params:
                localPath - the local path to unmount
                forceFlag - a flag indicating whether to force unmount
        description:
                unmounts local path (trivial)
        return:
                success/failure

Open issues:
1. NFS configuration persistency?
2. What happens in case the libvirt is restarted should it be
reconfigured?


VolumeGroup level
-----------------
listPV(VG):
        params:
                VG - Volume group UUID
        Description:
                Lists all PV in a specific volume group
        Return:
                A list of PV UUIDs



infoPV(VG, PV)
        params:
                VG - Volume group UUID
                PV - Physical volume UUID
        description:
                trivial
        return:
                returns the PV information (at least size & path)



extendVolumeGroup(VG, devices):
        params:
                VG - Volume Group UUID
                devices - a list of UUIDs
        description:
                This function adds Phisical Volume to the VolumeGroup.
                Each UUID device is checked, In case multipathing is
enabled
                then only the multipath device should be used (PV create
in case
                it's not) and added to the volume group
        return:
                success/fauilure


removePV(VG, PV):
        params:
                VG - Volume Group UUID
                PV - Physical volume's UUID to be removed
        description:
                removes the physical volume
        return:
                success failure

LV operations
--------------
listLVs(VG):
        params:
                VG - Volume Group UUID
        description:
                trivial
        return:
                list of all LV UUIDs

infoLV(VG, LV):
        params:
                VG - Volume Group UUID
                LV - Logical Volume UUID
        description:
                trivial
        return:
                returns LV information (at least size and path)

createLV(VG, LvName, size):
        params:
                VG - Volume Group UUID
                LvName - name of the logical volume




More information about the libvir-list mailing list