Vhost Target

xiRAID Opus supports VirtIO Block frontend via Virtual host target connectivity. A RAID can be exposed as VirtIO block device by a command:

xnr_cli vhost create --ctrlr vhost.1 --bdev xnraid --cpumask 0x3

Where --ctrlr defines a vhost controller name to be created, --bdev option specifies the name of the RAID to be connected to, and --cpumasks specifies CPU cores to be used to process IO load for this specific vhost target. The cpumask shall be subset of the engine CPU core mask defined during the installation stage or assigned by the engine configuration command. Different vhosts can use different, the same or intersecting masks.

To get the list of all configured vhosts, use the command:
$ xnr_cli vhost show
[
{
  "controller": "vhost.1",
  "socket": "/opt/xraid/bin/xnr_conf/sock/vhost.1",
  "cpu_mask": "0x3",
  "iops_threshold": 60000,
  "BackendSpecific": {
    "Block": {
      "id": {
        "name": "xnraid"
      }
    }
  }
}
]

The “socket” parameter specifies the name to be used by a virtual machine or other client to connect the RAID as a block device.

NVME-TCP and NVME-RDMA frontend connectivities are supported in experimental mode. These target types are fully functional but their configuration is not persisted and is lost upon the engine or the server node restart.