From 62c0e1a9b2af8565497fa5a34193707c5bab5d15 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Fri, 23 Dec 2016 21:37:29 +0530 Subject: 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 Create the gluster block -v, --volume gluster volume name -h, --host node addr from gluster pool -s, --size block storage size in KiB|MiB|GiB|TiB.. -l, --list List available gluster blocks -i, --info Details about gluster block -m, --modify Modify the metadata -d, --delete Delete the gluster block [-b, --block-host ] 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 --- Makefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Makefile (limited to 'Makefile') 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. # +# 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) -- cgit