MLchartDataset catalogue

Patent · US10129169B2 · B2 · US

Specifying a highly-resilient system in a disaggregated compute environment

(11) Publication number
US10129169B2
(21) Application number
15/093,260
(22) Filing date
2016-04-07
(30) Priority date
2016-04-07
(43) Publication date
2018-11-13
(45) Date of grant
2018-11-13
(51) IPC
H04L 47/70; H04L 47/80; G06F 15/173
(52) CPC
  • H04L Transmission of digital information, e.g. telegraphic communication: 47/70, 47/805, 47/822
(73) Assignee
International Business Machines Corp
(72) Inventors
Ruchi Mahindru; John Alan Bivens; Koushik K. Das; Min Li; HariGovind V. Ramasamy; Yaoping Ruan; Valentina Salapura; Eugen Schenfeld
(54) Title
Specifying a highly-resilient system in a disaggregated compute environment
(57) Abstract

Server resources in a data center are disaggregated into shared server resource pools. Servers are constructed dynamically, on-demand and based on workload requirements and a tenant's resiliency requirements (e.g., as specified in an SLA), by allocating from these resource pools. A disaggregated compute system of this type keeps track of resources that are available in the shared server resource pools, and it manages those resources based on that information and the health of the resources. As a workload is processed by the server entity and component resources fail, the server entity composition is changed, e.g. by allocating other resources to the server entity, or by transitioning to other server entities, to ensure that a resiliency requirement is maintained.

Full text
View on Google Patents

Claims (25)

  1. A method for assigning resources in a compute environment, comprising: providing a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, defining a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receiving information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjusting a composition of the server entity to attempt to maintain the resiliency requirement.
  2. The method as described in claim 1 the change in health of a resource is a component failure.
  3. The method as described in claim 2 wherein the component failure is one of: a processor failure, a memory failure, an accelerator failure, a storage failure, and another component failure.
  4. The method as described in claim 1 wherein adjusting the composition of the server entity de-allocates a failed component and promotes a second component of a same type to assume responsibility for the failed component.
  5. The method as described in claim 4 wherein the second component that is promoted is associated with the server entity, or a different server entity.
  6. The method as described in claim 4 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.
  7. The method as described in claim 4 further including de-associating another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.
  8. The method as described in claim 1 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.
  9. Apparatus for assigning resources in a compute environment, comprising: one or more hardware processors; computer memory holding computer program instructions executed by the hardware processors and operative to: manage a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, define a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receive information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjust a composition of the server entity to attempt to maintain the resiliency requirement.
  10. The apparatus as described in claim 9 wherein the change in health of a resource is a component failure.
  11. The apparatus as described in claim 10 wherein the component failure is one of: a processor failure, a memory failure, an accelerator failure, a storage failure, and another component failure.
  12. The apparatus as described in claim 9 wherein the computer program instructions to adjust the composition of the server entity are operative to de-allocate a failed component and promote a second component of a same type to assume responsibility for the failed component.
  13. The apparatus as described in claim 12 wherein the second component that is promoted is associated with the server entity, or a different server entity.
  14. The apparatus as described in claim 12 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.
  15. The apparatus as described in claim 12 wherein the computer program instructions are further operative to de-associate another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.
  16. The apparatus as described in claim 9 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.
  17. A computer program product in a non-transitory computer readable medium for use in a data processing system for assigning resources in a compute environment, the computer program product holding computer program instructions executed in the data processing system and operative to: manage a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, define a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receive information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjust a composition of the server entity to attempt to maintain the resiliency requirement.
  18. The computer program product as described in claim 17 wherein the change in health of a resource is a component failure.
  19. The computer program product as described in claim 18 wherein the component failure is one of: a processor, failure, a memory failure, an accelerator failure, a storage failure, and another component failure.
  20. The computer program product as described in claim 17 wherein the computer program instructions to adjust the composition of the server entity are operative to de-allocate a failed component and promote a second component of a same type to assume responsibility for the failed component.
  21. The computer program product as described in claim 20 wherein the second component that is promoted is associated with the server entity, or a different server entity.
  22. The computer program product as described in claim 20 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.
  23. The computer program product as described in claim 20 wherein the computer program instructions are further operative to de-associate another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.
  24. The computer program product as described in claim 17 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.
  25. A data center facility, comprising: a set of server resource pools that comprise a compute pool, and a memory pool; a disaggregated compute system comprising processors selected from the compute pool, computer memories selected from the memory pool, and an optical interconnect, the disaggregated compute system being configured to meet a resiliency requirement associated with a tenant, the resiliency requirement being associated with a tenant's service level agreement (SLA); and a resiliency manager executing in a hardware element and responsive to a failure in one or more resources in the disaggregated compute system as the tenant's workload is processed to selectively adjust a composition of the disaggregate compute system to maintain the resiliency requirement.

