SMAPIv3 - Feedback & Bug reports

  • Admin

    As you may already know, @ronan-a is working on the next storage interface protocol known as SMAPIv3 since a bit of time now.

    More information are available on our latest devblog

    It's now possible for you to install this experimental plugin and provide your feedback on this thread.


    Warning: don't use SMAPIv3 in production yet!

    Use these commands to install the package:

    yum install xcp-ng-xapi-storage --enablerepo=xcp-ng-testing
    systemctl start qemuback.service

    You might also need to restart the toolstack:
    # xe-toolstack-restart

    For issues, please read this page:

    Use this topic for feedback and bug report.

  • How about allowing VDI compaction based on GUESTs TRIM/Discard commands? It seems this should be possible with the new plugin type architecture.

  • Admin

    @S-Pam feel free to provide a PR so we can make experiments πŸ™‚

  • Can we get a little more information on how we would create SR's with SMAPIv3 after installing xcp-ng-vdi-stream?

  • Admin

    Ping @ronan-a for that

  • XCP-ng Team

    @swivvle You can create a ext4 SR like this:

    xe sr-create type=ext4-ng name-label=sr-test device-config:device=/dev/sda3

    For a basic filebased SR:

    xe sr-create type=filebased name-label=sr-test2 device-config:file-uri=/root/sr-folder

    Don't hesitate if you have other questions.

  • Will it support LVMoiSCSI? Or, is that a future addition?


  • Admin

    You need to get rid of SMAPIv1 concepts πŸ˜‰ If you meant "iSCSI block" support, the answer for right now: no.

    It's a brand new approach so we'll take time to find the best one, to avoid all the mess that had SMAPIv1 on block devices (non thin, race conditions etc.)

    I think the next big "device type" support might be raw (passing a whole disk without any extra layer to the guest).

  • Edit: needed to do

    yum install xcp-ng-xapi-storage --enablerepo='xcp-ng-testing'
    systemctl start qemuback.service

  • @ronan-a said in SMAPIv3 - Feedback & Bug reports:

    xe sr-create type=ext4-ng name-label=sr-test device-config:device=

    I can create the SR, create the disk in the SR, but I cannot it attach it to a VM. Error is

    "Please include a URI in the device-config " Both filebased and ext4 do this for me.

  • @olivierlambert raw over iscsi?

  • Admin

    raw means any "whole" block device, meaning no snapshot, clone, no shared SR case, etc. Doesn't matter what's underneath. I would say the first use case is passing a whole drive to a VM (eg FreeNAS).

    But yeah, you would be able to pass a LUN if you like πŸ™‚

  • XCP-ng Team

    @swivvle What's your exact command line? Have you restarted the toolstack?

  • XCP-ng Center Team

    Hi, just one question to clarify:
    does it mean I could map an untouched/unmodified LUN to a VM?
    because I have a usecase where it is very important that the (very small) LUN is not modified as it is used as communication device between the storage system and the guest.
    That would be great!
    As soon as this is available I will do some testing!

  • Admin

    I think, yes.

  • @Marc-pezin said in SMAPIv3 - Feedback & Bug reports:

    yum install xcp-ng-xapi-storage

    This needs to be # yum install xcp-ng-xapi-storage --enablerepo=xcp-ng-testing

    I tried following

    [13:33 xcp-ng-8-kernel ~]# yum install xcp-ng-xapi-storage --enablerepo=xcp-ng-testing
    [13:34 xcp-ng-8-kernel ~]# systemctl start qemuback.service
    [13:34 xcp-ng-8-kernel ~]# systemctl status qemuback.service
    ● qemuback.service - qemuback daemon
       Loaded: loaded (/usr/lib/systemd/system/qemuback.service; enabled; vendor preset: enabled)
      Drop-In: /etc/systemd/system/qemuback.service.d
       Active: active (running) since Sat 2019-10-05 13:34:59 IST; 5s ago
     Main PID: 10221 (
       CGroup: /control.slice/qemuback.service
               β”œβ”€10221 /usr/bin/python /usr/bin/
               └─10222 /usr/bin/xenstore-watch /local/domain/0/backend
    [13:35 xcp-ng-8-kernel ~]# xe sr-create type=filebased name-label=sr-test2 device-config:file-uri=/root/sr-folder
    [13:36 xcp-ng-8-kernel ~]# ls sr-folder/
    1  db_backups  lock_db  lock_db_backup  lock_gl  meta.json  meta.lock  sqlite3-metadata.db
    [13:37 xcp-ng-8-kernel ~]# xe vbd-create vdi-uuid=cb6cf26c-b079-44e2-9466-3d61fc7ac553 vm-uuid=a00c837e-20ab-4b3b-b125-2a73df1070d2 device=5
    [13:37 xcp-ng-8-kernel ~]# xe vbd-plug uuid=6877ea3b-d3c7-e708-5b34-c5e61e5dd1eb 
    Error code: MISSING_URI
    Error parameters: Please include a URI in the device-config
    [13:38 xcp-ng-8-kernel ~]# xe vdi-list uuid=cb6cf26c-b079-44e2-9466-3d61fc7ac553 
    uuid ( RO)                : cb6cf26c-b079-44e2-9466-3d61fc7ac553
              name-label ( RW): New virtual disk (1)
        name-description ( RW): 
                 sr-uuid ( RO): c6e9c83c-78ee-7727-dec3-1c7474aef533
            virtual-size ( RO): 1073741824
                sharable ( RO): false
               read-only ( RO): false

    What can be done for Error code: MISSING_URI?

    Edit: I did not read the restart instruction.

    After restarting tool stack it worked and disk attached as /dev/nbd0!

    [13:55 xcp-ng-8-kernel ~]# xe-toolstack-restart 
    Executing xe-toolstack-restart
    [13:56 xcp-ng-8-kernel ~]# xe vbd-plug uuid=6877ea3b-d3c7-e708-5b34-c5e61e5dd1eb

  • Admin

    @r1 You are absolutely right, I have updated the command in the initial post and in the devblog. Thanks.

  • @Marc-pezin Thanks. I'd suggest to also add # xe-toolstack-restart so that Error code: MISSING_URI does not show up πŸ‘

  • @ronan-a is VDI move from SMAPIv1 to SMAPIv3 supported?

  • Admin

    Nope. I don't know if it's even planned by Citrix.

Log in to reply

XCP-ng Pro Support