1. Technical Field of the Invention
This invention is related to a method and apparatus for storing data used by Storage Area Networks and Network Attached Storage systems on the same storage medium. In particular, the storage of data for these two network architectures reduces the number of storage assets required for a network. The invention is embodied in a method for storing data from both Storage Area Network and Network Attached Storage architectures on the same storage medium, and a data storage apparatus for storing data received from both Storage Area Network and Network Attached Storage architectures. The invention is also embodied in a computer system that stores data received from both Storage Area Network and Network Attached Storage architectures on the same storage medium, and a computer program product that stores data from both Storage Area Network and Network Attached Storage architectures.
2. Description of the Related Art
There will now be provided a discussion of various topics to provide a proper foundation for understanding the invention.
In order for a client device to be able to access to multiple servers running different operating systems, either the client device supports the file sharing protocol of each operating system or the server supports the file sharing protocol of each client device. Software that adds this capability is very common and allows interoperability between Windows®, Macintosh®, NetWare® and UNIX platforms. TABLE 1 lists several common operating systems and their transport and file sharing protocols for networking environments.
A Storage Area Network (SAN) system is a back-end network that uses peripheral channels to connect storage devices. Typically, the peripheral channels are Small Computer System Interface (SCSI), Serial Storage Architecture (SSA), Enterprise Systems Connection (ESCON) and Fibre Channel. SAN devices are usually dedicated high-bandwidth systems that handle traffic between servers and storage assets. Data objects on a SAN system are sets of logical disk volumes above which higher level object semantics can be implemented on specific application servers.
Both centralized SANs and distributed SANs are currently used. A centralized SAN ties multiple hosts into a single storage system. The storage system is usually a Redundant Array of Independent Disks (RAID) device with large amounts of cache and redundant power supplies. Typically, this centralized storage architecture ties a server cluster together for fault tolerance (i.e., if one server fails, another server can take over). Centralized SAN also provides simplified sharing of data between multiple servers, and further provides multiple servers the capability to perform the work on the shared data.
Referring to
A distributed SAN system connects multiple hosts with multiple storage systems. Referring to
Referring to
A Network Attached Storage (NAS) system is connected to a front-end communications network just like a file server. Typically, the communications protocol is Ethernet, TCP/IP or FTP, but other lesser-used protocols are not excluded. A NAS system does not rely upon a complete operating system for its functionality. Instead, a slimmed-down micro-kernel targeted for file management is used. Traditional Local Area Network (LAN) protocols such as NFS (UNIX), SMB/CIFS (DOS/Windows) and NCP (NetWare) are examples of slimmed-down operating systems used for file management on a NAS system. Devices in a NAS system typically attach to a LAN and allow sets of users to retrieve and share files that may span over multiple operating system environments.
Referring to
Referring to
An advantage of the NAS system is that adding or removing a NAS system is like adding or removing any network node. In general, a SAN system (e.g., a channel-attached storage system) must be brought down in order to reconfigure it. Another advantage of a NAS system is that application servers are not involved with management functions, such as volume management, and can access the stored data as files. However, NAS systems are subject to the erratic behavior and overhead of the network.
The invention has been made in view of the above circumstances and to overcome the above problems and limitations of the prior art.
Additional aspects and advantages of the invention will be set forth in part in the description that follows and in part will be obvious from the description, or may be learned by practice of the invention. The aspects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
A first aspect of the present invention is a data storage device comprising a first port connected to a storage area network to applications servers and client devices. The data storage device further comprises a storage medium having a first portion that stores files, a second portion that stores logical disk volumes and a third portion that stores pointers to the logical disk volumes.
A second aspect of the present invention is data storage device comprising first and second ports. The data storage device further includes a storage medium connected to the first port and second port, and the storage medium has a first portion that stores files, a second portion that stores logical disk volumes and a third portion that stores pointers to the logical disk volumes.
A third aspect of the present invention is a computer network that includes a storage area network having applications servers, and a network attached storage system having client devices and file servers. The computer network also includes a storage device connected to the storage area network and the network attached storage system. The storage device includes a storage medium having a first portion assigned to files for the client devices, a second portion assigned to logical disk volumes for the applications servers, and a third portion assigned to pointers to the logical disk volumes.
A fourth aspect of the present invention is a storage system responsive to service requests from client devices of a network attached storage system and to applications servers of a storage area network. The storage system includes a first interface to the network attached storage system, a second interface to the storage area network and a storage medium. The storage medium comprises a first portion assigned to store files for the clients of the network attached storage system, a second portion assigned to store logical disk volumes for the applications servers of the storage area network, and a third portion assigned to store pointers to the logical disk volumes.
A fifth aspect of the present invention is a data storage device that includes a first storage medium assigned to files for client devices of a network attached storage system. The data storage device further comprises a second storage medium assigned to logical disk volumes for the applications servers of a storage attached network, and a third storage medium for pointers the logical disk volumes for the applications servers of a storage attached network.
A sixth aspect of the present invention is a storage device including a first interface for connecting to a network attached storage system and a second interface for connecting to a storage area network. The storage device further includes a storage medium having a first portion assigned to store files for the client devices of the network attached storage system, a second portion assigned to store logical disk volumes for the applications servers of the storage area network and a third portion assigned to store pointers to the logical disk volumes. The storage device also includes a controller connected to the first and second interface for controlling read and write access to the storage medium.
A seventh aspect of the present invention is a data storage device having a first port and storage means connected to the first port. The storage means includes a first portion that stores the files, a second portion that stores the logical disk volumes and a third portion that stores pointers to the logical disk volumes.
An eighth aspect of the present invention is a storage system responsive to service requests from client means of a network attached storage system and to applications servers of a storage area network. The storage device has a first interface means and second means for connecting to the networks. The storage device has storage means for storing files and logical disk volumes, and storage means is partitioned into a first portion assigned to store the files for the client means, a second portion assigned to store the logical disk volumes for the applications servers and a third portion assigned to store pointers to the logical disk volumes.
A ninth aspect of the present invention is a storage device having a first and second interface means for connecting to network attached storage systems and to storage area networks. The storage device includes a storage means for storing files and logical disk volumes, and the storage means is partitioned into a first portion assigned to store files for the client means, a second portion assigned to store logical disk volumes for the applications servers and a third portion assigned to store pointers to the logical disk volumes. The storage device also includes a controller means connected to the first and second interface for controlling read and write access to the storage means.
A tenth aspect of the present invention is a method of storing data from a plurality of storage systems on a storage medium. The method comprises storing data for client devices of a network attached storage system on a first portion of the storage medium, storing data for applications servers of a storage area network on a second portion of the storage medium, and storing pointers to data for applications servers on a third portion of the storage medium.
A eleventh aspect of the present invention is a computer system adapted to storing data from a plurality of storage systems on a storage medium. The computer system comprises a processor and a memory comprising software instructions adapted to enable the computer system to store data for client devices of a network attached storage system on a first portion of the storage medium. The instructions are further adapted to enable the computer system to store data for applications servers of a storage area network on the second portion of a storage medium, and to store pointers to data for applications servers on a third portion of the storage medium.
A twelfth aspect of the present invention is a computer program product for storing data from a plurality of storage systems on a storage medium. The computer program product comprises software instructions for enabling a computer system to perform predetermined operations, and a computer readable medium bearing the software instructions. The predetermined operations comprise storing data for client devices of a network attached storage system on a first portion of the storage medium, storing data for applications servers of a storage area network on a second portion of the storage medium, and storing pointers to data for applications servers on a third portion of the storage medium.
A thirteenth aspect of the present invention is a executable program for a computer system for storing data from a plurality of storage systems on a storage medium. The executable program comprises a first executable code portion which, when executed on the computer system, stores data for client devices of a network attached storage system on a first portion of the storage medium. The executable program further comprises a second executable code portion which, when executed on the computer system, stores data for applications servers of a storage area network on a second portion of the storage medium. The executable program further comprises a third executable code portion which, when executed on the computer system, stores pointers to data for applications servers on a third portion of the storage medium.
A fourteenth aspect of the present invention is a method for handling data requests from a plurality of data requestors to a storage device. The method comprises receiving the data request and determining if the data request originates from an application server of a storage attached network or a client device. If the data request originated from an application server and requests a volume, the method further comprises determining if the requested volume is stored on the storage device, and retrieving the volume using a pointer to the volume. If the data request originated from the client device and requests a file, the method further comprises retrieving the requested file from the storage device.
A fifteenth aspect of the present invention is a method for handling data write requests from a plurality of data writers to a storage device. The method comprises receiving the data write request and determining if the data write request originates from an application server of a storage attached network or a client device. If the data write request originated from an application server and requests to write a volume to the storage device, the method further comprises determining if the volume is already stored on the storage device, determining if the storage device has space for storing the volume, writing the volume to the storage device, and updating a pointer to the volume. If the data write request originated from a client and requests to write a file to the storage device, the method further comprises writing the requested file to the storage device.
The above aspects and advantages of the invention will become apparent from the following detailed description and with reference to the accompanying drawing figures.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate the invention and, together with the written description, serve to explain the aspects, advantages and principles of the invention. In the drawings,
Prior to describing the aspects of the invention, some details concerning the prior art will be provided to facilitate the reader's understanding of the invention and to set forth the meaning of various terms.
As used herein, the term “computer system” encompasses the widest possible meaning and includes, but is not limited to, standalone processors, networked processors, mainframe processors, and processors in a client/server relationship. The term “computer system” is to be understood to include at least a memory and a processor. In general, the memory will store, at one time or another, at least portions of executable program code, and the processor will execute one or more of the instructions included in that executable program code.
As used herein, the term “embedded computer system” includes, but is not limited to, an embedded central processor and memory bearing object code instructions. Examples of embedded computer systems include, but are not limited to, personal digital assistants, cellular phones and digital cameras. In general, any device or appliance that uses a central processor, no matter how primitive, to control its functions can be labeled has having an embedded computer system. The embedded central processor will execute one or more of the object code instructions that are stored on the memory. The embedded computer system can include cache memory, input/output devices and other peripherals.
As used herein, the terms “predetermined operations,” the term “computer system software” and the term “executable code” mean substantially the same thing for the purposes of this description. It is not necessary to the practice of this invention that the memory and the processor be physically located in the same place. That is to say, it is foreseen that the processor and the memory might be in different physical pieces of equipment or even in geographically distinct locations.
As used herein, the terms “media,” “medium” or “computer-readable media” include, but is not limited to, a diskette, a tape, a compact disc, an integrated circuit, a cartridge, a remote transmission via a communications circuit, or any other similar medium useable by computers. For example, to distribute computer system software, the supplier might provide a diskette or might transmit the instructions for performing predetermined operations in some form via satellite transmission, via a direct telephone link, or via the Internet.
Although computer system software might be “written on” a diskette, “stored in” an integrated circuit, or “carried over” a communications circuit, it will be appreciated that, for the purposes of this discussion, the computer usable medium will be referred to as “bearing” the instructions for performing predetermined operations. Thus, the term “bearing” is intended to encompass the above and all equivalent ways in which instructions for performing predetermined operations are associated with a computer usable medium.
Therefore, for the sake of simplicity, the term “program product” is hereafter used to refer to a computer-readable medium, as defined above, which bears instructions for performing predetermined operations in any form.
As used herein, a “redundant array of independent disks” (RAID) is a disk subsystem that increases performance and/or provides fault tolerance. RAID is a set of two or more hard disks and a specialized disk controller that contains the RAID functionality.
A detailed description of the aspects of the invention will now be given referring to the accompanying drawings.
As described earlier, in a SAN network, the applications servers are connected to the mass storage devices through the SAN network. In a NAS system, the client servers are connected to the storage devices on a LAN. It is not uncommon for both types of networks to comprise a complete system. For example, the application servers a SAN system (which are connected to the SAN network) may be also connected to a LAN in order to communicate amongst themselves. In another example, in a NAS system, a separate SAN network may be connected behind the NAS server. In this architecture, the SAN network is used to connect several storage devices to the NAS server (or sometimes more than one NAS server).
Referring to
The storage device 45 as shown in the network above will now be described in more detail. Referring to
Referring to
The storage device 60 as shown in the network above will now be described in more detail. Referring to
The data storage device 60 also comprises a controller 49 to process data requests from the clients of the network attached storage system and the applications servers of the storage area network. The controller 49 stores a file to or retrieves a file from the NAS file partition 57 of the storage medium 50 in response to a command from a client device. In addition, the controller 49 stores a volume to or retrieves a volume from the SAN volume partition 58 of the storage medium 50 in response to a command from an applications server. The controller 49 also updates the SAN pointer partition 59 of the storage medium 50 in response to a command from an applications server to retrieve or store a volume on the storage medium 50. The NAS bus 52 handles the command and data traffic between the controller 49, the storage medium 50 and the NAS access port 54. The SAN bus 53 handles the command and data traffic between the controller 49, the storage medium 50 and the SAN access port 55.
Referring to
The storage medium 50 is a hard disk or a RAID device, although other types of storage mediums (e.g., optical disks, semiconductor memory, tape storage) could be used as well. If a plurality of hard disks are used as the storage medium, the NAS file partition 57 can simply be assigned to one or more of the disks comprising the plurality of disk drives. Likewise, the SAN volume partition 58 and the SAN pointer partition 59 can be assigned to one or more of the disk drives comprising the plurality of disk drives.
Referring to
At S130, if the data management request was from an applications server of the storage area network, at S140, the data storage device 50 performs the requested data management function on the SAN volume partition 58. Once the requested data management function is complete, at S150, the data storage device 50 updates the SAN pointer partition 59 to reflect any changes made to the SAN volume partition 58. At S160, if the data management request unidentifiable, an error message is output.
Another embodiment of the present invention described above is a computer system that is adapted to storing data from a plurality of storage systems on a storage medium. The computer system comprises a processor and a memory that comprises software instructions adapted to enable the computer system to perform various functions. Aside from the functions that are associated with an operating system, the memory comprises software instructions adapted to store data for client devices of a network attached storage system on a first portion of the storage medium. This first portion of the storage medium would be the NAS file partition 57 on a storage medium 50 in a storage device 45. The software instructions on the memory are also adapted to store data for applications servers of a storage area network on a second portion of a storage medium. This second portion of the storage medium would be the SAN volume partition 58 on a storage medium 50 in a storage device 45. The software instructions on the memory are also adapted to store pointers to data for applications servers on a third portion of a storage medium. This third portion of the storage medium would be the SAN pointer partition 59 on a storage medium 50 in a storage device 45.
To execute the functions described above with respect to storing data on the storage medium, the software instructions are further adapted to enable the computer system to read or write data from the first portion of the storage medium in response to a command from a client device. Again, this first portion of the storage medium would be the NAS file partition 57 on a storage medium 50 in a storage device 45. The software instructions are also adapted to enable the computer system to read or write data from the second portion of the storage medium in response to a command from an applications server. Again, this second portion of the storage medium would be the SAN volume partition 58 on a storage medium 50 in a storage device 45. In addition, the software instructions are further adapted to enable the computer system to update pointers stored on die third portion of the storage medium in response to a command from an applications server to read or write data from the second portion of the storage medium. Again, this third portion of the storage medium would be the SAN pointer partition 59 on a storage medium 50 in a storage device 45.
Another embodiment of the present invention described above is a computer program product for storing data from a plurality of storage systems on a storage medium. The computer program product comprises software instructions for enabling a computer system to perform predetermined operations, and a computer readable medium bearing the software instructions. The computer readable medium can be any one of the mediums described above. The predetermined operations comprise software instructions adapted to store data for client devices of a network attached storage system on a first portion of the storage medium. This first portion of the storage medium would be the NAS file partition 57 on a storage medium 50 in a storage device 45. The predetermined operations further comprise software instructions adapted to store data for applications servers of a storage area network on a second portion of a storage medium. This second portion of the storage medium would be the SAN volume partition 58 on a storage medium 50 in a storage device 45. The predetermined operations further comprise software instructions adapted to store pointers to data for applications servers on a third portion of a storage medium. This third portion of the storage medium would be the SAN pointer partition 59 on a storage medium 50 in a storage device 45.
To execute the functions described above with respect to storing data on the storage medium, the predetermined operations are software instructions further adapted to enable the computer system to read or write data from the first portion of the storage medium in response to a command from a client device. Again, this first portion of the storage medium would be the NAS file partition 57 on a storage medium 50 in a storage device 45. The predetermined operations are software instructions further adapted to enable the computer system to read or write data from the second portion of the storage medium in response to a command from an applications server. Again, this second portion of the storage medium would be the SAN volume partition 58 on a storage medium 50 in a storage device 45. In addition, the predetermined operations are software instructions further adapted to enable the computer system to update pointers stored on the third portion of the storage medium in response to a command from an applications server to read or write data from the second portion of the storage medium. Again, this third portion of the storage medium would be the SAN pointer partition 59 on a storage medium 50 in a storage device 45.
Another embodiment of the present invention described above is an executable program for a computer system for storing data from a plurality of storage systems on a storage medium. The executable program comprises a first executable code portion which, when executed on the computer system, stores data for client devices of a network attached storage system on a first portion of the storage medium. This first portion of the storage medium would be the NAS file partition 57 on a storage medium 50 in a storage device 45. The executable program comprises a second executable code portion which, when executed on the computer system, stores data for applications servers of a storage area network on a second portion of a storage medium. This second portion of the storage medium would be the SAN volume partition 58 on a storage medium 50 in a storage device 45. The executable program comprises a third executable code portion which, when executed on the computer system, stores pointers to data for applications servers on a third portion of a storage medium. This third portion of the storage medium would be the SAN pointer partition 59 on a storage medium 50 in a storage device 45.
Referring to
At S240, if the request for data retrieval originated from a SAN applications server, the method shifts to S260, where the pointer list is reviewed to determine if the requested logical disk volume is present on the data storage device. If the request for data retrieval did not originate from a SAN applications server, the method shifts to S250 and an error message is output.
At S260, if the requested logical volume is present, the method shifts to S280, where the request for data retrieval is processed. If the requested logical volume is not present, the method shifts to S290, where the requestor is notified that the requested logical disk volume is unavailable.
Referring to
At S340, if the request for data storage originated from a SAN applications server, the method shifts to S350, where the size of the logical disk volume to be stored is determined. If the request for data storage did not originate from a SAN applications server, the method shifts to S430 and an error message is output.
At S360, if there is insufficient disk space to store the logical disk volume, at S370, the data storage requestor is notified that the data storage device lacks sufficient storage space. If there is sufficient storage space on the data storage device, at S380, a determination is made whether the logical disk volume is replacing a logical disk volume that is currently mounted on the data storage device. At S390, if a currently mounted logical disk volume is to be replaced, the method shifts to S400, where the new logical disk volume replaces the currently mounted logical disk volume. Subsequent to the replacement, as S440, the pointers to the logical disk volumes stored on the data storage device are updated. If the new logical volume does not replace a currently mounted logical volume, the method shifts to S410.
At S410, a determination is made whether the new logical volume is to be stored on the data storage device. At S420, if the new logical volume is to be stored, the method shifts to S430 wherein the new logical volume is stored on the data storage device. At S440, the pointers to the logical disk volumes stored on the data storage device are updated.
The foregoing description of the aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The principles of the invention and its practical application were described in order to explain the to enable one skilled in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.
Thus, while only certain aspects of the invention have been specifically described herein, it will be apparent that numerous modifications may be made thereto without departing from the spirit and scope of the invention. Further, acronyms are used merely to enhance the readability of the specification and claims. It should be noted that these acronyms are not intended to lessen the generality of the terms used and they should not be construed to restrict the scope of the claims to the embodiments described therein.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US00/33277 | 12/20/2000 | WO | 3/16/2005 |