The present disclosure relates generally to computer networks, Storage Attached Networks (SANs), and, more particularly, to a cluster of computer nodes that are coupled to a sharable data storage system and that involve the distribution of write commands and read commands to the shared storage system.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
The task of scaling a software application may involve the distribution of the software application across discrete servers such that each server handles a portion of the workload associated with the application. As the application load of each of the servers increases, additional discrete servers can be added to the network and the workload of the application can be distributed across these additional servers. Some database applications, however, cannot be distributed across discrete servers and do not accommodate the addition of servers to the computer network. In this example, each separate instance of the database application cannot access the entire data set of the storage network of the computer network. The individual database instances are not managed in a manner that permits each database instance to access the entire data set of the storage network. In addition, because each server cannot access the entire data set of the storage network, the computer network cannot accommodate additional servers, as any additional servers would likewise be unable to access the entire data set of the storage network.
In accordance with the present disclosure, a system and method is disclosed for managing the serving of read and write commands in a computer cluster system having sharable storage. A plurality of database servers is included in the computer cluster network to serve read and write commands from the database clients of the network. One of the database servers is configured to handle both read commands and write commands. The remainder of the database servers are configured to handle only read commands. The database of the computer system includes a sharable storage subsystem accessible by all database servers that involves the use of mirrored disk elements, with each mirrored disk element being associated uniquely with one of the database servers. When a write is made to the mirrored disk element associated with the write database server, the write command is propagated in the storage subsystem to each of the other storage elements to mirror the write to the disk element associated with the write database server.
The system and method disclosed herein is technically advantageous because is provides a system that efficiently manages the read and write commands of the computer network. All of the write commands are handled by a write server. The numerous read commands of the data base clients are distributed on a workload basis among all of the servers of the database. In this manner, the data access commands of the database clients of the computer network can be distributed among the servers in a manner that shares the workload of the data access commands of the database clients.
Another technical advantage of the system and method disclosed herein is that the redundant storage network of the computer network employs RAID storage techniques to create sets of mirrored disk. A RAID 1 or RAID 1/0 storage methodology can be employed to establish mirrored set of individual drives or groups of drives. The drives can be split out into mirrored logical units. A write to the logical unit associated with the write database server is propagated to each of the other logical units of the redundant storage network.
Another technical advantage of the system and method disclosed herein is the architecture of the network disclosed herein is easily scalable to accommodate the addition of database servers to the computer network. To accommodate an additional database server, another mirrored version of the stored data is created for the added database server. Thus, despite the redundancy and data management efficiencies of the architecture disclosed herein, the architecture can be easily scaled by the addition of a database server and another mirrored version of the data of the redundant storage network. Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communication with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
The system and method disclosed herein provide for a storage network that can be expanded or scaled in size to accommodate the addition of database servers and storage resources. In the system and method disclosed herein, each server of the computer network can serve read commands from a client of the compute network. Only one server of the computer network, however, will be operable to serve both read commands and write commands from clients of the computer network. As such, a read command may be routed and fulfilled by any server of the computer network, while a write command must be routed to a designated server of the computer network. The server handling the write command propagates the data of the write command so that the data is recorded in multiple, redundant storage locations in the computer network. The storage location of the write command in each redundant location is protected from additional read or write commands until the data of the write command has been propagated through each redundant disk resource of the storage in the computer network.
Shown in
In the example of
Shown in
The individual drives of the storage network 40 can be organized into logical units. A logical unit is an abstraction of a physical disk or a set of physical disks that are presented to a server or group of servers as a single disk capable of storing data Logical units are accessible through a target device, which is the storage system that provides the abstraction of the physical disks to logical units. In the example of
In operation, if a write command from one of the database clients 32, the write command is transmitted to a target logical unit in the storage system through database server 34A, which is the write server of the computer network and is associated with the drives of the primary logical unit 48 of the computer network. Database server directs the write command, depending on the address of the write command to drive X or drive Y. Assuming that the write command is directed to an address on drive X, the write command is executed with respect to drive X, with the result being the write of the data of the write command to target address in drive X. Following the write to drive X, the RAID storage system of storage network 40 propagates the write command to the X0 drive according to the RAID 1/0 storage scheme. Following this propagation step, the data written to the X drive of primary logical unit 48 has been transmitted to drive X0 of read-only logical unit 50. Following the write command, the data written to storage as a result of the write command can be accessed through a read command served by database server 34A to a storage drive within primary logical unit 48 or through a read command served by read-only database server 34B to a storage drive within read-only logical unit 50. Each of the logical units of the computer network includes a copy of the data of the computer network.
Shown in
The system and method disclosed herein may accommodate drive failures within the redundant disks of the storage subsystem of the network. Shown in
At step 82, a surviving set of drives of a logical unit of the storage subsystem is identified and designated as the drives of the primary logical unit. In the present example, the surviving logical unit is the read-only logical unit of drives X0 and Y0. As a result, drives X0 and Y0 are designated as the drives of the primary logical unit of the computer network. All write command continued to be processed through the write database server. The logical unit of the write database server has been modified so that the logical unit is now drives X0 and Y0 instead of drives X and Y. At step 84, the read-only logical unit of the failed drive is disabled and the failed drive is rebuilt. In this example, the rebuild of drive X occurs with the data of mirrored drive X0. Following the rebuild of the failed drive, the logical unit of the failed drive is enabled at step 86. At this point, the drives of the redesignated primary logical unit (X0 and Y0) may be returned to their status as drive of a read-only logical unit. Alternatively, the drives of the redesignated primary logical unit need not be redesignated, as a primary logical unit (X0 and Y0) and a mirrored logical unit (X and Y) are in place in the computer network.
Although the RAID subsystem of the present disclosure has been described as having a RAID 1/0 storage methodology, it should be recognized that other RAID configuration that involve the use of mirrored volumes may be employed. One example is a RAID 1 configuration, which involves the one-to-one mirroring of each drive of the RAID array. The system and method disclosed herein also provides for a redundant network that is easily scalable. An additional database server can be added for each mirrored storage element in the storage subsystem. For example, with respect to a RAID 1 array, if a writeable drive is mirrored across two additional drives, then two additional database servers can be added to the computer network, with each additional database server having access to a mirrored version of the content of the memory subsystem. Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the invention as defmed by the appended claims.