MLchartDataset catalogue

Patent · US10630767B1 · B1 · US

Hardware grouping based computing resource allocation

(11) Publication number
US10630767B1
(21) Application number
14/502,267
(22) Filing date
2014-09-30
(30) Priority date
2014-09-30
(43) Publication date
2020-04-21
(45) Date of grant
2020-04-21
(51) IPC
H04L 29/08
(52) CPC
  • H04L Transmission of digital information, e.g. telegraphic communication: 67/1008, 67/1014, 67/1097
  • G06F Electric digital data processing: 2009/45562, 9/445, 9/45558
(73) Assignee
Amazon Technologies Inc
(72) Inventors
Surya Prakash Dhoolam; Marc John Brooker; Michael Groenewald; Christopher Magee Greenwood; Mark Danoher; Gabriël de Vos Smit; Madhuvanesh Parthasarathy; Joshua Dawie Mentz; Steven J. Kruy; Marc Levy
(54) Title
Hardware grouping based computing resource allocation
(57) Abstract

A customer of a computing resource service provider submits a request to a virtual computer system service to instantiate a virtual computer system. In response to the request, the service obtains physical network information in order to identify any hardware groupings that may be used, at a later time, to provision one or more data storage volumes that may be associated with the virtual computer system. The service assigns a score to each of these hardware groupings based at least in part on the available capacity for provisioning of these data storage volumes. Based at least in part on these assigned scores, the virtual computer system service selects a hardware grouping and instantiates the virtual computer system within the selected hardware grouping.

Full text
View on Google Patents

Claims (20)

  1. A computer-implemented method comprising: for each individual hardware grouping of a plurality of hardware groupings: obtaining, from a customer of a computing resource service provider, a request to instantiate a computer system; obtaining information specifying physical characteristics including a physical location of one or more hardware devices of the individual hardware grouping organized by physical network information; determining available storage capacity within the individual hardware grouping for one or more data storage volumes, the one or more data storage volumes usable to provide storage capacity for the computer system; and assigning a score to the individual hardware grouping, the score based at least in part on the available storage capacity of the individual hardware grouping; selecting a particular hardware grouping from among the plurality of hardware groupings based at least in part on: the score assigned to the particular hardware grouping, the physical characteristics including the physical location, a condition based at least in part on the physical network information of the one or more hardware devices of the particular hardware grouping, and data indicating that the one or more hardware devices of the particular hardware grouping share a matching fate upon an occurrence of a failure of a hardware device of the particular hardware grouping; and instantiating the computer system to utilize the particular hardware grouping.
  2. The computer-implemented method of claim 1, wherein each individual hardware grouping of the plurality of hardware groupings comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for instantiation of the computer system.
  3. The computer-implemented method of claim 1, further comprising providing information from which the particular hardware grouping can be determined to a data storage service thereby causing the data storage service to use the particular hardware grouping to provision one or more data storage volumes within the particular hardware grouping.
  4. The computer-implemented method of claim 1, wherein the score assigned to the individual hardware grouping based at least in part on the available storage capacity is determined in a manner that correlates the score with the available storage capacity.
  5. A system, comprising at least one computing device that implements one or more services, wherein the one or more services: obtain a request to provision one or more computing resources, the one or more computing resources usable in association with a further computing resource, the one or more computing resources being a different resource type from the further computing resource; identify a hardware grouping that includes the further computing resource, the hardware grouping organized by physical network information; determine availability of capacity for provisioning the one or more requested computing resources within the identified hardware grouping based at least in part on physical characteristics of the hardware grouping, including a physical location of one or more hardware devices of the hardware grouping; select a hardware grouping to satisfy a condition based at least in part on physical network information of one or more hardware devices of the hardware grouping, the hardware devices of the hardware grouping sharing a matching fate upon occurrence of a failure of a hardware device of the hardware grouping; and provision the one or more computing resources to utilize the resources of the identified hardware grouping.
  6. The system of claim 5, wherein the one or more computing resources are data storage volumes and the further computing resource is a computer system such that the data storage volumes are usable to provide data storage capacity for the computer system.
  7. The system of claim 5, wherein the one or more computing resources are computer systems and the further computing resource is a data storage volume such that the computer systems are to be associated with the data storage volume upon provisioning.
  8. The system of claim 5, wherein the hardware grouping comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for provisioning of the one or more computing resources.
  9. The system of claim 5, wherein the one or more services are further configured to obtain information specifying storage capacity, network topologies and power source topologies of a computing resource service provider network usable to identify the hardware grouping.
  10. The system of claim 5, wherein the one or more services are further configured to cause the one or more computing resources to use the further computing resource upon provisioning of the one or more computing resources within the identified hardware grouping.
  11. The system of claim 5, wherein the request further specifies the identified hardware grouping that is to be used to provision the one or more computing resources such that the one or more services are further configured to evaluate the request to identify the hardware grouping.
  12. The system of claim 5, wherein the one or more services are further configured to: evaluate one or more hardware components of the identified hardware grouping to determine the availability of capacity; and provision the one or more computing resources within one of the one or more hardware components of the identified hardware grouping having available capacity for the one or more computing resources.
  13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least: in response to a request to provision a first computing resource, obtain information specifying physical characteristics of a network, the network comprising one or more hardware groupings and the physical characteristics including a physical location of one or more hardware devices of the one or more hardware groupings organized by physical network information; and for each hardware grouping of the one or more hardware groupings: determine available capacity for a second computing resource based at least in part on the physical characteristics of the respective hardware grouping, including the physical location of one or more hardware devices of the respective hardware grouping, the second computing resource capable of being associated with the first computing resource and being of a different resource type from the first computing resource; based at least in part on the determined available capacity for each hardware grouping, select a hardware grouping based at least on physical network information of the one or more hardware devices of the hardware grouping, the hardware devices of the hardware grouping sharing a matching fate upon occurrence of a failure of a hardware device of the hardware grouping; and provision the first computing resource using the hardware devices of the selected hardware grouping.
  14. The non-transitory computer-readable storage medium of claim 13, wherein the first computing resource is a data storage volume and the second computing resource is a computer system such that the data storage volume is usable to provide data storage capacity for the computer system.
  15. The non-transitory computer-readable storage medium of claim 13, wherein the first computing resource is a computer system and the second computing resource is a data storage volume such that the data storage volume is capable of providing storage capacity for the computer system.
  16. The non-transitory computer-readable storage medium of claim 13, wherein the instructions that cause the computer system to determine the available capacity for the second computing resource further include instructions that cause the computer system to: for each hardware grouping of the one or more hardware groupings: assign a score to each hardware grouping of the one or more hardware groupings based at least in part on the available capacity; and utilize the score assigned to each hardware grouping of the one or more hardware groupings to select the hardware grouping.
  17. The non-transitory computer-readable storage medium of claim 16, wherein the score assigned to the hardware grouping based at least in part on the available capacity is determined in a manner that correlates the score with the available capacity.
  18. The non-transitory computer-readable storage medium of claim 16, wherein the score assigned to the hardware grouping is further based at least in part on a determined number of hardware components within the hardware grouping configured for exclusive use of the second computing resource, available storage capacity within a data center room that includes the hardware grouping, and available storage capacity within a data center that includes the data center room.
  19. The non-transitory computer-readable storage medium of claim 13, wherein the instructions further cause the computer system to provide information, from which the selected hardware grouping can be determined, to a computing resource service causing the computing resource service to use the selected hardware grouping to provision the second computing resource within the selected hardware grouping.
  20. The non-transitory computer-readable storage medium of claim 13, wherein the hardware grouping comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for provisioning of the one or more hardware groupings.