Description

This disclosure relates generally to data processing systems in a data center operating environment.

A well-known information technology (IT) delivery model is cloud computing, by which shared resources, software and information are provided over the Internet to computers and other devices on-demand. Cloud computing significantly reduces IT costs and complexities while improving workload optimization and service delivery. With this approach, an application instance is hosted and made available from Internet-based resources that are accessible, e.g., through a conventional Web browser over HTTP. Cloud compute resources typically are housed in large server farms that run one or more network applications, typically using a virtualized architecture wherein applications run inside virtual servers, or so-called “virtual machines” (VMs), that are mapped onto physical servers in a data center facility.

Within the data center itself, a data center network typically is architected according to a hierarchical design comprising several layers of electrical switches, namely, access, aggregate and core layers. At a front end of the data center, content and load balancing switches are connected to the Internet through gateway routers, while at the back end, they are linked to core switches. Typically, the core switches are linked to aggregate switches, and the aggregate switches are connected to rack switches. Each rack switch is connected to the servers in the rack. The switches in the data center network operate usually over an electronic switch fabric, and the links between them either are copper cables or optical fibers.

Citations (17)

  • US6366945B1
  • US20030046396A1
  • US20040205180A1
  • US20040267897A1
  • US20100268983A1
  • US20090183168A1
  • US20120054763A1
  • US9258252B1
  • US20120254445A1
  • US8954698B2
  • US8972983B2
  • US9311376B2
  • US9348724B2
  • US20140059379A1
  • US20140071980A1
  • US9077613B2
  • US20160210175A1
