Remote configuration of a LIO-based storage appliance
targetd turns Linux into a remotely-configurable storage appliance. It supports an HTTP/jsonrpc-2.0 interface to let a remote administrator allocate volumes from an LVM volume group, and export those volumes over iSCSI. It also has the ability to create remote file systems and export those file systems via NFS/CIFS (work in progress).
targetd's sister project is libStorageManagement, which allows admins to configure storage arrays (including targetd) in an array-neutral manner.
targetd is licensed under the GPLv3. Contributions are welcome.
NOTE: targetd is STORAGE-RELATED software, and may be used to remove volumes and file systems without warning from the resources it is configured to use. Please take care in its use.
targetd has these Python library dependencies:
- python-rtslib 2.1.fb42+ (must be fb*)
- LVM2 with Python bindings(lvm2-python-libs) 2.02.99+
All of these are available in Fedora Rawhide.
A configuration file may be placed at
is in YAML format. Here's
user: "foo" # strings quoted, or not password: bar ssl: false target_name: iqn.2003-01.org.example.mach1:1234 block_pools: [vg-targetd/thin_pool, vg-targetd-too/thin_pool] fs_pools: [/mnt/btrfs]
targetd defaults to using the "vg-targetd/thin_pool" volume group and thin pool logical volume, and username 'admin'. The admin password does not have a default -- each installation must set it.
Then, in the root of the source directory, do the following as root:
# export PYTHONPATH=`pwd` # ./scripts/targetd`
client.py is a basic testing script, to get started making API calls.