Description

Computing resource service providers and other service providers often may utilize numerous servers, data stores and other resources to enable users to provision a variety of computing resources for use in its operations. In order to reduce the risk of data loss, these service providers may allocate these computing resources in different hardware groupings (e.g., data centers, rooms within data centers, server racks, etc.) to provide data redundancy and ensure availability of these computing resources in the event of a failure of any of these hardware groupings. However, allocation of these computing resources using different hardware groupings may present certain disadvantages. For instance, allocation of computing resources across multiple hardware groupings may increase the network latency for communications between these computing resources. Additionally, in some instances, allocation of these computing resources in different hardware groupings may be unnecessary, since unavailability of one computing resource may result in the unavailability of any associated computing resources, obviating the need for such redundancy. Thus, in some instances, allocation of computing resources within different hardware groupings may result in added expense and inefficiency.

Various embodiments in accordance with the present disclosure will be described with reference to the drawings, in which:

FIG. 1 shows an illustrative example of an environment in which various embodiments can be implemented;

Citations (12)

  • US7447729B1
  • US7480734B1
  • US8510429B1
  • US20090228589A1
  • US20090271485A1
  • US9015229B1
  • US20110185067A1
  • US20130232252A1
  • US20140025770A1
  • US20140059179A1
  • US20140059228A1
  • US20140075111A1
