All Projects → ceph → Ceph Iscsi Cli

ceph / Ceph Iscsi Cli

Licence: other
NOTICE: moved to https://github.com/ceph/ceph-iscsi

Programming Languages

python
139335 projects - #7 most used programming language

ceph-iscsi-cli installs a targetcli-like interface to allow multiple ceph/iscsi gateways to be managed from a single interface. The CLI interfaces with the API exposed in the rbd-target-gw daemon running on each gateway.

Here's an example of the shell interface the gwcli tool provides;

/> ls o- / .................................................................................. [...] o- clusters ................................................................. [Clusters: 1] | o- ceph ..................................................................... [HEALTH_OK] | o- pools ................................................................... [Pools: 3] | | o- ec ........................................ [(2+1), Commit: 0b/40G (0%), Used: 0b] | | o- iscsi ..................................... [(x3), Commit: 0b/20G (0%), Used: 18b] | | o- rbd ....................................... [(x3), Commit: 8G/20G (40%), Used: 5K] | o- topology ......................................................... [OSDs: 3,MONs: 3] o- disks ................................................................... [8G, Disks: 5] | o- rbd.disk_1 ............................................................. [disk_1 (1G)] | o- rbd.disk_2 ............................................................. [disk_2 (2G)] | o- rbd.disk_3 ............................................................. [disk_3 (2G)] | o- rbd.disk_4 ............................................................. [disk_4 (1G)] | o- rbd.disk_5 ............................................................. [disk_5 (2G)] o- iscsi-target .............................................................. [Targets: 1] o- iqn.2003-01.com.redhat.iscsi-gw:ceph-gw ................................ [Gateways: 2] o- gateways ..................................................... [Up: 2/2, Portals: 2] | o- rh7-gw1 .................................................... [192.168.122.69 (UP)] | o- rh7-gw2 ................................................... [192.168.122.104 (UP)] o- hosts ................................................................... [Hosts: 2] o- iqn.1994-05.com.redhat:myhost1 ........................ [Auth: None, Disks: 1(1G)] | o- lun 0 ......................................... [rbd.disk_1(1G), Owner: rh7-gw2] o- iqn.1994-05.com.redhat:rh7-client .......... [LOGGED-IN, Auth: CHAP, Disks: 1(2G)] o- lun 0 ......................................... [rbd.disk_5(2G), Owner: rh7-gw2]

The rbd-target-api daemon utilises the flask's internal development server to provide the REST api. It is normally not used in a production context, but given this specific use case it provides a simple way to provide an admin interface - at least for the first release!

The API has been tested with Firefox RESTclient add-on with https (based on a common self-signed certificate). With the certificate in place on each gateway you can add basic auth credentials to match the local api configuration in the RESTclient and use the client as follows;

Add a Header content type for application/x-www-form-urlencoded METHOD: PUT URL: https://192.168.122.69:5000/api/gateway/rh7-gw1 select the urlencoded content type and the basic auth credentials add the required variables to the body section in the client ui eg. ip_address=192.168.122.69 Click 'SEND'

Curl Examples If the UI is not your thing, curl probably is! Here's an example of using curl to create a gateway node.

curl --insecure --user admin:admin -d "ip_address=192.168.122.104"
-X PUT https://192.168.122.69:5000/api/gateway/rh7-gw2

Installation

Via RPM

Simply install the provided rpm with rpm -ivh ceph-iscsi-cli-<ver>.el7.noarch.rpm

Manually

The following packages are required by ceph-iscsi-cli and must be installed before starting the rbd-target-api service:

python-rtslib ceph-iscsi-config python-requests python-configshell python-flask pyOpenSSL

To install the python package that provides the application logic, run the provided setup.py script i.e. > python setup.py install

For the management daemon (rbd-target-api), simply copy the following files into their equivalent places on each gateway

  • <archive_root>/usr/lib/systemd/system/rbd-target-api.service --> /lib/systemd/system
  • <archive_root>/usr/bin/rbd-target-api--> /usr/bin

Configuration

Once the package is in installed, the Ceph ceph-iscsi-cli instructions found here:

http://docs.ceph.com/docs/master/rbd/iscsi-target-cli/

can be used to create a iscsi-gateway.cfg and create a target.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].