Skip to content

Define and implement the Ceph-backed volume lifecycle #102

Description

@halfcyan

Summary

Allow VM disks to use Ceph RBD without requiring a full local image copy on every compute node.

Scope

  • Document local-file versus RBD behavior.
  • Define volume ownership, attachment, mapping, teardown, and deletion semantics.
  • Implement RBD volume resolution/mapping through an abstraction that can be mocked.
  • Make mapping and teardown idempotent.
  • Add configuration for pool/image references.
  • This issue defines the storage model Odorobo will use after adoption; it does not migrate existing Odorobo deployments.

Tasks

  • Document local-file, RBD, and image-copy behavior.
  • Define the initial supported storage contract
  • Define volume ownership, attachment, mapping, teardown, and deletion states.
  • Introduce a mockable storage-provider abstraction.
  • Implement Ceph RBD URI parsing and validation.
  • Implement RBD mapping and block-device resolution.
  • Track active attachments so shared volumes are not unmapped prematurely.
  • Make mapping, unmapping, and cleanup idempotent.
  • Add configuration for Ceph pools, images, and credentials.
  • Add mocked storage-provider tests for success and failure paths.

What this should do

  • A VM can reference an RBD volume through the Odorobo manifest/URI.
  • The VM does not require a node-local full-image copy.
  • Mapping failures produce actionable VM errors.
  • Unmapping only occurs when the volume is no longer in use.
  • Tests do not require Ceph in CI.

Related issues

Issue links

  • Related to existing #10 and #16.
  • Enables #103.
  • Uses the manifest contract from #98.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions