Remote configuration of a LIO-based storage appliance
Python Groff
Latest commit 79af4fd Oct 1, 2015 @tasleson tasleson Update link
Permalink
Failed to load latest commit information.
scripts
targetd block.py: Check for existing LV name before creating/coping Jul 28, 2015
.gitignore Add gitignore Apr 22, 2013
API.md New method: access_group_map_destroy(pool_name, vol_name, ag_name) Jan 27, 2015
LICENSE Add GPLv3 license file Jun 18, 2012
README.md Update link Oct 1, 2015
client Defeature ASYNC and non-thinp copies Jul 31, 2013
setup.py
targetd.8 Update manpage for new list, thinp, and changed config Aug 8, 2013
targetd.yaml Use logging May 30, 2013

README.md

targetd logo

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 development

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.

Getting Started

targetd has these Python library dependencies:

All of these are available in Fedora Rawhide.

Configuring targetd

A configuration file may be placed at /etc/target/targetd.yaml, and is in YAML format. Here's an example:

user: "foo" # strings quoted, or not
password: bar
ssl: false
target_name: iqn.2003-01.org.example.mach1:1234

block_pools: [vg-targetd, vg-targetd-too]
fs_pools: [/mnt/btrfs]

targetd defaults to using the "vg-targetd" volume group, and username 'admin'. The admin password does not have a default -- each installation must set it.

Then, run sudo ./targetd.py.

client.py is a basic testing script, to get started making API calls.