summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* NEWS: initial releasev0.1Prasanna Kumar Kalever2017-02-272-1/+8
| | | | | Change-Id: Ieaa644063e088f27fe1102a351335d65ffb54efc Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: parse create and delete outputsPrasanna Kumar Kalever2017-02-275-91/+474
| | | | | | | | | | | | | | | | The new parsed output of create and delete command will look like: $ gluster-block create sample/sample-block ha 2 ${HOST1} ${HOST2} 1GiB IQN: iqn.2016-12.org.gluster-block:aafea465-9167-4880-b37c-2c36db8562ea PORTAL(S): ${HOST1}:3260 ${HOST2}:3260 RESULT: SUCCESS $ gluster-block delete sample/sample-block SUCCESSFUL ON: ${HOST1} ${HOST2} RESULT: SUCCESS Change-Id: Id98e643c62a898a1f7298b6cfeb6ddfa10397b7f Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* INSTALL: add install guidePrasanna Kumar Kalever2017-02-273-2/+75
| | | | | Change-Id: Icfb21f3134b9dc3817638ca48c1b0b92438cef1d Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add traditional optionsPrasanna Kumar Kalever2017-02-272-20/+32
| | | | | | | | Though we do not use '--' style for arguments, this patch add supports for traditional options "--version, --help and --usage". Change-Id: Ie8bcf05dd46cb045c46ff9aa4f3079f87f848730 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* docs: add man page for gluster-block cliPrasanna Kumar Kalever2017-02-275-2/+138
| | | | | Change-Id: Iff9d693ce4478582ddbbbe487b00d71f456929f8 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: pass "--with systemd" to rpmbuild if neededNiels de Vos2017-02-251-0/+5
| | | | | | | | | | | In case ./configure detects that the environment is using systemd, the "make install" step will copy the gluster-block.service file to the right location. However, the RPMs do not include this file by default, so adding a "--with systemd" to rpmbuild/mock is needed (until there is some form of auto-detection in the .spec). Change-Id: Id64fa664f5b2a3d3c4675b2ad7a54d415a54281a Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: cleaner build RPMs with "make rpms"Niels de Vos2017-02-251-8/+10
| | | | | | | | | | | | There is no need to copy all the files everywhere, this can be controlled with --define options to rpmbuild. Also add a "make srpm" target for building the source RPM that can then be built with 'mock' or uploaded to build systems from different distributions. Change-Id: Ib66bfe9b981fd9bf12f997d416ff3b9f53da90d8 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: refactorNiels de Vos2017-02-254-32/+30
| | | | | | | | | | | - tcmu-runner and targetcli are not build dependencies - use pkg-config to get libgfapi build parameters - cleanup .spec file Change-Id: Ib1451f7a375438cd2e78ae4137d1d02e01516fbd Signed-off-by: Niels de Vos <ndevos@redhat.com>
* cli: change in synopsis for gluster-block commandsPrasanna Kumar Kalever2017-02-245-231/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from now we will have fixed formats for commands. The new outfit will look like: $ gluster-block help gluster-block (3ba7ec5) usage: gluster-block <command> <volname[/blockname]> [<args>] commands: create <volname/blockname> [ha <count>] <host1[,host2,...]> <size> create block device. list <volname> list available block devices. info <volname/blockname> details about block device. delete <volname/blockname> delete block device. help show this message and exit. version show version info and exit. Example usage: $ gluster-block create volume/blockname 192.168.0.1 1GiB $ gluster-block create volume/blockname ha 2 192.168.0.1,192.168.0.2 1GiB $ gluster-block list volume $ gluster-block info volume/blockname $ gluster-block delete volume/blockname Change-Id: Idc6b55c26432ed1ac3f002c2a2b3dbb81b180ec2 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* lockfile: don't allow multiple instances of daemon to runPrasanna Kumar Kalever2017-02-212-7/+38
| | | | | | | | | | | | | | until now there is no check to defend on multiple runs of daemon within the same node. This patch takes a non blocking lock on 'gluster-blockd.lock' file, if it succeeds only then daemon is allowed to run, if there is already a lock on lock-file (taken by some other instance of gluster-blockd) we will exit. This patch also renames GB_UNIX_ADDRESS from gluster-block.socket to gluster-blockd.socket, as that makes better sense. Change-Id: I43b285f9da15d078fe3df4d231d0ef8d44272d8f Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* Fix line space in readmeNigel Babu2017-02-211-2/+3
| | | | | Change-Id: I3680cc30356d843a48fd9bc41a104acab2ac2d76 Signed-off-by: Nigel Babu <nigelb@redhat.com>
* gluster-blockd: defend on connect() issuesPrasanna Kumar Kalever2017-02-202-12/+31
| | | | | | | | | | | | | | | currently remote connect(b/w gluster-blockd's) failed cases such as, ECONNREFUSED No-one listening on the remote address. ENETUNREACH Network is unreachable. ETIMEDOUT Timeout while attempting connection ... are considered as CONFIGFAIL, this patch defend on these errno's. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: treat delete success if block doesn't existPrasanna Kumar Kalever2017-02-201-0/+15
| | | | | | | | | | | | | problem: say because of some reasons create failed to config on node, so it will log CONFIGFAIL in the metafile. At the time of delete since config failed it is obvious that block will not exist. since delete cannot find it now it fails to delete hence returning -1. solution: treat delete success if there is no block with given name on that node. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: fix violation of double pointer usagePrasanna Kumar Kalever2017-02-201-50/+21
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: fix bug in glusterBlockCleanUpPrasanna Kumar Kalever2017-02-201-3/+3
| | | | | | | fix filename in GB_METAUPDATE_OR_GOTO() i.e change gbid to blockname Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: improve log messagesPrasanna Kumar Kalever2017-02-204-104/+161
| | | | | | | improve strings add missing log messages wherever helpful Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: refactor return valuesPrasanna Kumar Kalever2017-02-199-87/+189
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* docs: Update README.mdPrasanna Kumar Kalever2017-02-171-153/+64
| | | cli changes updated.
* create: cleanup config in all the nodes if mpath is not satisfiedPrasanna Kumar Kalever2017-02-171-82/+88
| | | | | | partial success is treated as failure. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: deprecate volserver optionPrasanna Kumar Kalever2017-02-179-43/+18
| | | | | | | volserver can be considered as "localhost", as we anyway tieing-up glusterd, gluster-blockd and cli processes. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: improve help messagePrasanna Kumar Kalever2017-02-161-11/+11
| | | | | Signed-off-by: Vijay Bellur <vbellur@redhat.com> Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* meta: thread safe GB_METAUPDATE_OR_GOTOPrasanna Kumar Kalever2017-02-162-64/+80
| | | | | | | | | | | | GB_METAUPDATE_OR_GOTO used an already opened glfs fd to update the meta data, since we have mpath number of threads writing to the same metadata file simultaneously, this will lead to thread concurrency and data consistency issues. Hence this patch protects GB_METAUPDATE_OR_GOTO with a lock and removes fd sharing by moving glfs_creat/open and glfs_close within the MACRO. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* daemon: fix minor bugsPrasanna Kumar Kalever2017-02-166-101/+144
| | | | | Reported-by: Pranith Kumar K <pkarampu@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: update dependency listPrasanna Kumar Kalever2017-02-152-0/+15
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add command to furnish pkg version infoPrasanna Kumar Kalever2017-02-153-26/+46
| | | | | | | | | Improvements: Version info displaying. Improve help menu. This patch also makes 'mpath' option as optional (default: 1) Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: cart off unwanted output from create commandPrasanna Kumar Kalever2017-02-153-4/+5
| | | | | | | | | | | | | | The response of below sub-operations as part of create are undesired $ targetcli set global auto_add_default_portal=false $ targetcli / saveconfig $ targetcli set attributes generate_node_acls=1 demo_mode_write_protect=0 Hence redirecting them to '/dev/null' This patch also fix a bug in the previous patch i.e. missed inverting [!] function return in if() Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: create logging directoriesPrasanna Kumar Kalever2017-02-157-10/+49
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: add portal creationPrasanna Kumar Kalever2017-02-152-5/+22
| | | | | | | The portal that target listens on by default will be 0.0.0.0; With this patch we will be changing that to hostname of local machine. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* daemon: redirect logs to logdirPrasanna Kumar Kalever2017-02-143-28/+63
| | | | | | replace fprintf calls with LOG() Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: review fixes in gluster-blockPrasanna Kumar Kalever2017-02-116-48/+69
| | | | | | Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* glfs: fix memory leak in blockStuffMetaInfoPrasanna Kumar Kalever2017-02-111-15/+28
| | | | | | Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* tests: add basic test scriptPrasanna Kumar Kalever2017-02-101-0/+88
| | | | | | | | Make sure you have all the dependent binaries Run: $ ./tests/basic.t Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: improve cli usage hintsPrasanna Kumar Kalever2017-02-101-5/+18
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: threadify remote requestsPrasanna Kumar Kalever2017-02-092-66/+219
| | | | | | | | | | | | | | | Before: ------ rpc clnt_call() is synchronous, for a multipath request each remote call has to wait until the previous remote call returns i,e each remote op happens in serial. After: ----- As we now threadify the remote calls, all the remote call's happens in parallel shrinking the overall latency for create and delete requests. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: create block files in '/block-store' dirPrasanna Kumar Kalever2017-02-085-17/+76
| | | | | | | | | | | | | | | | | till now we have '/block-meta' dir for meta files and actual block files used to reside in '/' dir. From now, lets place block files in '/block-store' So, this is how it looks like: $ tree /mnt/ /mnt/ ├── block-meta │   ├── meta.lock │   └── TARGET └── block-store └── 103e4cf1-bf41-404a-9fe1-b7c70fc33b3e Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* license: add licensing and copyright filesPrasanna Kumar Kalever2017-02-083-1/+505
| | | | | | patch also does minor correction in package name. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: fix minor warningsPrasanna Kumar Kalever2017-02-087-66/+161
| | | | | | | mostly uninitialized use of variables. check return values from function calls. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: add uuid and pthread libraries to dependency listPrasanna Kumar Kalever2017-02-073-7/+18
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gfapi: unify calls to glfs_init and friendsPrasanna Kumar Kalever2017-02-073-28/+11
| | | | | | | There were two glfs_init(and friends) invocations per op (create & delete). This patch just unifies those calls (since they anyway belong to same volume) Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: migrate build to libtoolz and create rpmPrasanna Kumar Kalever2017-02-0724-225/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | Till now we had simple makefile for checking dependencies and building. Using libtoolz will give more control on dependency checks and flexibility. This patch also introduce rpm build feature. Compiling: $ ./autogen.sh $ ./configure $ make -j $ make install Building RPMS: $ make rpms Running: $ systemctl start gluster-blockd.service Using CLI: $ gluster-block help Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: deprecated getopts_long usagePrasanna Kumar Kalever2017-02-054-179/+314
| | | | | | | | | | | | | | | | | | | deprecated getopts as to eliminate use of '--' with command line options The new usage looks like: gluster-block (Version 0.1) create <name> Create the gluster block volserver [gluster-node] node addr from gluster pool(def: localhost) size <size> block storage size in KiB|MiB|GiB|TiB.. mpath <count> multi path requirement for high availablity servers [<IP1,IP2,IP3...>] block servers, clubbed with any option list List available gluster blocks info <name> Details about gluster block modify <resize|auth> Modify the metadata delete <name> Delete the gluster block volume <vol> gluster volume name Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: refresh loggingPrasanna Kumar Kalever2017-02-059-289/+382
| | | | | | | | add more meaningful log messages minor code changes such as renaming, indentation and et cetera. Signed-off-by: Pranith Kumar Karampuri <pkarampu@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: walk through the cleanupsPrasanna Kumar Kalever2017-01-307-357/+427
| | | | | | | better naming of variables and functions, variable initialization, also fix few leaks Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: redirecting logs to respective filesPrasanna Kumar Kalever2017-01-305-96/+149
| | | | | | | | | | | now that we have various components, it make more sense to maintain individual logs: gluster-blockd -> /var/log/gluster-block/gluster-blockd.log gluster-block -> /var/log/gluster-block/gluster-block-cli.log gfapi related -> /var/log/gluster-block/gluster-block-gfapi.log Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: introduce rewind on partial successPrasanna Kumar Kalever2017-01-304-110/+145
| | | | | | | This patch also brings changes in the info output. It adds BLOCK config hosts in the output. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: do not need --block-host option for list | info |deletePrasanna Kumar Kalever2017-01-305-73/+70
| | | | | | From now we read the block-hosts from journal i.e targets meta file. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: consider spare nodes to satisfy the multipath requestPrasanna Kumar Kalever2017-01-309-79/+229
| | | | | | | | | | | In case if number of block hosts are more than the multipath request, consider that spare nodes to satify the request. Lets say we need multipath of 3, but the admin provides 5 block-hosts. If any of the node fail to configure target from first three, then consider configuring fourth node to satify the HA request. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: clean block_exec procedurePrasanna Kumar Kalever2017-01-307-180/+11
| | | | | | | | This was a hack to implement list and info commands, now that both list and info reads the metadata from the volume, we don't need block_exec anymore. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: list routine gets data from volumePrasanna Kumar Kalever2017-01-301-42/+52
| | | | | | | From now list command won't execute on remote machines, rather readdir from '/block-meta/' dir Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: info routine gets data from volumePrasanna Kumar Kalever2017-01-301-29/+12
| | | | | | | From now info command won't execute on remote machines, rather reads it from '/block-meta/*blockname*' i.e block journal Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>