The described subject matter relates to electronic computing, and more particularly to systems and methods for managing storage in electronic computing systems.
Effective collection, management, and control of information have become a central component of modern business processes. To this end, many businesses, both large and small, now implement computer-based information management systems.
Data management is an important component of a computer-based information management system. Many users implement storage networks to manage data operations in computer-based information management systems. Storage networks have evolved in computing power and complexity to provide highly reliable, managed storage solutions that may be distributed across a wide geographic area.
Data redundancy is one aspect of reliability in storage networks. A single copy of data is vulnerable if the network element on which the data resides fails. If the vulnerable data or the network element on which it resides can be recovered, then the loss may be temporary. However, if either the data or the network element cannot be recovered then the vulnerable data may be lost permanently.
Storage networks implement remote copy procedures to provide data redundancy and failover procedures to provide data consistency in the event of a failure of one or more network elements. Remote copy procedures replicate one or more data sets resident from a first storage site onto at least a second storage site, and frequently onto a third storage site. Adroit resource management is desirable to balance competing demands between reducing host response times and ensuring data consistency between multiple storage sites.
In an exemplary implementation a storage network is provided. The storage network comprises a first storage cell at a first location, the first storage cell including physical storage media and a storage controller that controls data transfer operations with the storage media; a second storage cell at a second location, the second storage cell including physical storage media and a storage controller that controls data transfer operations with the storage media; and a third storage cell at a third location, the third storage cell including physical storage media and a storage media controller that controls data transfer operations with the storage media. In operation, write operations executed on the first storage cell are copied remotely in an ordered sequence to a cache memory in the second storage cell; write operations in the cache memory are mirrored onto a primary and secondary storage media in the second storage cell; and write operations in the mirrored secondary storage media are copied remotely to the third storage cell.
Described herein are exemplary storage network architectures and methods for performing internal mirroring operations in storage networks. The methods described herein may be embodied as logic instructions on a computer-readable medium such as, e.g., firmware executable on a processor. When executed on a processor, the logic instructions cause processor to be programmed as a special-purpose machine that implements the described methods.
Exemplary Network Architecture
A plurality of logical disks (also called logical units or LUs) 112a, 112b may be allocated within storage pool 110. Each LU 112a, 112b comprises a contiguous range of logical addresses that can be addressed by host devices 120, 122, 124 and 128 by mapping requests from the connection protocol used by the host device to the uniquely identified LU 112. As used herein, the term “host” comprises a computing system(s) that utilize storage on its own behalf, or on behalf of systems coupled to the host. For example, a host may be a supercomputer processing large databases or a transaction processing server maintaining transaction records. Alternatively, a host may be a file server on a local area network (LAN) or wide area network (WAN) that provides storage services for an enterprise. A file server may comprise one or more disk controllers and/or RAID controllers configured to manage multiple disk drives. A host connects to a storage network via a communication connection such as, e.g., a Fibre Channel (FC) connection.
A host such as server 128 may provide services to other computing or data processing systems or devices. For example, client computer 126 may access storage pool 110 via a host such as server 128. Server 128 may provide file services to client 126, and may provide other services such as transaction processing services, email services, etc. Hence, client device 126 may or may not directly use the storage consumed by host 128.
Devices such as wireless device 120, and computers 122, 124, which are also hosts, may logically couple directly to LUs 112a, 112b. Hosts 120-128 may couple to multiple LUs 112a, 112b, and LUs 112a, 112b may be shared among multiple hosts. Each of the devices shown in
Client computers 214a, 214b, 214c may access storage cells 210a, 210b, 210c through a host, such as servers 216, 220, 230. Clients 214a, 214b, 214c may be connected to file server 216 directly, or via a network 218 such as a Local Area Network (LAN) or a Wide Area Network (WAN). The number of storage cells 210a, 210b, 210c that can be included in any storage network is limited primarily by the connectivity implemented in the communication network 212. A switching fabric comprising a single FC switch can interconnect 256 or more ports, providing a possibility of hundreds of storage cells 210a, 210b, 210c in a single storage network.
Hundreds or even thousands of host computers 216, 220 may connect to storage network 200 to access data stored in storage cells 210a, 210b, 210c. Hosts 216, 220 may be embodied as server computers.
Computing device 330 further includes a hard disk drive 344 for reading from and writing to a hard disk (not shown), and may include a magnetic disk drive 346 for reading from and writing to a removable magnetic disk 348, and an optical disk drive 350 for reading from or writing to a removable optical disk 352 such as a CD ROM or other optical media. The hard disk drive 344, magnetic disk drive 346, and optical disk drive 350 are connected to the bus 336 by a SCSI interface 354 or some other appropriate interface. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for computing device 330. Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 348 and a removable optical disk 352, other types of computer-readable media such as magnetic cassettes, flash memory cards, digital video disks, random access memories (RAMs), read only memories (ROMs), and the like, may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk 344, magnetic disk 348, optical disk 352, ROM 338, or RAM 340, including an operating system 358, one or more application programs 360, other program modules 362, and program data 364. A user may enter commands and information into computing device 330 through input devices such as a keyboard 366 and a pointing device 368. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are connected to the processing unit 332 through an interface 370 that is coupled to the bus 336. A monitor 372 or other type of display device is also connected to the bus 336 via an interface, such as a video adapter 374.
Computing device 330 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 376. The remote computer 376 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computing device 330, although only a memory storage device 378 has been illustrated in
When used in a LAN networking environment, computing device 330 is connected to the local network 380 through a network interface or adapter 384. When used in a WAN networking environment, computing device 330 typically includes a modem 386 or other means for establishing communications over the wide area network 382, such as the Internet. The modem 386, which may be internal or external, is connected to the bus 336 via a serial port interface 356. In a networked environment, program modules depicted relative to the computing device 330, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Hosts 216, 220 may include host adapter hardware and software to enable a connection to communication network 212. The connection to communication network 212 may be through an optical coupling or more conventional conductive cabling depending on the bandwidth requirements. A host adapter may be implemented as a plug-in card on computing device 330. Hosts 216, 220 may implement any number of host adapters to provide as many connections to communication network 212 as the hardware and software support.
Generally, the data processors of computing device 330 are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems distributed, for example, on floppy disks, CD-ROMs, or electronically, and are installed or loaded into the secondary memory of a computer. At execution, the programs are loaded at least partially into the computer's primary electronic memory.
Each NSC 410a, 410b further includes a communication port 428a, 428b that enables a communication connection 438 between the NSCs 410a, 410b. The communication connection 438 may be implemented as a FC point-to-point connection, or pursuant to any other suitable communication protocol.
In an exemplary implementation, NSCs 410a, 410b further include a plurality of Fiber Channel Arbitrated Loop (FCAL) ports 420a-426a, 420b-426b that implement an FCAL communication connection with a plurality of storage devices, e.g., arrays of disk drives 440, 442. While the illustrated embodiment implement FCAL connections with the arrays of disk drives 440, 442, it will be understood that the communication connection with arrays of disk drives 440, 442 may be implemented using other communication protocols. For example, rather than an FCAL configuration, a FC switching fabric may be used.
Exemplary Operations
Having described various components of an exemplary storage network, attention is now directed to operations of the storage network 200 and components thereof.
In operation, storage capacity provided by the arrays of disk drives 440, 442 in a storage cells 210a, 210b, 210c may be added to the storage pool 110. When an application requires storage capacity, logic instructions on a host computer 128 may establish a LU from storage capacity available on the arrays of disk drives 440, 442 available in one or more storage cells 210a, 210b, 210c. It will be appreciated that because a LU is a logical unit, not a physical unit, the physical storage space that constitutes the LU may be distributed across multiple storage cells 210a, 210b, 210c. Data for the application may be stored on one or more LUs in the storage network.
An application that needs access to data in the storage network may launch a read query to a host computer. In response to a read query, the host computer queries the NSC(s) on one or more storage cells in which the requested data resides. The NSC(s) retrieve the requested data from the storage media on which it resides and forwards the data to host computer, which in turn can forward data to the requesting device.
Storage network 200 may implement remote copy procedures to provide data redundancy for data stored in storage cells 210a, 210b, 210c. By way of example,
Write Operations
An application can write data to the storage network 200 by launching a write request to a host computer 216, 220. In response to a write request, a host computer 216, 220 launches a write command to the NSC(s) 410a, 410b in one or more storage cells 210a, 210b, 210c on which the requested data resides. The write command includes the data to be written to the storage network 200. In response to the write command, the NSC(s) 410a, 410b write the data onto the storage media. Referring again to
In one application, the operations illustrated in
In another application, the operations of
In addition to the specific embodiments explicitly set forth herein, other aspects and embodiments of the present invention will be apparent to those skilled in the art from consideration of the specification disclosed herein. It is intended that the specification and illustrated embodiments be considered as examples only, with a true scope and spirit of the invention being indicated by the following claims.