Record as JSON
{
  "publication_number": "US10129169B2",
  "country": "US",
  "kind": "B2",
  "title": "Specifying a highly-resilient system in a disaggregated compute environment",
  "abstract": "Server resources in a data center are disaggregated into shared server resource pools. Servers are constructed dynamically, on-demand and based on workload requirements and a tenant's resiliency requirements (e.g., as specified in an SLA), by allocating from these resource pools. A disaggregated compute system of this type keeps track of resources that are available in the shared server resource pools, and it manages those resources based on that information and the health of the resources. As a workload is processed by the server entity and component resources fail, the server entity composition is changed, e.g. by allocating other resources to the server entity, or by transitioning to other server entities, to ensure that a resiliency requirement is maintained.",
  "claims": [
    "1. A method for assigning resources in a compute environment, comprising: providing a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, defining a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receiving information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjusting a composition of the server entity to attempt to maintain the resiliency requirement.",
    "2. The method as described in claim 1 the change in health of a resource is a component failure.",
    "3. The method as described in claim 2 wherein the component failure is one of: a processor failure, a memory failure, an accelerator failure, a storage failure, and another component failure.",
    "4. The method as described in claim 1 wherein adjusting the composition of the server entity de-allocates a failed component and promotes a second component of a same type to assume responsibility for the failed component.",
    "5. The method as described in claim 4 wherein the second component that is promoted is associated with the server entity, or a different server entity.",
    "6. The method as described in claim 4 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.",
    "7. The method as described in claim 4 further including de-associating another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.",
    "8. The method as described in claim 1 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.",
    "9. Apparatus for assigning resources in a compute environment, comprising: one or more hardware processors; computer memory holding computer program instructions executed by the hardware processors and operative to: manage a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, define a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receive information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjust a composition of the server entity to attempt to maintain the resiliency requirement.",
    "10. The apparatus as described in claim 9 wherein the change in health of a resource is a component failure.",
    "11. The apparatus as described in claim 10 wherein the component failure is one of: a processor failure, a memory failure, an accelerator failure, a storage failure, and another component failure.",
    "12. The apparatus as described in claim 9 wherein the computer program instructions to adjust the composition of the server entity are operative to de-allocate a failed component and promote a second component of a same type to assume responsibility for the failed component.",
    "13. The apparatus as described in claim 12 wherein the second component that is promoted is associated with the server entity, or a different server entity.",
    "14. The apparatus as described in claim 12 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.",
    "15. The apparatus as described in claim 12 wherein the computer program instructions are further operative to de-associate another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.",
    "16. The apparatus as described in claim 9 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.",
    "17. A computer program product in a non-transitory computer readable medium for use in a data processing system for assigning resources in a compute environment, the computer program product holding computer program instructions executed in the data processing system and operative to: manage a set of server resource pools, wherein a server resource pool comprises a set of resources of a common type; for a given tenant, define a server entity composed of one or more resources selected from one or more of the server resource pools, wherein the one or more resources are selected from the one or more of the server resource pools based on a projected workload and a resiliency requirement; receive information collected from monitoring health of the one or more resources in the server entity as an actual workload is processed for the given tenant; and based on the monitoring indicating a change in health of a resource in the server entity, adjust a composition of the server entity to attempt to maintain the resiliency requirement.",
    "18. The computer program product as described in claim 17 wherein the change in health of a resource is a component failure.",
    "19. The computer program product as described in claim 18 wherein the component failure is one of: a processor, failure, a memory failure, an accelerator failure, a storage failure, and another component failure.",
    "20. The computer program product as described in claim 17 wherein the computer program instructions to adjust the composition of the server entity are operative to de-allocate a failed component and promote a second component of a same type to assume responsibility for the failed component.",
    "21. The computer program product as described in claim 20 wherein the second component that is promoted is associated with the server entity, or a different server entity.",
    "22. The computer program product as described in claim 20 wherein the second component that is promoted is assigned based on its network locality relative to the failed component.",
    "23. The computer program product as described in claim 20 wherein the computer program instructions are further operative to de-associate another lower-priority workload that is running on the second component from the second component prior to promoting the second component to assume responsibility for the failed component.",
    "24. The computer program product as described in claim 17 wherein resources are assigned for multiple tenants, and at least first and second of the multiple tenants have different resiliency requirements.",
    "25. A data center facility, comprising: a set of server resource pools that comprise a compute pool, and a memory pool; a disaggregated compute system comprising processors selected from the compute pool, computer memories selected from the memory pool, and an optical interconnect, the disaggregated compute system being configured to meet a resiliency requirement associated with a tenant, the resiliency requirement being associated with a tenant's service level agreement (SLA); and a resiliency manager executing in a hardware element and responsive to a failure in one or more resources in the disaggregated compute system as the tenant's workload is processed to selectively adjust a composition of the disaggregate compute system to maintain the resiliency requirement."
  ],
  "description_excerpt": "This disclosure relates generally to data processing systems in a data center operating environment.\n\nA well-known information technology (IT) delivery model is cloud computing, by which shared resources, software and information are provided over the Internet to computers and other devices on-demand. Cloud computing significantly reduces IT costs and complexities while improving workload optimization and service delivery. With this approach, an application instance is hosted and made available from Internet-based resources that are accessible, e.g., through a conventional Web browser over HTTP. Cloud compute resources typically are housed in large server farms that run one or more network applications, typically using a virtualized architecture wherein applications run inside virtual servers, or so-called “virtual machines” (VMs), that are mapped onto physical servers in a data center facility.\n\nWithin the data center itself, a data center network typically is architected according to a hierarchical design comprising several layers of electrical switches, namely, access, aggregate and core layers. At a front end of the data center, content and load balancing switches are connected to the Internet through gateway routers, while at the back end, they are linked to core switches. Typically, the core switches are linked to aggregate switches, and the aggregate switches are connected to rack switches. Each rack switch is connected to the servers in the rack. The switches in the data center network operate usually over an electronic switch fabric, and the links between them either are copper cables or optical fibers.",
  "cpc": [
    "H04L 47/70",
    "H04L 47/805",
    "H04L 47/822"
  ],
  "ipc": [
    "H04L 47/70",
    "H04L 47/80",
    "G06F 15/173"
  ],
  "assignees": [
    "International Business Machines Corp"
  ],
  "inventors": [
    "Ruchi Mahindru",
    "John Alan Bivens",
    "Koushik K. Das",
    "Min Li",
    "HariGovind V. Ramasamy",
    "Yaoping Ruan",
    "Valentina Salapura",
    "Eugen Schenfeld"
  ],
  "filing_date": "2016-04-07",
  "publication_date": "2018-11-13",
  "grant_date": "2018-11-13",
  "priority_date": "2016-04-07",
  "application_number": "US-201615093260-A",
  "family_id": "59998859",
  "cited_by_count": 6,
  "citations": [
    "US6366945B1",
    "US20030046396A1",
    "US20040205180A1",
    "US20040267897A1",
    "US20100268983A1",
    "US20090183168A1",
    "US20120054763A1",
    "US9258252B1",
    "US20120254445A1",
    "US8954698B2",
    "US8972983B2",
    "US9311376B2",
    "US9348724B2",
    "US20140059379A1",
    "US20140071980A1",
    "US9077613B2",
    "US20160210175A1"
  ]
}

Record 3,178 of 8,000 in Patents full text (MLC-0201). Request the full dataset.