Project

General

Profile

Feature #1480

librbd: image locking

Added by Sage Weil almost 9 years ago. Updated about 8 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 almost 9 years ago

  • Target version set to v0.38

#2 Updated by Sage Weil almost 9 years ago

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

#3 Updated by Sage Weil almost 9 years ago

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

#4 Updated by Sage Weil about 8 years ago

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

#5 Updated by Sage Weil about 8 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 about 8 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 about 8 years ago

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

#8 Updated by Greg Farnum about 8 years ago

  • Assignee set to Greg Farnum

#9 Updated by Greg Farnum about 8 years ago

  • Description updated (diff)

#10 Updated by Greg Farnum about 8 years ago

  • Description updated (diff)

#11 Updated by Sage Weil about 8 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 about 8 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 about 8 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 about 8 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 about 8 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 about 8 years ago

  • Status changed from New to Fix Under Review

wip-rbd-locking

#17 Updated by Greg Farnum about 8 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 about 8 years ago

  • Status changed from Fix Under Review to Resolved

Okay, discussed and merged in commit:dac9f223598c5f67b228403e514f202280d56488

#19 Updated by Sage Weil about 8 years ago

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

#20 Updated by Sage Weil about 8 years ago

  • Target version deleted (v0.49)

#21 Updated by Sage Weil about 8 years ago

  • Target version set to v0.49

Also available in: Atom PDF