summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix bug exposed by sparse-read from OSD: must zero-fill assembledwip-rbd-stripingDan Mick2012-12-181-5/+13
| | | | result if not at end of result bl
* librbd: read_iterate: handle partial buffers (by zero-padding)Dan Mick2012-12-171-1/+16
|
* AioCompletion.cc: finalize(): allow and zero-pad short read.Dan Mick2012-12-171-4/+6
| | | | Also assert that either read_buf is true or read_bl, but not both
* rbd: allow import into striped imagesDan Mick2012-12-141-6/+19
| | | | | | add --stripe-unit and --stripe-count to rbd import as well as create Signed-off-by: Dan Mick <dan.mick@inktank.com>
* test_rbd: add tests for sparse images, with and without stripingDan Mick2012-12-141-2/+77
| | | | | | | | Create images, and write to them in ways which should allow objects to be missing from the set of data objects; use rados.ObjectIterator to verify that only the expected set of objects is created. Signed-off-by: Dan Mick <dan.mick@inktank.com>
* Striper: permit sparse reads to propagate through assemble_resultsDan Mick2012-12-141-2/+27
| | | | | | | | | | | Striping was always zero-filling buffers that could be sparse; noticed by customers in librbd read_iterate(). This allows buffers results to come back with null buffers, so that librbd and rbd can preserve sparseness. Also, copious comments and more logging added. Signed-off-by: Dan Mick <dan.mick@inktank.com>
* rbd.py: check for new librbd methods before useJosh Durgin2012-12-131-6/+25
| | | | | | | | This way attempting to use format 2 images works when you upgrade the python bindings before librbd, and attempting to use functions that librbd does not have results in more understandable errors. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* osd: up != acting okay on mkpgSage Weil2012-12-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | This can happen when: - mon sends create pg - it gets created - osd remaps the pg to a different osd but osd does not update pg status to the mon - mkpg resent to the new osd or something along those lines. It seems unusual, but in the end who really cares why the mon doesn't know about the pg creation yet. Note that this check was added in the initial commit where acting/up was added; there is no specific condition of concern we are protecting against. Instead, ignore the message. We'll get a query soon anwyay. This 'fixes' #3614. Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
* mon: OSDMonitor: don't allow creation of pools with > 65535 pgsJoao Eduardo Luis2012-12-131-14/+26
| | | | | | | | | | | There are some limitations to the number of possible pg's per pool, and by allowing the 'osd pool create' command to succeed, we were making room to some anomalous behavior. Fixes: #3617 Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
* rbd: handle images disappearing while in ls -lDan Mick2012-12-131-1/+13
| | | | | | | | | rbd.list() returns a list of names, but nothing stops them from going away before rbd.open(); check for ENOENT and ignore if that happens; warn on other errors Signed-off-by: Dan Mick <dan.mick@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
* clarify/correct some of sample.ceph.confGreg Farnum2012-12-131-9/+9
| | | | Signed-off-by: Greg Farnum <greg@inktank.com>
* qa: echo commands run by rbd map-unmap workunitJosh Durgin2012-12-131-1/+1
| | | | | | It's hard to figure out what failed without this. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* auth: guard decode_decrypt with try blockSage Weil2012-12-121-2/+7
| | | | | | | | | | This will catch buffer decoding errors (maybe the block is empty) and return an error string. May fix (or possibly paper over) #3459. Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Greg Farnum <greg@inktank.com>
* mount.fuse.ceph: strip out noauto optionSage Weil2012-12-121-3/+9
| | | | | | | | | mount -a uses this, but also passes it to mount.fuse.ceph, and libceph complains: fuse: unknown option `noauto' Signed-off-by: Sage Weil <sage@inktank.com>
* mount.fuse.ceph: add ceph-fuse mount helperSage Weil2012-12-124-2/+26
| | | | Signed-off-by: Sage Weil <sage@inktank.com>
* /etc/init.d/ceph: fs_type assignment syntax errorDan Mick2012-12-121-1/+1
| | | | | | | | This handles the remainder of 3581; it's a lot like the problem in mkcephfs, but it isn't mkcephfs. Fixes: #3581 Signed-off-by: Dan Mick <dan.mick@inktank.com>
* docs: better documentation of new rgw featureYehuda Sadeh2012-12-121-1/+1
| | | | | | Document rgw_extended_http_attrs config option. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* rgw: configurable list of object attributesYehuda Sadeh2012-12-125-14/+114
| | | | | | | | | Fixes: #3535 New object attributes are now configurable. A list can be specified via the 'rgw extended http attrs' config param. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* rgw: option to provide alternative s3 put obj success codeYehuda Sadeh2012-12-122-0/+16
| | | | | | | | | | Fixes: #3529 Added a new option: rgw_s3_success_create_obj_status. Expected values are 0, 200, 201, 204. A value of 0 will skip the special handling altogether. Any value other than the specified will default to 200. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* doc: document swift compatibilityYehuda Sadeh2012-12-123-1/+75
| | | | | | Add a table that specifies swift features compatibility Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* docs: add rgw POST object as supported featureYehuda Sadeh2012-12-121-1/+1
| | | | Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* docs: fix spacing in radosgw config-refYehuda Sadeh2012-12-111-0/+4
| | | | | | Needed to add an extra empty line between header and properties. Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* Merge remote branch 'origin/wip-double-notify' into nextJosh Durgin2012-12-113-5/+29
|\ | | | | | | Reviewed-by: Sage Weil <sage.weil@inktank.com>
| * st_rados_watch: tolerate extra notifiesJosh Durgin2012-12-111-2/+8
| | | | | | | | | | | | | | | | With retries, it's possible for notifies to be received more than once when they are resent to different OSDs, since the OSDs only track them in memory. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
| * objecter: don't use new tid when retrying notifiesJosh Durgin2012-12-112-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Watches update the on-disk state in the OSD, and aren't idempotent, so refreshing them must be treated as a separate transaction by the OSD. Notifies are just in-memory state, and resending them will result in acceptable behavior: - if it's the same osd, the resent op will be recognized as a duplicate - if it's a different osd, a new notify will be triggered since the new osd can't tell whether the original notify was received by any watchers Using a new tid for each resend can cause some unecessary extra work, as the first case turns into the second. Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
* | os/JournalingObjectStore: un-break op quiescing during journal replaySage Weil2012-12-111-0/+15
| | | | | | | | | | | | | | | | | | | | | | Commit d9dce4e9273adb4279519d65a0d8bfdfecb5c516 broke journal replay because the commit thread may try to do a commit, and the ops are not being applied via the normal work queue. Add back in a simpler form of the old op quiescing (simpler because there is a single thread doing the replay). Signed-off-by: Sage Weil <sage@inktank.com> Reviewed-by: Samuel Just <sam.just@inktank.com>
* | mds: shutdown cleanly if can't authenticateYehuda Sadeh2012-12-112-7/+19
| | | | | | | | | | | | | | | | | | | | | | Fixes: #3590 This was triggered when tried to run mds with cephx enabled against a mon without cephx support. We didn't handle the returned error at all, so this one fixes it. It also makes sure that we don't continue initialization until rotating keys are in place (as the osd does). Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
* | Merge remote-tracking branch 'gh/wip-conf' into nextSage Weil2012-12-113-8/+6
|\ \ | | | | | | | | | Reviewed-by: Greg Farnu <greg@inktank.com>
| * | config: do not always print config file missing errorsSage Weil2012-12-103-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Do not generate errors each time we fail to open a config file; only generate one at the end if a search path was specified and none were usable, right before we (already) exit. This avoids spamming stderr about each path we tried in the search list before we found a good one. Signed-off-by: Sage Weil <sage@inktank.com>
| * | config: always complain about config parse errorsSage Weil2012-12-101-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Complain about config parsing errors even when it is the default config file. We may also want to fail instead of continuing, but that is a separate issue. Signed-off-by: Sage Weil <sage@inktank.com>
* | | mds: fix journaling issue regarding rstat accountingYan, Zheng2012-12-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename operation can call predirty_journal_parents() several times. So a directory fragment's rstat can also be modified several times. But only the first modification is journaled because EMetaBlob::add_dir() does not update existing dirlump. For example: when hanlding 'mv a/b/c a/c', Server::_rename_prepare may first decrease directory a and b's nested files count by one, then increases directory a's nested files count by one. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
* | | fix build of unittest_formatterDanny Al-Gaaf2012-12-111-1/+1
| | | | | | | | | | | | | | | | | | | | | Add CRYPTO_CXXFLAGS to unittest_formatter_CXXFLAGS to find pk11pub.h to be included in src/common/ceph_crypto.h. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | | include/atomic.h: add stdlib.h for size_tDanny Al-Gaaf2012-12-111-0/+2
| |/ |/| | | | | | | | | Include missing stdlib.h needed for size_t. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | Merge remote-tracking branch 'upstream/wip_split2' into nextSamuel Just2012-12-1025-119/+1417
|\ \ | |/ |/| | | Reviewed-by: Greg Farnum <greg@inktank.com>
| * OSD: get_or_create_pg doesn't need an op passed inSamuel Just2012-12-102-7/+5
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * LFNIndex: fix move_subdir commentsSamuel Just2012-12-101-2/+2
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * HashIndex: fix typo in reset_attr documentationSamuel Just2012-12-101-1/+1
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * HashIndex: init exists in col_split_level and reset_attrSamuel Just2012-12-101-2/+2
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * PrioritizedQueue: increment ret when removing items from listSamuel Just2012-12-101-0/+1
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * PrioritizedQueue: move if check out of loop in filter_list_pairsSamuel Just2012-12-101-4/+4
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * OSD: store current pg epoch in info and load at that epochSamuel Just2012-12-063-9/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | Prior to split, this did not matter. With split, however, it's crucial that a pg go through advance_pg() for the map causing the split. During operation, a PG lags the OSD superblock epoch. If the OSD dies after the OSD epoch passes the split but before the pg epoch passes the split, the PG will be reloaded at the OSD epoch and won't see the split operation. The PG collection might after that point contain incorrect objects which should have been split into a child. Signed-off-by: Samuel Just <sam.just@inktank.com>
| * OSD: account for split in project_pg_historySamuel Just2012-12-061-0/+7
| | | | | | | | | | | | split causes a new interval. Signed-off-by: Samuel Just <sam.just@inktank.com>
| * PG: update info.last_update_started in split_intoSamuel Just2012-12-061-0/+1
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * OSDMonitor: require --allow-experimental-feature to increase pg_numSamuel Just2012-12-061-2/+7
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * PG: set child up/acting in split_intoSamuel Just2012-12-061-0/+5
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * OSD: do _remove_pg in add_newly_split_pg is pool if goneSamuel Just2012-12-061-0/+2
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * osd/: dirty info and log on child during splitSamuel Just2012-12-062-0/+6
| | | | | | | | | | | | Otherwise, the log may not get written out. Signed-off-by: Samuel Just <sam.just@inktank.com>
| * osd/: mark info.stats as invalid after split, fix in scrubSamuel Just2012-12-064-1/+17
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * PG: split ops for child objects into childSamuel Just2012-12-066-3/+111
| | | | | | | | Signed-off-by: Samuel Just <sam.just@inktank.com>
| * OSD: add initial split supportSamuel Just2012-12-063-24/+303
| | | | | | | | | | | | | | | | | | | | PGs are split after updating to the map on which they split. OSD::activate_map populates the set of currently "splitting" pgs. Messages for those pgs are delayed until the split is complete. We add the newly split children to pg_map once the transaction populating their on-disk state completes. Signed-off-by: Samuel Just <sam.just@inktank.com>