ICNP 2020
Prototype of Configurable Redfish Query Proxy Module
Chanyoung Park, Yoonsue Joe, Myounghwan Yoo, Dongeun Lee, Kyungtae Kang* Hanyang University, XSLAB, Texas A&M University-Commerce
1
Prototype of Configurable Redfish Query Proxy Module Chanyoung Park - - PowerPoint PPT Presentation
Prototype of Configurable Redfish Query Proxy Module Chanyoung Park , Yoonsue Joe, Myounghwan Yoo, Dongeun Lee, Kyungtae Kang* Hanyang University, XSLAB, Texas A&M University-Commerce ICNP 2020 1 Baseboard Management Controller (BMC)
ICNP 2020
Chanyoung Park, Yoonsue Joe, Myounghwan Yoo, Dongeun Lee, Kyungtae Kang* Hanyang University, XSLAB, Texas A&M University-Commerce
1
2
Redfish Query Module Proxy Module Baseboard Management Controller (BMC)
Our work
3
Provide server baseboard management things
Web Service ex) HP iLO, DELL iDRAC, OpenBMC bmcweb, ..
ipmi Redfish Browser …
Clients
4
Provide server baseboard management things
Web Service ex) HP iLO, DELL iDRAC, OpenBMC bmcweb, ..
ipmi Redfish Browser …
Clients
5
Provide server baseboard management things
Web Service ex) HP iLO, DELL iDRAC, OpenBMC bmcweb, ..
ipmi Redfish Browser …
Clients
6
Redfish is build on top of Open Data Protocol (OData).
ex) http://url?$top=3 http://url?$expand&select=Name,SystemType
but to implement OData query features are optional
from OData and a couple of new query features ex) $top, $skip, $expand, $filter, $select, only, excerpt
7
Redfish is build on top of Open Data Protocol (OData).
ex) http://url?$top=3 http://url?$expand&select=Name,SystemType
but to implement OData query features are optional
from OData and a couple of new query features ex) $top, $skip, $expand, $filter, $select, only, excerpt
8
Redfish is build on top of Open Data Protocol (OData).
ex) http://url?$top=3 http://url?$expand&select=Name,SystemType
but to implement OData query features are optional
from OData and a couple of new query features ex) $top, $skip, $expand, $filter, $select, only, excerpt
9
Why? Because implementing query features are not easy + time consuming.
by themselves, if they are not using RDB.
Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources
Confusing…
Vendor D: We have no plan to support any query features
10
Why? Because implementing query features are not easy + time consuming.
by themselves, if they are not using RDB.
Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources
Confusing…
Vendor D: We have no plan to support any query features
11
Why? Because implementing query features are not easy + time consuming.
by themselves, if they are not using RDB.
Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources
Confusing…
Vendor D: We have no plan to support any query features
12
Delegate $filter processing when accessing resource Chassis (fast)
Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources Vendor D: We have no plan to support any query features
Processing unsupported queries instead of BMC Servers, through make multiple additional communications with backends. (Slow)
13
Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources Vendor D: We have no plan to support any query features
RedfishTool Do similar things to some target resources, with some query features Difference with RedfishTool
processing by configuration.
14
(a) Redfish service’s target resource handler does not support any query. (b) Redfish service’s target resource handler supports $expand query. Client Request: https://bmc-host/redfish/v1/resource_A?$expand=.($levels=1)&$select=Name,Id&$top=10
Configure resource_A handler can process $expand query
15
(a) Redfish service’s target resource handler does not support any query. (b) Redfish service’s target resource handler supports $expand query.
Configure resource_A handler can process $expand query
Client Request: https://bmc-host/redfish/v1/resource_A?$expand=.($levels=1)&$select=Name,Id&$top=10
16
(a) Redfish service’s target resource handler does not support any query. (b) Redfish service’s target resource handler supports $expand query.
Configure resource_A handler can process $expand query
Client Request: https://bmc-host/redfish/v1/resource_A?$expand=.($levels=1)&$select=Name,Id&$top=10
17
(a) Redfish service’s target resource handler does not support any query. (b) Redfish service’s target resource handler supports $expand query.
Configure resource_A handler can process $expand query
Client Request: https://bmc-host/redfish/v1/resource_A?$expand=.($levels=1)&$select=Name,Id&$top=10
18
No query Generates two subrequests four subrequests Generates
No query Generates two subrequests 0 subrequests (delegates to Redfish service) Generates
Through Proxy Bypass Proxy Shows proxy overhead Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy + backend server
19
No query Generates two subrequests four subrequests Generates
No query Generates two subrequests 0 subrequests (delegates to Redfish service) Generates
Through Proxy Bypass Proxy Shows proxy overhead Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy + backend server
20
No query Generates two subrequests four subrequests Generates
No query Generates two subrequests 0 subrequests (delegates to Redfish service) Generates
Through Proxy Bypass Proxy Shows proxy overhead Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy + backend server
21
No query Generates two subrequests four subrequests Generates
No query Generates two subrequests 0 subrequests (delegates to Redfish service) Generates
Through Proxy Bypass Proxy Shows proxy overhead Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy Shows query processing performance client program vs proxy + backend server
terms of query response time
specification document
Redfish, and tests in various environments
22