summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-07-05 04:03:47 +0000
committerGerrit Code Review <review@openstack.org>2017-07-05 04:03:47 +0000
commit953ab6888e27ba47e272d8d41e8962043c024a22 (patch)
tree89c751c23787b18a636606c4b94c88783ede1500
parente635f299656dbddf34eb5a8a8ed8476600f65c88 (diff)
parentc5437922439425ae2924147a090474fa9aeb7192 (diff)
Merge "Track resources using Placement"
-rw-r--r--specs/pike/approved/track-resources-using-placement.rst162
1 files changed, 162 insertions, 0 deletions
diff --git a/specs/pike/approved/track-resources-using-placement.rst b/specs/pike/approved/track-resources-using-placement.rst
new file mode 100644
index 0000000..9a1e617
--- /dev/null
+++ b/specs/pike/approved/track-resources-using-placement.rst
@@ -0,0 +1,162 @@
1..
2 This work is licensed under a Creative Commons Attribution 3.0 Unported
3 License.
4
5 http://creativecommons.org/licenses/by/3.0/legalcode
6
7=================================================
8Track baremetal resources using Placement service
9=================================================
10
11https://blueprints.launchpad.net/mogan/+spec/track-resources-using-placement
12
13This spec proposes using placement service for baremetal resources tracking.
14The placement service is intended to enable more effective accounting of
15resources and better scheduling of various entities in the cloud.
16
17
18Problem description
19===================
20
21We'd like to be able to schedule not only based on baremetal node resources,
22but also other resources in the cloud like shared storage. So we need to move
23to this more generic modeling of quantitative and qualitative resources.
24
25Use Cases
26---------
27
28Cloud operators want to be able to add new classes of resources to the system
29with a generic model and do so without any downtime caused by database schema
30migrations.
31
32
33Proposed change
34===============
35
36* We will define new resource classes for each node accodring to what is in
37 the ironic node's `resource_class` attribute.
38
39* Generate the resource provider for each baremetal node to track the
40 resources, set provider's inventory to a single record of custom resource
41 class. The resource tracking model is as the following::
42
43 resource classes: CUSTOM_GOLD CUSTOM_SILVER
44 / \ |
45 resource providers: baremetal_node1 baremetal_node2 baremetal_node2
46 | | |
47 inventories: {'CUSTOM_GOLD': 1} {'CUSTOM_GOLD': 1} {'CUSTOM_SILVER': 1}
48
49* As we consume baremetal nodes atomically not piecemeal, so the inventory data
50 for such resource provider should be as::
51
52 Inventory: {
53 "resource_provider_id": 1,
54 "resource_class_id": 10001,
55 "total": 1,
56 "reserved": 0,
57 "min_unit": 1,
58 "max_unit": 1,
59 "step_size": 1,
60 "allocation_ratio": 1.0
61 }
62
63* For **qualitative** aspects of the baremetal resources, the placement traits
64 is targeted to support this, we can use custom traits to define what the
65 resource provider's characteristics is.
66
67* Modify resource tracker to periodically report node resources to placement
68 service, which will also remove the orphan nodes.
69
70* Needs to change filter_scheduler to call placement REST API to get filtered
71 nodes like below::
72
73 GET /resource_providers?resources=CUSTOM_GOLD:1
74
75
76Alternatives
77------------
78
79None
80
81Data model impact
82-----------------
83
84This will remove ComputeNodes and ComputePorts objects.
85
86REST API impact
87---------------
88
89None
90
91Security impact
92---------------
93
94None
95
96Notifications impact
97--------------------
98
99None
100
101Other end user impact
102---------------------
103
104None
105
106Performance Impact
107------------------
108
109None
110
111Other deployer impact
112---------------------
113
114This will break all mogan deployments as we migrate resources tracking to
115another service, but as we don't have any release yet, so we suppose there's
116no mogan deployment.
117
118Developer impact
119----------------
120
121None
122
123Implementation
124==============
125
126Assignee(s)
127-----------
128
129Primary assignee:
130 liusheng
131
132Other contributors:
133 zhenguo
134
135Work Items
136----------
137
138* Add placement client and config options.
139* Update resource tracker to report resources to placement.
140* Adjust scheuler filters for such refactoring.
141* remove the compute_nodes and compute_ports resources objects.
142* Add UT and docs.
143
144Dependencies
145============
146
147None
148
149Testing
150=======
151
152Unit Testing will be added.
153
154Documentation Impact
155====================
156
157Docs about new flavor will be added.
158
159References
160==========
161
162None