Project

General

Profile

Feature #1480

librbd: image locking

Added by Sage Weil over 8 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

Implement cooperative locking of RBD images (coordinated on the header, of course). Write public class functions to support both exclusive and shared locking, to list lock holders, and to let third parties remove locks. Then implement corresponding librbd functions, and write tests for the new functionality.
Support having multiple locks from the same entity (ie, multiple VMs on the same KVM host) by storing lockers as both the entity and a request-defined cookie.

History

#1 Updated by Sage Weil over 8 years ago

  • Target version set to v0.38

#2 Updated by Sage Weil over 8 years ago

  • Target version deleted (v0.38)
  • translation missing: en.field_position set to 43

#3 Updated by Sage Weil over 8 years ago

  • translation missing: en.field_position deleted (54)
  • translation missing: en.field_position set to 36

#4 Updated by Sage Weil over 7 years ago

  • translation missing: en.field_position deleted (364)
  • translation missing: en.field_position set to 20

#5 Updated by Sage Weil over 7 years ago

  • Subject changed from rbd: EBUSY locking to rbd: image locking
  • translation missing: en.field_position deleted (20)
  • translation missing: en.field_position set to 20

#6 Updated by Sage Weil over 7 years ago

lock(entity)
unlock(entity)

new code should lock before open, unlock on close.

the rbd map tool have 'lock list', 'lock add', 'lock break' commands (maybe better verbs tho?).

a paranoid user can blacklist a node they are breaking the lock for before breaking it, to ensure they don't corrupt the image.

#7 Updated by Sage Weil over 7 years ago

  • translation missing: en.field_position deleted (21)
  • translation missing: en.field_position set to 9

#8 Updated by Greg Farnum over 7 years ago

  • Assignee set to Greg Farnum

#9 Updated by Greg Farnum over 7 years ago

  • Description updated (diff)

#10 Updated by Greg Farnum over 7 years ago

  • Description updated (diff)

#11 Updated by Sage Weil over 7 years ago

  • Target version set to v0.49
  • translation missing: en.field_position deleted (29)
  • translation missing: en.field_position set to 1313

#12 Updated by Sage Weil over 7 years ago

  • translation missing: en.field_story_points set to 5
  • translation missing: en.field_position deleted (1313)
  • translation missing: en.field_position set to 1313

#13 Updated by Sage Weil over 7 years ago

  • Target version deleted (v0.49)
  • translation missing: en.field_position deleted (1314)
  • translation missing: en.field_position set to 2

#14 Updated by Sage Weil over 7 years ago

  • Target version set to v0.49
  • translation missing: en.field_position deleted (3)
  • translation missing: en.field_position set to 1316

#15 Updated by Sage Weil over 7 years ago

  • Subject changed from rbd: image locking to librbd: image locking
  • translation missing: en.field_position deleted (1316)
  • translation missing: en.field_position set to 1316

#16 Updated by Greg Farnum over 7 years ago

  • Status changed from New to Need Review

wip-rbd-locking

#17 Updated by Greg Farnum over 7 years ago

And after thorough review from Josh, this should be ready for merge (commit:5b1b02b60a253092700f364dca77bb6b1065e3e0). But I'm holding off because I don't know if we want to set up a plan for rbd merges this sprint.

#18 Updated by Greg Farnum over 7 years ago

  • Status changed from Need Review to Resolved

Okay, discussed and merged in commit:dac9f223598c5f67b228403e514f202280d56488

#19 Updated by Sage Weil over 7 years ago

  • Project changed from Ceph to rbd
  • Category deleted (librbd)

#20 Updated by Sage Weil over 7 years ago

  • Target version deleted (v0.49)

#21 Updated by Sage Weil over 7 years ago

  • Target version set to v0.49

Also available in: Atom PDF