TripleO should allow discovery of Ceph OSD devices based on device descriptions

Registered by John Fulton on 2018-02-12

At a large scale, it may be difficult to specify Ceph OSDs, and their journals, by device name without first automating the generation of the yaml that is provided as input to TripleO. This is a proposal to move the burden of generating this type of input yaml from the deployer to the deployment tool.

In a small deployment, with uniform storage nodes, the deployer may specify a list of OSD devices, e.g. ['/dev/sdb', '/dev/sdc', '/dev/sdd']. However, at large scale, the number and type of devices may differ due to purchasing hardware at different times. This complexity may be compounded if the hardware device names are not stable across reboots. Though these matters may be resolved by using node-specific hiera data and using a path like /dev/disk/by-path/ with PCI IDs, e.g. pci-0000:02:00.0-scsi-0:0:0:0, the deployer would need to retrieve this data from Ironic and generate the THT yaml using a scripting language. An alternative to this solution, is to be able to use a higher-level device description where the devices are referenced by their features, rather than by name. For example:

 {'vendor':'SAMSUNG', size:'256G', 'rotational':'no'}

The above example is from a proposed feature coming in ceph-ansible tracked by https://github.com/ceph/ceph-ansible/issues/1084 and this proposal is contingent on that feature. Assuming that feature merges, this proposal's implementation will result in updates to TripleO to support a syntax like the above in addition to documentation and CI updates to test the above.

Blueprint information

Status:
Not started
Approver:
Alex Schultz
Priority:
Medium
Drafter:
John Fulton
Direction:
Approved
Assignee:
John Fulton
Definition:
Approved
Series goal:
Accepted for future
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

[2018-07-11] Moving to Stein as we're fast approaching Rocky M3 and there are no patches.
No update from ceph-ansible on this feature so puting to tripleo-future

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.