| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the default logdir is DATADIR /log/gluster-block/
This patch will provide a way to change this default logdir via Env variable
$ export GB_LOGDIR=/var/log/gluster-block-new-path/
Note: make sure to restart the processes (cli & daemon) after you set GB_LOGDIR
Change-Id: Id142e4a4dfe7b6ebc9cf8296b8ceb8bff37691b8
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following warning is reported with Fedora Rawhide (F-27) that comes
with an updated gcc version (7.1.1):
utils.c:217:21: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
if (!tmp && (size * count)) {
~~~~~~^~~~~~~~
Change-Id: If1645e0e1cc1eaa1d8261914918c5a5be13d6dd8
Signed-off-by: Niels de Vos <ndevos@redhat.com>
|
|
|
|
|
| |
Change-Id: I65ad54381362280d9a5596e48aa3242f1160fd2d
Signed-off-by: Michael Adam <obnox@redhat.com>
|
|
|
|
|
|
|
|
|
| |
currently we allocate sparse files for block backends in the gluster
volume, with 'prealloc = full' option introduced by this patch we should
be able to fully preallocate the backend block file.
Change-Id: Ibf32df5f978f732a3fd248693170463da6d08268
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also s/BLOCK CONFIG NODE(S)/EXPORTED NODE(S)/ in the info output
$ gluster-block info sample/block
NAME: block
VOLUME: sample
GBID: 6bd70984-be2c-43ac-9e9d-bad04010e42f
SIZE: 1.0 GiB
HA: 1
PASSWORD:
EXPORTED NODE(S): 192.168.0.105
Change-Id: I473b854b939c96b99be8e0b172ac6957b8bc6006
Fixes: #23
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, we can further narrow down the reason for command
failure on remote node.
We get to know if:
* targetcli is installed
* tcmu-runner is running
* user:glfs is listed
Change-Id: Ib39ec525f951ca510008327b59ab99d8f7645ced
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
| |
Change-Id: I9dd396737a6719fe3828ec3e9c26bfd8aa1da238
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
-------
Epoch number, eg: [1496312036]
Now:
----
Human readable, eg: [2017-06-01 18:37:46.834377]
Change-Id: Ibcb3de512086f6fa36ad7169f0d9189636361331
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds '--log-level' options
supported log levels:
{
"NONE",
"ERROR",
"WARNING",
"INFO",
"DEBUG",
"TRACE"
}
TRACE being max logging
$ gluster-blockd --help
[...]
--log-level <LOGLEVEL>
Logging severity. Valid options are,
TRACE, DEBUG, INFO, WARNING, ERROR and NONE [default: INFO]
[...]
Change-Id: I5a387eea3e7e7be10a0b56102a61eb81b4ebf2fa
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
| |
Change-Id: I7a2f8804b7d33c58101bbfb58dcff15370239311
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ gluster-blockd --help
gluster-blockd (0.2)
usage:
gluster-blockd [--glfs-lru-count <count>]
commands:
--glfs-lru-count <count>
glfs objects cache capacity [max: 512] (default: 5)
--help
show this message and exit.
--version
show version info and exit.
Change-Id: I00a9277690a1c5ace51e223e9e4ed9ce61ae2428
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
-------
1. Currently, each cli command take ~5 secs for execution. The Maximum
latency is due to initializing a glfs object (glfs_init() and friends).
2. OOM kills due to glfs_fini() leaks (~10MB per object)
Solution:
--------
Caching bipasses glfs_init() calls from the very next command, as in the first
command it goes via the glfs_init route, since there will be cache miss.
Hence with caching cli command on a local machine should take ~1 sec.
ATM, the cache query looks at the volume name only, as the host name will be
localhost in our case and transport will be tcp 24007 always.
The default cache capacity is 5 i.e there can be a max of five glfs entries in
the cache, anything more will lead to release of least recently used object.
This way, if there are <= 5 volume in use for block, there will be no
glfs_fini() calls, hence no leaks, no OOM's.
The next patch will help in making cache capacity configurable.
Change-Id: Ia891451cb92cf09959c1aff85976d78302ec7014
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
[ndevos: correct compiling+linking against libgfapi.so]
|
|
|
|
|
|
|
| |
Also use O_SYNC while creating/truncating block file.
Change-Id: Ic0bcc3f2905c438ca5b5d3e95955bbd5d95d3ef4
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduce or rather implement modify command for
enabling authentication for block devices.
The schematics of authentication setting, looks like
$ gluster-block modify block-test/sample-block auth enable --json-pretty
{
"SUCCESSFUL ON":[
"192.168.0.105"
],
"IQN":"iqn.2016-12.org.gluster-block:8917def2-e90d-4406-8c9c-6d06b6851bbe",
"USERNAME":"8917def2-e90d-4406-8c9c-6d06b6851bbe",
"PASSWORD":"a3e75362-a446-45af-98d0-a1ed7e10d7f0",
"RESULT":"SUCCESS"
}
As an effect it brings changes in 'info' command response, note PASSWORD
$ gluster-block info block-test/sample-block --json-pretty
{
"NAME":"sample-block",
"VOLUME":"block-test",
"GBID":"8917def2-e90d-4406-8c9c-6d06b6851bbe",
"SIZE":1073741824,
"HA":1,
"PASSWORD":"a3e75362-a446-45af-98d0-a1ed7e10d7f0",
"BLOCK CONFIG NODE(S)":[
"192.168.0.105"
]
}
The schematics of auth disabling, looks like
$ gluster-block modify block-test/sample-block auth disable --json-pretty
{
"SUCCESSFUL ON":[
"192.168.0.105"
],
"IQN":"iqn.2016-12.org.gluster-block:add99c38-3c14-42d7-bf23-7d02f388e1e7",
"RESULT":"SUCCESS"
}
Change-Id: I06d095b50401c131ac89cc142497f21d2205164a
Fixes: #5
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is how cli response looks like, on supplying '--json*' flag to cmd-args:
$ gluster-block create block-test/sample-block1 ha 1 localhost.localdomain 1GiB --json
(or)
$ gluster-block create block-test/sample-block2 ha 1 localhost.localdomain 1GiB --json-spaced
{ "IQN": "iqn.2016-12.org.gluster-block:681af106-85f1-4a02-a122-57c80903458c", \
"PORTAL(S)": [ "localhost.localdomain:3260" ], "RESULT": "SUCCESS" }
$ gluster-block create block-test/sample-block3 ha 1 localhost.localdomain 1GiB --json-plain
{"IQN":"iqn.2016-12.org.gluster-block:0fdf6647-57f2-477f-8dd4-54a3de06e410",\
"PORTAL(S)":["localhost.localdomain:3260"],"RESULT":"SUCCESS"}
$ gluster-block create block-test/sample-block4 ha 1 localhost.localdomain 1GiB --json-pretty
{
"IQN":"iqn.2016-12.org.gluster-block:e92ca4a0-5325-4c4b-a407-9e75790e4c7f",
"PORTAL(S)":[
"localhost.localdomain:3260"
],
"RESULT":"SUCCESS"
}
Change-Id: Ie51039e3dee0b3357d2347b4087e0fbe299aa29e
Fixes: #3
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
currently,
GLOBAL CONFIG GROUP
===================
[...]
logfile=hello
-------------
Logfile to use.
[...]
i.e. configshell logs are collected at 'hello' file.
This patch will redirect configshell logs to
'GB_LOGDIR/gluster-block-configshell.log'
Change-Id: I487c6197578c24412fbec72cb8c354725614de59
Fixes: #13
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
improve strings
add missing log messages wherever helpful
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
| |
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Reported-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
| |
replace fprintf calls with LOG()
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
mostly uninitialized use of variables.
check return values from function calls.
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
|
|
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>
|