Version on-disk metadata with two attributes,
'compat version', the minimum CephFSVolume Client
version that can decode the metadata, and
'version', the version that encoded the metadata.
Signed-off-by: Ramana Raja <rraja@redhat.com>
Add class attributes to CephFSVolumeClient to version
its capabilities.
'version' attribute stores the current version number
of CephFSVolumeClient.
'compat_version' attribute stores the earliest version
number of CephFSVolumeClient that the current version is
compatible with.
Fixes: http://tracker.ceph.com/issues/15406
Signed-off-by: Ramana Raja <rraja@redhat.com>
File locks are applied on meta files before updating the meta
file contents. These meta files would need to be cleaned up
sometime, which could lead to locks being held on unlinked meta
files. Prevent this by checking whether the file had been deleted
after lock was acquired on it.
Signed-off-by: Ramana Raja <rraja@redhat.com>
Check dirty flag after locking something and call recover() if we are
opening something dirty (racing with another instance of the driver
restarting after failure) -- only required if someone running multiple
manila-share instances with Ceph loaded.
Signed-off-by: Ramana Raja <rraja@redhat.com>
Notable changes to data layout in auth meta and volume meta files:
In the auth meta files, add a 'dirty' flag to track the status of auth
updates to a single volume.
In the volume meta file, make the 'dirty' flag track the status of
auth updates for a single ID.
Optimize the recovery of partial auth update changes to auth meta,
volume meta, and the Ceph backend, facilitated by changes in the
data layout in the meta files.
Signed-off-by: Ramana Raja <rraja@redhat.com>
Store a two-way mapping between auth IDs and volumes.
Enables us to record some metadata on auth ids (which
openstack tenant created it) so that we can avoid exposing
keys to other tenants who try to use the same ceph
auth id.
Enables us to expose the list of which auth ids have access
to a volume, so that Manila's update_access() can be
implemented efficiently.
DNM: see TODOs inline.
Fixes: http://tracker.ceph.com/issues/15615
Signed-off-by: John Spray <john.spray@redhat.com>
The 'rw+' style flags are handy and convenient, but
they don't capture all possibilities. Change to
optionally accept an integer here for advance users
who want to specify arbitrary combinations of
flags.
Signed-off-by: John Spray <john.spray@redhat.com>
This passes "ceph_test_objectstore --gtest_filter=*/2".
This restores 4K random read performance to previous levels when objects
are were previously written out using large IOs (4MB in this case):
pre-patch: 26MB/s
post-pated: 610MB/s
Closes#10320
Signed-off-by: Mark Nelson <mnelson@redhat.com>
A bluestore race condition is been fixed by protecting txc structures
within _txc_state_poc with collection lock.
Mark's comments:
This fixes segfaults during random write tests with bluestore.
This passes "ceph_test_objectstore --gtest_filter=*/2".
This may introduce a small performance regresion, though there is enough
noise in the results to make it inconclusive.
Closes#10220
Signed-off-by: Somnath Roy <somnath.roy@sandisk.com>
because RGWCoroutine::wakeup() calls RGWCoroutinesStack::wakeup(), the
stack must also stay alive
Fixes: http://tracker.ceph.com/issues/16666
Signed-off-by: Casey Bodley <cbodley@redhat.com>
sadly, sh evalutes `[ -d ]` to true. as it takes "-d" as a non-empty
string as true.
this fixes following failure
```
2016-07-12T23:22:02.839 INFO:teuthology.orchestra.run.mira084.stderr:cp:
missing destination file operand after ‘.’
2016-07-12T23:22:02.839 INFO:teuthology.orchestra.run.mira084.stderr:Try
'cp --help' for more information.
```
see
http://pulpito.ceph.com/kchai-2016-07-12_23:09:35-rados-wip-kefu-testing2---basic-mira/311334/
Signed-off-by: Kefu Chai <kchai@redhat.com>
Introduce a new RGWSetattrs RGWOp descendant, to create or replace
sets of attrs on buckets or objects.
This version of the change uses the standard RGWRADOS::set_attrs op
(we want attribute changes to (e.g.) sync with other changes).
Previous versions of this changed incorrectly masked the values
of st->st_ino in RGWFileHandle::stat(), now fixed.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>