Record as JSON
{
  "publication_number": "US10630767B1",
  "country": "US",
  "kind": "B1",
  "title": "Hardware grouping based computing resource allocation",
  "abstract": "A customer of a computing resource service provider submits a request to a virtual computer system service to instantiate a virtual computer system. In response to the request, the service obtains physical network information in order to identify any hardware groupings that may be used, at a later time, to provision one or more data storage volumes that may be associated with the virtual computer system. The service assigns a score to each of these hardware groupings based at least in part on the available capacity for provisioning of these data storage volumes. Based at least in part on these assigned scores, the virtual computer system service selects a hardware grouping and instantiates the virtual computer system within the selected hardware grouping.",
  "claims": [
    "1. A computer-implemented method comprising: for each individual hardware grouping of a plurality of hardware groupings: obtaining, from a customer of a computing resource service provider, a request to instantiate a computer system; obtaining information specifying physical characteristics including a physical location of one or more hardware devices of the individual hardware grouping organized by physical network information; determining available storage capacity within the individual hardware grouping for one or more data storage volumes, the one or more data storage volumes usable to provide storage capacity for the computer system; and assigning a score to the individual hardware grouping, the score based at least in part on the available storage capacity of the individual hardware grouping; selecting a particular hardware grouping from among the plurality of hardware groupings based at least in part on: the score assigned to the particular hardware grouping, the physical characteristics including the physical location, a condition based at least in part on the physical network information of the one or more hardware devices of the particular hardware grouping, and data indicating that the one or more hardware devices of the particular hardware grouping share a matching fate upon an occurrence of a failure of a hardware device of the particular hardware grouping; and instantiating the computer system to utilize the particular hardware grouping.",
    "2. The computer-implemented method of claim 1, wherein each individual hardware grouping of the plurality of hardware groupings comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for instantiation of the computer system.",
    "3. The computer-implemented method of claim 1, further comprising providing information from which the particular hardware grouping can be determined to a data storage service thereby causing the data storage service to use the particular hardware grouping to provision one or more data storage volumes within the particular hardware grouping.",
    "4. The computer-implemented method of claim 1, wherein the score assigned to the individual hardware grouping based at least in part on the available storage capacity is determined in a manner that correlates the score with the available storage capacity.",
    "5. A system, comprising at least one computing device that implements one or more services, wherein the one or more services: obtain a request to provision one or more computing resources, the one or more computing resources usable in association with a further computing resource, the one or more computing resources being a different resource type from the further computing resource; identify a hardware grouping that includes the further computing resource, the hardware grouping organized by physical network information; determine availability of capacity for provisioning the one or more requested computing resources within the identified hardware grouping based at least in part on physical characteristics of the hardware grouping, including a physical location of one or more hardware devices of the hardware grouping; select a hardware grouping to satisfy a condition based at least in part on physical network information of one or more hardware devices of the hardware grouping, the hardware devices of the hardware grouping sharing a matching fate upon occurrence of a failure of a hardware device of the hardware grouping; and provision the one or more computing resources to utilize the resources of the identified hardware grouping.",
    "6. The system of claim 5, wherein the one or more computing resources are data storage volumes and the further computing resource is a computer system such that the data storage volumes are usable to provide data storage capacity for the computer system.",
    "7. The system of claim 5, wherein the one or more computing resources are computer systems and the further computing resource is a data storage volume such that the computer systems are to be associated with the data storage volume upon provisioning.",
    "8. The system of claim 5, wherein the hardware grouping comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for provisioning of the one or more computing resources.",
    "9. The system of claim 5, wherein the one or more services are further configured to obtain information specifying storage capacity, network topologies and power source topologies of a computing resource service provider network usable to identify the hardware grouping.",
    "10. The system of claim 5, wherein the one or more services are further configured to cause the one or more computing resources to use the further computing resource upon provisioning of the one or more computing resources within the identified hardware grouping.",
    "11. The system of claim 5, wherein the request further specifies the identified hardware grouping that is to be used to provision the one or more computing resources such that the one or more services are further configured to evaluate the request to identify the hardware grouping.",
    "12. The system of claim 5, wherein the one or more services are further configured to: evaluate one or more hardware components of the identified hardware grouping to determine the availability of capacity; and provision the one or more computing resources within one of the one or more hardware components of the identified hardware grouping having available capacity for the one or more computing resources.",
    "13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least: in response to a request to provision a first computing resource, obtain information specifying physical characteristics of a network, the network comprising one or more hardware groupings and the physical characteristics including a physical location of one or more hardware devices of the one or more hardware groupings organized by physical network information; and for each hardware grouping of the one or more hardware groupings: determine available capacity for a second computing resource based at least in part on the physical characteristics of the respective hardware grouping, including the physical location of one or more hardware devices of the respective hardware grouping, the second computing resource capable of being associated with the first computing resource and being of a different resource type from the first computing resource; based at least in part on the determined available capacity for each hardware grouping, select a hardware grouping based at least on physical network information of the one or more hardware devices of the hardware grouping, the hardware devices of the hardware grouping sharing a matching fate upon occurrence of a failure of a hardware device of the hardware grouping; and provision the first computing resource using the hardware devices of the selected hardware grouping.",
    "14. The non-transitory computer-readable storage medium of claim 13, wherein the first computing resource is a data storage volume and the second computing resource is a computer system such that the data storage volume is usable to provide data storage capacity for the computer system.",
    "15. The non-transitory computer-readable storage medium of claim 13, wherein the first computing resource is a computer system and the second computing resource is a data storage volume such that the data storage volume is capable of providing storage capacity for the computer system.",
    "16. The non-transitory computer-readable storage medium of claim 13, wherein the instructions that cause the computer system to determine the available capacity for the second computing resource further include instructions that cause the computer system to: for each hardware grouping of the one or more hardware groupings: assign a score to each hardware grouping of the one or more hardware groupings based at least in part on the available capacity; and utilize the score assigned to each hardware grouping of the one or more hardware groupings to select the hardware grouping.",
    "17. The non-transitory computer-readable storage medium of claim 16, wherein the score assigned to the hardware grouping based at least in part on the available capacity is determined in a manner that correlates the score with the available capacity.",
    "18. The non-transitory computer-readable storage medium of claim 16, wherein the score assigned to the hardware grouping is further based at least in part on a determined number of hardware components within the hardware grouping configured for exclusive use of the second computing resource, available storage capacity within a data center room that includes the hardware grouping, and available storage capacity within a data center that includes the data center room.",
    "19. The non-transitory computer-readable storage medium of claim 13, wherein the instructions further cause the computer system to provide information, from which the selected hardware grouping can be determined, to a computing resource service causing the computing resource service to use the selected hardware grouping to provision the second computing resource within the selected hardware grouping.",
    "20. The non-transitory computer-readable storage medium of claim 13, wherein the hardware grouping comprises one or more server racks and one or more aggregation routers for enabling communications amongst the one or more server racks, the one or more server racks having a set of hardware devices usable for provisioning of the one or more hardware groupings."
  ],
  "description_excerpt": "Computing resource service providers and other service providers often may utilize numerous servers, data stores and other resources to enable users to provision a variety of computing resources for use in its operations. In order to reduce the risk of data loss, these service providers may allocate these computing resources in different hardware groupings (e.g., data centers, rooms within data centers, server racks, etc.) to provide data redundancy and ensure availability of these computing resources in the event of a failure of any of these hardware groupings. However, allocation of these computing resources using different hardware groupings may present certain disadvantages. For instance, allocation of computing resources across multiple hardware groupings may increase the network latency for communications between these computing resources. Additionally, in some instances, allocation of these computing resources in different hardware groupings may be unnecessary, since unavailability of one computing resource may result in the unavailability of any associated computing resources, obviating the need for such redundancy. Thus, in some instances, allocation of computing resources within different hardware groupings may result in added expense and inefficiency.\n\nVarious embodiments in accordance with the present disclosure will be described with reference to the drawings, in which:\n\nFIG. 1 shows an illustrative example of an environment in which various embodiments can be implemented;",
  "cpc": [
    "H04L 67/1008",
    "G06F 2009/45562",
    "G06F 9/445",
    "G06F 9/45558",
    "H04L 67/1014",
    "H04L 67/1097"
  ],
  "ipc": [
    "H04L 29/08"
  ],
  "assignees": [
    "Amazon Technologies Inc"
  ],
  "inventors": [
    "Surya Prakash Dhoolam",
    "Marc John Brooker",
    "Michael Groenewald",
    "Christopher Magee Greenwood",
    "Mark Danoher",
    "Gabriël de Vos Smit",
    "Madhuvanesh Parthasarathy",
    "Joshua Dawie Mentz",
    "Steven J. Kruy",
    "Marc Levy"
  ],
  "filing_date": "2014-09-30",
  "publication_date": "2020-04-21",
  "grant_date": "2020-04-21",
  "priority_date": "2014-09-30",
  "application_number": "US-201414502267-A",
  "family_id": "70284960",
  "cited_by_count": 6,
  "citations": [
    "US7447729B1",
    "US7480734B1",
    "US8510429B1",
    "US20090228589A1",
    "US20090271485A1",
    "US9015229B1",
    "US20110185067A1",
    "US20130232252A1",
    "US20140025770A1",
    "US20140059179A1",
    "US20140059228A1",
    "US20140075111A1"
  ]
}

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