Skip to content

Hardcoded SCSI multipath logic for raw block volumes in CSI node #865

@scaleoutsean

Description

@scaleoutsean

The driver claims support for NVMeoF in several places, but in node.go (NodePublishVolume and getVolumeStats), for block volumes (isFSVolume == false / isBlock == true), the code hardcodes the use of d.OsDeviceConnectivityHelper (which is initialized as ScsiGeneric), entirely bypassing the PublishContext connectivity mapping.

That breaks raw block volume support for non-SCSI protocols. That means physical NVMe subsystems (like IBM's supported NVMe/FC systems) will timeout and fail to attach because the node agent incorrectly looks for dm-multipath maps and runs sg_inq instead of using the NVMe driver module to match WWIDs natively.

It took me hours to overcome this in my patch, but eventually I managed to find a way to change this so that I can start a KubeVirt VM that successfully boots from a Block mode PVC backed by NVMe/RoCE storage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions