Method and System for Maintaining Storage Device Failure Tolerance in a Composable Infrastructure
Abstract
Systems (e.g. data centers) having composable infrastructure, in which computing devices (e.g., servers) access disk drives organized into storage groups over a network or other communications mechanism, devices for implementing such systems, methods for configuring and operating such systems, and a computer readable medium which stores (in non-transitory fashion) code for performing any embodiment of the inventive method or steps thereof. Typically, the storage groups are determined such that the drives in each storage group have at least one coupled failure mechanism, and the drives are allocated to servers (and typically also, data items are placed in the servers) in accordance with storage group membership of the drives. In some embodiments, data from a server is stored in redundant fashion on at least two of the drives, e.g., in accordance a RAID technique.
Claims
exact text as granted — not AI-modified1 . A system, including:
a communications network; and a set of components communicably coupled to the communications network, including:
a set of storage drives, wherein all storage drives are organized into a set of storage groups based on the common failure risk(s) of all the storage drive(s) within each storage group such that the set of storage groups are based on a set of common failure risks, wherein the common failure risk(s) associated with each storage group of the set of storage groups is different than that of each other storage group of the set of storage groups; and
a set of servers communicably coupleable to the set of storage drives via the communications subsystem, including an administrator server configured to, prior to placement of data on the set of storage drives by the set of servers:
determine, or receive an indication of, the set of storage groups; and
allocate the storage drives of the set of storage drives to the servers in the set of servers in accordance with membership of the each storage drive of the set of storage drives in the set of storage groups,
wherein a first server of the set of servers has allocated thereto a subset of first storage drives of the set of storage drives that are associated with a corresponding subset of first storage groups of the set of storage groups, such that the first server can communicably couple with the subset of first storage drives but not any other storage drives of the set of storage drives.
2 . The system of claim 1 , wherein the set of storage groups includes two storage groups such that the subset of first storage groups include a first storage group, wherein a second server of the set of servers has allocated thereto a second storage group of the two storage groups, and
wherein the first server is further configured to:
save a data item to the first storage group; and
transmit a copy of the data item to the second server, wherein the second server is configured to save the copy of the data item to the second storage group.
3 . The system of claim 1 , wherein the set of storage groups includes three storage groups.
4 . The system of claim 3 , wherein the subset of first storage groups include a first storage group of the three storage groups, wherein a second server of the set of servers has allocated thereto a second storage group of the three storage groups, wherein a third server of the set of servers has allocated thereto a third storage group of the three storage groups and
wherein the first server is further configured to:
save a data item to the first storage group;
transmit a copy of the data item to the second server, wherein the second server is configured to save the copy of the data item to the second storage group; and
transmit a copy of the data item to the third server, wherein the third server is configured to save the copy of the data item to the third storage group.
5 . The system of claim 3 , each storage group of the three storage groups having a substantially equal number of storage drives allocated thereto.
6 . The system of claim 1 , wherein a second server of the set of servers has allocated thereto a subset of second storage drives of the set of storage drives that are associated with a corresponding subset of second storage groups of the set of storage groups,
wherein the first server and the second server are configured to execute the same scale-out application, and wherein the first server is further configured to:
save a data item to the subset of first storage groups;
transmit, based on the second server executing the same scale-out application, a copy of the data item to the second server, wherein the second server is configured to save the copy of the data item to the subset of second storage groups.
7 . The system of claim 1 , wherein the common failure risk(s) of all the storage drive(s) within each storage group includes a common power supply.
8 . The system of claim 1 , wherein the common failure risk(s) of all the storage drive(s) within each storage group includes a common network connection.
9 . The system of claim 1 , further include a set of racks, wherein all the storage drive(s) within each storage group are disposed on the same rack.
10 . The system of claim 1 , further including a set of racks, the set of racks including:
one or more compute racks, each compute rack only including one or more servers of the set of servers; and one or more storage racks, each storage rack only including one or more storage drives of the set of storage drives.
11 . A method of storage of data items in a system, the system including:
a communications network; and a set of components communicably coupled to the communications network, including:
a set of storage drives, wherein all storage drives are organized into a set of storage groups based on the common failure risk(s) of all the storage drive(s) within each storage group such that the set of storage groups are based on a set of common failure risks, wherein the common failure risk(s) associated with each storage group of the set of storage groups is different than that of each other storage group of the set of storage groups; and
a set of servers communicably coupleable to the set of storage drives via the communications subsystem, the method comprising:
determining, or receiving an indication of, the set of storage groups;
allocating the storage drives of the set of storage drives to the servers in the set of servers in accordance with membership of the each storage drive of the set of storage drives in the set of storage groups, including allocating a subset of first storage drives of the set of storage drives that are associated with a corresponding subset of first storage groups of the set of storage groups to a first server of the set of servers, such that the first server can communicably couple with the subset of first storage drives but not any other storage drives of the set of storage drives
12 . The method of claim 11 , wherein the set of storage groups includes two storage groups such that the subset of first storage groups include a first storage group, the allocating further comprising allocating a second storage group of the two storage groups to a second server of the set or servers, the method further comprising:
saving, by the first server, a data item to the first storage group; transmitting, by the first server, a copy of the data item to the second server; and saving, by the second server, the copy of the data item to the second storage group.
13 . The method of claim 11 , wherein the set of storage groups includes three storage groups, wherein the subset of first storage groups include a first storage group of the three storage groups, the allocating further comprising:
allocating a second storage group of the three storage groups to a second server of the set of servers; and allocating a third storage group of the three storage groups to a third server of the set of servers, the method further comprising:
saving, by the first server, a data item to the first storage group;
transmitting, by the first server, a copy of the data item to the second server and to the third server;
saving, by the second server, the copy of the data item to the second storage group; and
saving, by the third server, the copy of the data item to the third storage group.
14 . The method of claim 13 , the determining or receiving further comprising determining the set of storage groups such that each storage group of the three storage groups having a substantially equal number of storage drives allocated thereto.
15 . The method of claim 11 , the determining or receiving further comprising determining the set of storage groups such that the common failure risk(s) of all the storage drive(s) within each storage group includes a common power supply.
16 . The method of claim 11 , the determining or receiving further comprising determining the set of storage groups such that the common failure risk(s) of all the storage drive(s) within each storage group includes a common network connection.
17 . The method of claim 11 , the allocating including allocating, to a second server of the set of servers, a subset of second storage drives of the set of storage drives that are associated with a corresponding subset of second storage groups of the set of storage groups, wherein the first server and the second server are configured to execute the same scale-out application,
the method further comprising: saving, by the first server, a data item to the subset of first storage groups; transmitting, by the first server, based on the second server executing the same scale-out application, a copy of the data item to the second server; wherein the second server is configured to save the copy of the data item to the subset of second storage groups.
18 . A method for storage drive allocation in a system, the system including:
a communications network; and a set of components communicably coupled to the communications network, including:
a set of storage drives, wherein all storage drives are organized into a set of storage groups based on the common failure risk(s) of all the storage drive(s) within each storage group such that the set of storage groups are based on a set of common failure risks, wherein the common failure risk(s) associated with each storage group of the set of storage groups is different than that of each other storage group of the set of storage groups; and
a set of servers communicably coupleable to the set of storage drives via the communications subsystem,
the method comprising, prior to placement of data on the set of storage drives by the set of servers:
determining, or receiving an indication of, the set of storage groups; and
allocating the storage drives of the set of storage drives to the servers in the set of servers in accordance with membership of the each storage drive of the set of storage drives in the set of storage groups,
such that a first server of the set of servers has allocated thereto a subset of first storage drives of the set of storage drives that are associated with a corresponding subset of first storage groups of the set of storage groups, such that the first server can communicably couple with the subset of first storage drives but not any other storage drives of the set of storage drives.
19 . The method of claim 18 , the determining or receiving further comprising determining the set of storage groups such that the common failure risk(s) of all the storage drive(s) within each storage group includes a common power supply.
20 . The method of claim 18 , the determining or receiving further comprising determining the set of storage groups such that the common failure risk(s) of all the storage drive(s) within each storage group includes a common network connection.Join the waitlist — get patent alerts
Track US2022413976A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.