Add a -o / --options option, which would allow users to specify
rbd-specific and generic ceph client and osd options available at
mapping time in a comma separated list (similar to mount(8) mount
options).
Exposed options are:
- fsid=%s
- ip=%s
- share
- noshare
- crc
- nocrc
- osdkeepalive=%d
- osd_idle_ttl=%d
- rw
- ro (equivalent to existing --read-only flag)
The rw/ro < 3.7 kernels compatibility kludge added in commit
fb0f198644 is preserved.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Commit c76bbc2e6d, which introduced _daemon versions of some of the
argparse calls, also changed the behaviour of non-_daemon versions.
The change resulted in incorrect error messages, e.g.
$ ./rbd create b0 --size
rbd: extraneous parameter --size
instead of what should have been
$ ./rbd create b0 --size
Option --size requires an argument.
The users of _daemon versions were added in commit be801f6c50 and
removed in commit f26bd55e57, so just kill the _daemon versions and
restore the old behaviour. (This effectively reverts commit
c76bbc2e6df1.)
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
(currently only in some librados operations)
First create the op, only then lock and submit so that we reduce lock
contention.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Use the newly-discovered (for me) deprecated attribute to mark the old
get_version() method and point users toward get_version64(). And fix a
couple of users in the kvstore code!
Signed-off-by: Sage Weil <sage@inktank.com>
The parent is always a snapshot. We may want to treat it differently
than other snaps by virtue of it (likely) being a more highly-shared
image.
By default, localize parent reads.
Signed-off-by: Sage Weil <sage@inktank.com>
It may be the case that stop.sh can't stop a process for reasons
unrelated to vstart.sh. Because apache runs independantly, for
instance. Instead of trying forever, try twice in a raw ( should be
enough 99% of the case ) and try three more times, sleeping one second
between each try should be more than enough.
Signed-off-by: Loic Dachary <loic@dachary.org>
Pass the features in explicitly so that we can use messages we've just
decoded in resend_routed_requests().
Keep the features in struct RoutedRequest.
Renamed conn_features -> con_features while we are here.
Signed-off-by: Sage Weil <sage@inktank.com>
- whitespace in crush.h
- format is_out() definition and call site to 80 columns
- whitespace around local_fallback_tries in crush_choose_firstn()
All of this is to shrink the diff with the kernel implementation.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
kernel-doc syntax is "@arg: desc", not "@param arg desc". In addition,
these comments are usually placed around function definitions instead
of function declarations. Follow these guidelines to shrink the diff.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Kernel implementation is located in net/, and use of "unsigned int" is
preferred to bare "unsigned" in net tree (as proven by several net/
cleanups). Follow this guideline to shrink the diff.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
The --pidfile option of pkill is not supported by all versions. Use kill
instead for compatibility. Instead of looping on : loop on sleep 1 so an
inifinite loop does is slower at filling the disk.
Signed-off-by: Loic Dachary <loic@dachary.org>
We are relying on connection features to track OSD supported
features. However, we were not forwarding connection features
when we forwarded a message from a peon to the leader. That
was breaking the OSD feature tracking.
Fixes: 7051
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
It is inconvenient to run such tests in the
qa/workunits/cephtool/test.sh because they require that the mon is
restarted to test errors in the format of the default erasure code
properties and check the appropriate error message is output.
osd-pool-create.sh runs a single mon from sources using command
line options and a temporary directory, the same way vstart.sh does but
lightweight.
Signed-off-by: Loic Dachary <loic@dachary.org>
If no properties are set when creating an erasure coded pool, default to
using the jerasure plugin with the cauchy_good technique which is the
fastest.
The defaults are set with osd_pool_default_erasure_code_properties.
The erasure code plugins are loaded from the directory specified in the
erasure-code-directory property. Contrary to the other properties it
will most commonly be the same throughout the cluster. The default is
set to /usr/lib/ceph/erasure-code with
osd_pool_default_erasure_code_directory
Signed-off-by: Loic Dachary <loic@dachary.org>
Add a stringstream argument to prepare_new_pool for the purpose of
recording human readable error message.
Signed-off-by: Loic Dachary <loic@dachary.org>
It is capable of parsing json or key=value pairs. The prototype is made
to look like get_str_list. The implementation is in common + include and
use .h. It will probably be moved to common and use .hpp instead, along
with str_list.{cc,h}.
Signed-off-by: Loic Dachary <loic@dachary.org>
They must be dumped with open_object_section instead of
open_array_section otherwise only the values are displayed.
Signed-off-by: Loic Dachary <loic@dachary.org>
When osd create pool is called twice on the same pool, it will succeed
because the pool already exists. However, if a different type is
specified, it must fail.
Signed-off-by: Loic Dachary <loic@dachary.org>
Install the plugins in /usr/lib/ceph/erasure-code instead of
/usr/lib/erasure-code to comply with FHS : "Applications may use a
single subdirectory under /usr/lib."
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html
The debian package is modified to install the plugins as part of the
ceph package which also ships rados-classes.
Signed-off-by: Loic Dachary <loic@dachary.org>
The test is updated to remove unecessary asserts. Since all combinations
of properties and pool type are allowed, there is no way to statically
check the validity of the arguments.
Signed-off-by: Loic Dachary <loic@dachary.org>