Important: Drivers and libraries were forked from the Citrix open source packages of SMAPIv3 (before it was closed source).
The original code was forked from xapi-storage-plugins-1.6.0-1.x86_64.rpm
(LGPL) in XenServer 7.5.
These plugins dictate how a storage volumes (local files, local block devices, iSCSI LUNs, Ceph RBD devices etc etc) should be mapped to Virtual Machines running on Xen.
The xapi storage interface describes the concepts, features and APIs in more detail.
Datapath plugins are named by URI schemes. Internally we have the following low-level implementations. These should not be referenced directly by Volume plugins:
qdisk
: opens a file withqemu-dp
.tapdisk
: opens a file withtapdisk
and thentapdisk
serves the VM directly using the user-space grant-table and grant-mapping code.
Install dependencies: cmake3
, make
, python-setuptools
, nbd
, python-psutil
, qemu-dp
, systemd
and xapi-storage
.
Run these commands in the project directory:
mkdir build
cd build
cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr
make install
Do not forget to start qemuback service after installation:
systemctl daemon-reload
systemctl start qemuback.service
Important note: xapi-storage-script
uses inotify to monitor plugins, so never delete
/usr/libexec/xapi-storage-script/datapath/
or /usr/libexec/xapi-storage-script/volume/
folders!
I can't create SRs or plugins are not found.
Ensure you have installed the same xcp-ng-xapi-storage
package in all hosts of your pool.
I can't start my VM with SMAPIv3 disks.
xapi-storage-script
and qemuback
services must be started to start correctly VMs.
You can check it with:
systemctl status xapi-storage-script.service
systemctl status qemuback.service