prototype of configurable redfish query proxy module
play

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)


  1. 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

  2. Baseboard Management Controller (BMC) Redfish Proxy Query Module Module Our work 2

  3. Background: What are BMC and Redfish? Clients Web Service ipmi ex) Redfish HP iLO, DELL iDRAC, Browser OpenBMC Provide server baseboard management things bmcweb, - Power control … .. - Fan control - OS status - etc. 3

  4. Background: What are BMC and Redfish? Clients Web Service ipmi ex) Redfish HP iLO, DELL iDRAC, Browser OpenBMC Provide server baseboard management things bmcweb, - Power control … .. - Fan control - OS status - etc. 4

  5. Background: What are BMC and Redfish? Clients Web Service ipmi ex) Redfish HP iLO, DELL iDRAC, Browser OpenBMC Provide server baseboard management things bmcweb, - Power control … .. - Fan control - OS status - etc. 5

  6. Background: What is Redfish Query? Redfish is build on top of Open Data Protocol (OData). - OData provides standardized client side query 
 ex) http://url?$top=3 
 http://url?$expand&select=Name,SystemType - Redfish follows the format of OData, 
 but to implement OData query features are optional - Redfish suggests to support some query features 
 from OData and a couple of new query features 
 ex) $top, $skip, $expand, $filter, $select, only, excerpt 6

  7. Background: What is Redfish Query? Redfish is build on top of Open Data Protocol (OData). - OData provides standardized client side query 
 ex) http://url?$top=3 
 http://url?$expand&select=Name,SystemType - Redfish follows the format of OData, 
 but to implement OData query features are optional - Redfish suggests to support some query features 
 from OData and a couple of new query features 
 ex) $top, $skip, $expand, $filter, $select, only, excerpt 7

  8. Background: What is Redfish Query? Redfish is build on top of Open Data Protocol (OData). - OData provides standardized client side query 
 ex) http://url?$top=3 
 http://url?$expand&select=Name,SystemType - Redfish follows the format of OData, 
 but to implement OData query features are optional - Redfish suggests to support some query features 
 from OData and a couple of new query features 
 ex) $top, $skip, $expand, $filter, $select, only, excerpt 8

  9. What’s Hard? And Our Approach Vendor A: Let’s support $filter query in resource Chassis Vendor C: Let’s support $select Confusing… query in all resources Vendor B: Let’s support $top, $skip queries in resource Events Vendor D: We have no plan to support any query features Why? Because implementing query features are not easy + time consuming. - Developers must implement all query features in data layer 
 by themselves, if they are not using RDB. - OData ecosystem is mature in some platform and languages - Redfish query features are optional 9

  10. What’s Hard? And Our Approach Vendor A: Let’s support $filter query in resource Chassis Vendor C: Let’s support $select Confusing… query in all resources Vendor B: Let’s support $top, $skip queries in resource Events Vendor D: We have no plan to support any query features Why? Because implementing query features are not easy + time consuming. - Developers must implement all query features in data layer 
 by themselves, if they are not using RDB. - OData ecosystem is mature in some platform and languages - Redfish query features are optional 10

  11. What’s Hard? And Our Approach Vendor A: Let’s support $filter query in resource Chassis Vendor C: Let’s support $select Confusing… query in all resources Vendor B: Let’s support $top, $skip queries in resource Events Vendor D: We have no plan to support any query features Why? Because implementing query features are not easy + time consuming. - Developers must implement all query features in data layer 
 by themselves, if they are not using RDB. - OData ecosystem is mature in some platform and languages - Redfish query features are optional 11

  12. What’s Hard? And Our Approach Vendor A: Let’s support $filter Delegate $filter processing 
 query in resource Chassis when accessing resource Chassis (fast) Vendor B: Let’s support $top, $skip queries in resource Events Vendor C: Let’s support $select query in all resources Processing unsupported queries 
 instead of BMC Servers, through make 
 multiple additional communications 
 Vendor D: We have no plan to with backends. (Slow) support any query features 12

  13. What’s Hard? And Our Approach Vendor A: Let’s support $filter query in resource Chassis Vendor B: Let’s support $top, $skip queries in resource Events RedfishTool Do similar things to some target resources, 
 with some query features Vendor C: Let’s support $select query in all resources Di ff erence with RedfishTool Vendor D: We have no plan to 1. We target all resources and query features. 2. We can leverage backend server’s query support any query features processing by configuration. 13

  14. Approach Details 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 (a) Redfish service’s target resource 
 (b) Redfish service’s target resource 
 handler does not support any query. handler supports $expand query. 14

  15. Approach Details 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 (a) Redfish service’s target resource 
 (b) Redfish service’s target resource 
 handler does not support any query. handler supports $expand query. 15

  16. Approach Details 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 (a) Redfish service’s target resource 
 (b) Redfish service’s target resource 
 handler does not support any query. handler supports $expand query. 16

  17. Approach Details 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 (a) Redfish service’s target resource 
 (b) Redfish service’s target resource 
 handler does not support any query. handler supports $expand query. 17

  18. Preliminary Experimental Result Bypass Proxy Through Proxy Shows proxy overhead No query No query Shows query processing performance 
 client program vs proxy Generates 
 Generates 
 two subrequests two subrequests Shows query processing performance 
 client program vs proxy + backend server 0 subrequests 
 (delegates to 
 four subrequests Redfish service) Shows query processing performance 
 Generates 
 Generates 
 client program vs proxy one subrequest one subrequest 18

  19. Preliminary Experimental Result Bypass Proxy Through Proxy Shows proxy overhead No query No query Shows query processing performance 
 client program vs proxy Generates 
 Generates 
 two subrequests two subrequests Shows query processing performance 
 client program vs proxy + backend server 0 subrequests 
 (delegates to 
 four subrequests Redfish service) Shows query processing performance 
 Generates 
 Generates 
 client program vs proxy one subrequest one subrequest 19

  20. Preliminary Experimental Result Bypass Proxy Through Proxy Shows proxy overhead No query No query Shows query processing performance 
 client program vs proxy Generates 
 Generates 
 two subrequests two subrequests Shows query processing performance 
 client program vs proxy + backend server 0 subrequests 
 (delegates to 
 four subrequests Redfish service) Shows query processing performance 
 Generates 
 Generates 
 client program vs proxy one subrequest one subrequest 20

  21. Preliminary Experimental Result Bypass Proxy Through Proxy Shows proxy overhead No query No query Shows query processing performance 
 client program vs proxy Generates 
 Generates 
 two subrequests two subrequests Shows query processing performance 
 client program vs proxy + backend server 0 subrequests 
 (delegates to 
 four subrequests Redfish service) Shows query processing performance 
 Generates 
 Generates 
 client program vs proxy one subrequest one subrequest 21

  22. Conclusion • Preliminary evaluation demonstrated system performance is improved in terms of query response time • Redfish services can easily support the query functions recommended in a specification document • We plan to use caching for performance improvements • We plan to continue developing to support all query features specified by Redfish, and tests in various environments 22

Recommend


More recommend