summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorPrasanna Kumar Kalever <prasanna.kalever@redhat.com>2016-12-23 21:37:29 +0530
committerPrasanna Kumar Kalever <prasanna.kalever@redhat.com>2016-12-23 23:02:31 +0530
commit62c0e1a9b2af8565497fa5a34193707c5bab5d15 (patch)
tree79a08b6a89c79ddb6092d2ac949ca91bbe72639b /Makefile
gluster-block: Initial Commit
gluster block storage CLI. As of now, gluster-block is capable of creating tcmu based gluster block devices, across multiple nodes. All you need is a gluster volume (on one set of nodes) and tcmu-runner (https://github.com/open-iscsi/tcmu-runner) running on same(as gluster) or different set of nodes. From an another (or same) node where gluster-block is installed you can create iSCSI based gluster block devices. What it can do ? -------------- 1. create a file (name uuid) in the gluster volume. 2. create the iSCSI LUN and export the target via tcmu-runner in multiple nodes (--block-host IP1,IP2 ...) 3. list the available LUN's across multiple nodes. 4. get info about a LUN across multiple nodes. 5. delete a given LUN across all given nodes. $ gluster-block --help gluster-block (Version 0.1) -c, --create <name> Create the gluster block -v, --volume <vol> gluster volume name -h, --host <gluster-node> node addr from gluster pool -s, --size <size> block storage size in KiB|MiB|GiB|TiB.. -l, --list List available gluster blocks -i, --info <name> Details about gluster block -m, --modify <RESIZE|AUTH> Modify the metadata -d, --delete <name> Delete the gluster block [-b, --block-host <IP1,IP2,IP3...>] block servers, clubbed with any option Typically gluster-block, gluster volume and tcmu-runner can coexist on single set of nodes/node or can be split across different set of nodes. Install: ------- $ make -j install (hopefully that should correct you.) Points to remember: ------------------ 1. setup gluster volume 2. run tcmu-runner service Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile53
1 files changed, 53 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6449fb2
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,53 @@
+########################################################################
+# #
+# Copyright (c) 2016 Red Hat, Inc. <http://www.redhat.com> #
+# This file is part of gluster-block. #
+# #
+# This file is licensed to you under your choice of the GNU Lesser #
+# General Public License, version 3 or any later version (LGPLv3 or #
+# later), or the GNU General Public License, version 2 (GPLv2), in all#
+# cases as published by the Free Software Foundation. #
+# #
+########################################################################
+
+CC = gcc
+
+BIN = gluster-block
+OBJS = glfs-operations.o ssh-common.o utils.o gluster-block.o
+
+CFLAGS = -g -Wall
+LIBS := $(shell pkg-config --libs uuid glusterfs-api libssh)
+
+DEPS_LIST = gcc tcmu-runner targetcli
+
+PREFIX ?= /usr/local/sbin
+MKDIR_P = mkdir -p
+LOGDIR = /var/log/
+
+
+all: $(BIN)
+
+$(BIN): $(OBJS)
+ @$(MKDIR_P) $(LOGDIR)$@
+ $(CC) $(CFLAGS) $(LIBS) $^ -o $@
+
+glfs-operations.o: glfs-operations.c glfs-operations.h
+ $(foreach x, $(DEPS_LIST),\
+ $(if $(shell which $x), \
+ $(info -- found $x),\
+ $(else, \
+ $(error "No $x in PATH, install '$x' and continue ..."))))
+ $(CC) $(CFLAGS) -c $< -o $@
+
+$(BIN).o: $(BIN).c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+install: $(BIN)
+ cp $< $(PREFIX)/
+
+.PHONY: clean distclean
+clean distclean:
+ rm -f ./*.o $(BIN)
+
+uninstall:
+ rm -f $(PREFIX)/$(BIN)