bareon-specs/specs/size-unit-conversion-and-relative-sizing.rst
Max Lobur 7a4b7d1fca Add unit-conversion-and-relative-sizing spec
Change-Id: I12c6c53f6e83fc4167942165a7015ed095b060e4
2016-02-10 12:34:18 +02:00

1.9 KiB
Raw Permalink Blame History

This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode

Size unit conversion and relative sizing

https://blueprints.launchpad.net/bareon/+spec/size-unit-conversion-and-relative-sizing

Problem description

The only size unit Bareon currently supports is MiB. Users often want to use both GiB and MiB, as well as relative sizes like 50%, which is impossible.

Proposed change

NOTE: This is a contribution of the feature developed within Cray OpenStack project. We will try to make a minimum changes to existing code.

All “size” values are strings containing either an integer number and size unit (e.g., “100 MiB” or 100MiB”).

Available measurement units are:

  • MB, GB, TB, PB, EB, ZB, YB,
  • MiB, GiB, TiB, PiB, EiB, ZiB, YiB

Also relative values are supported for partition, pv and lv. Relative values use the size of the containing device or volume group as a base. For example, specifying “40%” for a 100MiB disk would result in a 40MiB partition. Obviously, relative sizes cannot be used for disks.

The user can also specify “remaining” as a size value for a volume in a disk or in a volume group. When “remaining” is specified, all remaining free space on the drive after allocations are made for all other volumes will be used for this volume.

All the conversion is done in Ironic data driver, before the schema is mapped to object model. Internally we continue to use MiB everywhere.

Alternatives

None.

Implementation

Assignee(s)

  • max_lobur

Milestones

See blueprint ref above.

Work Items

  • rebase on bareon master.

Dependencies

None.