This disclosure relates generally to information handling systems, and relates more particularly to data storage systems in an information handling system.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an information handling system. An information handling system generally processes, compiles, stores, or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements can vary between different applications, information handling systems can also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information can be processed, stored, or communicated. The variations in information handling systems allow 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 can include a variety of hardware and software resources that can be configured to process, store, and communicate information and can include one or more computer systems, data storage systems, and networking systems.
An information handling system can include a tiered data storage system. A tiered data storage system typically places often used data into relatively fast but expensive storage media, and places less often used data into slower, less expensive storage media. Tiered data storage systems can be a cost effective way of storing data in an information handling system. A tiered data storage system can include a combination of non-volatile random access memory (NVRAM) such as FLASH or other non-volatile storage, disk storage, tape back-up storage, or other data storage media.
It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the Figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are illustrated and described with respect to the drawings presented herein, in which:
The use of the same reference symbols in different drawings indicates similar or identical items.
The following description in combination with the Figures is provided to assist in understanding the teachings disclosed herein. The following discussion will focus on specific implementations and embodiments of the teachings. This focus is provided to assist in describing the teachings, and should not be interpreted as a limitation on the scope or applicability of the teachings. However, other teachings can be used in this application. The teachings can also be used in other applications, and with several different types of architectures, such as distributed computing architectures, client/server architectures, or middleware server architectures and associated resources.
For purposes of this disclosure, an information handling system can 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 use any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system can be a personal computer, a PDA, a consumer electronic device, a network server or storage device, a switch router, wireless router, or other network communication device, or any other suitable device and can vary in size, shape, performance, functionality, and price. The information handling system can include memory (volatile such as random-access memory), nonvolatile such as read-only memory or flash memory) or any combination thereof), one or more processing resources, such as a central processing unit (CPU), a graphics processing unit (GPU), hardware or software control logic, or any combination thereof. Additional components of the information handling system can include one or more storage devices, one or more communications ports for communicating with external devices, as well as various input and output (I/O) devices such as a keyboard, a mouse, a video/graphic display, or any combination thereof. The information handling system can also include one or more buses operable to transmit communications between the various hardware components. Portions of an information handling system may themselves be considered information handling systems.
Portions of an information handling system, when referred to as a “device,” a “module,” or the like, can be configured as hardware, software (which can include firmware), or any combination thereof. For example, a portion of an information handling system device may be hardware such as, for example, an integrated circuit (such as an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a structured ASIC, or a device embedded on a larger chip), a card (such as a Peripheral Component Interface (PCI) card, a PCI-express card, a Personal Computer Memory Card International Association (PCMCIA) card, or other such expansion card), or a system (such as a motherboard, a system-on-a-chip (SoC), or a stand-alone device). Similarly, the device could be software, including firmware embedded at a device, such as a Pentium class or PowerPC™ brand processor, or other such device, or software capable of operating a relevant environment of the information handling system. The device could also be a combination of any of the foregoing examples of hardware or software. Note that an information handling system can include an integrated circuit or a board-level product having portions thereof that can also be any combination of hardware and software.
Devices or programs that are in communication with one another need not be in continuous communication with each other unless expressly specified otherwise. In addition, devices or programs that are in communication with one another may communicate directly or indirectly through one or more intermediaries.
An information handling system can include a host processing system and a tiered data storage system. In a particular embodiment, described herein, the host processing system writes data to, and reads data from the tiered data storage system. The tiered data storage system manages data storage such that different portions of the data are stored in different devices, based on predetermined selection criteria. The selection criteria can relate to the frequency a particular portion of the data is accessed by the host processing system. The tiered data storage system creates and maintains allocation metadata structures that include metadata pertaining to which portions of the data are stored in which devices and the frequency of access to the data such that portions of data can be moved between the tiers to provide improved performance.
In operation, storage controller 122 manages data storage for information handling system 100 on storage devices 132, 134, and 136 as illustrated in
Storage controller 122 divides the logical address range of address range 210 into a number of substantially equal sized chunks 1 through 9, each chunk 1 through 9 including the data from a corresponding logical address range. As such, chunk 1 stores the data from the logical address range of 0 to 1, chunk 2 stores the data from the logical address range of 1 to 2, and so on. Storage controller 122 includes a metadata structure, as shown in Table 1, which includes an entry for each of chunks 1 through 9. The metadata structure can be a part of data structure 140, and includes an access count for each chunk, as shown in the third column. The access count can be further broken down into separate counts for the number of data reads and writes for each chunk, as shown in the fourth column. The access count is a tracking of the number of times each chunk 1 through 9 is accessed for data reads and data writes in a particular amount of time, as, for example, in an hour, or in a day, or in another amount of time. The chunks 1 through 9 are representative, and storage controller 122 can divide address range 210 into more or less than nine chunks.
Application 112 functions to operate on the data in storage devices 132, 134, and 136 in a predetermined way. A non-limiting example of the way in which application 112 can operate on the data in storage array 112 includes scanning the data for viruses, archiving unused or seldom used data to a long term storage system (not illustrated), backing up often used data to a back-up storage system (not illustrated), maintaining data consistency between storage devices 132, 134, and 136 and a mirror data storage system (not illustrated), another data operation, or a combination thereof. By accessing data structure 140, and in particular, a metadata structure similar to Table 1, application 112 can determine particular logical address ranges or chunks to operate on, and other particular logical address ranges or chunks to ignore.
In a particular example, application 112 can include an anti-virus program. Such an anti-virus program can function to scan files that have been written to in a particular amount of time, as, for example, in an hour, or in a day, or in another amount of time. Thus, application 112 can obtain information as to which chunks have been written to in the particular amount of time by viewing a metadata structure in data structure 140. Using Table 1 as an example, application 112 can determine that chunks 2, 6, and 9 have all had zero write accesses in the particular amount of time, and thus the anti-virus program can determine to not scan chunks 2, 6, and 9. Then, when the anti-virus program initiates a scan, the data in address range 210 with logical addresses of 0-1, 2-5, and 6-8 can be scanned and the data with logical addresses of 1-2, 5-6, and 8-9 can be excluded from the scan, thus decreasing the time necessary to scan for viruses, as compared to scanning all of the data.
In another example, application 112 can include an archive program that functions to move files that have not been accessed often in a particular amount of time to a long term storage system. Again, application 112 can obtain the access count information from a metadata structure. For example, if an archive program moves files that have been read fewer than 20 times, and have not been written to, then using Table 1 as an example, application 112 can determine that chunks 2 and 6 can be archived without having to scan the individual files in chunks 2 and 6, and the archive program's performance is improved, as compared to having to scan all files.
In operation, storage controller 322 manages data storage for information handling system 300 on storage devices 332, 334, and 336 as described above with respect to
Application 312 functions to operate on the data in storage devices 332, 334, and 336 as described above. Thus application 312 can operate by scanning the data for viruses, archiving data, backing up data, maintaining data consistency, performing another operation, or a combination thereof. In a particular embodiment, application 312 sends a command 352 to storage controller 322, indicating that application program 312 is preparing to operate on the data in storage array 320. In response, storage controller 322 initiates a command 354 to compare the metadata information in metadata structure 342 with the metadata information in snapshot structure 344 and record the differences in changes structure 346. Storage controller 322 then sends the change information 356 to application 312. Based upon the change information, application 312 performs an operation 358 on the data in storage devices 332, 334, and 336.
In another embodiment (not illustrated), application 312 reads change structure 346 to obtain the change information. In another embodiment (not illustrated), application 312 reads metadata structure 342, and retains the metadata information in a snapshot structure similar to snapshot structure 344. At a later time, application 312 reads metadata structure 342 again, and compares the later metadata information with the earlier metadata information in its snapshot structure and records the differences in a changes structure similar to changes structure 346. Application 312 then operates on the data in storage devices 332, 334, and 336 based upon the change information.
In a particular embodiment, an information handling system can be used to carry out one or more of the methods described above. In another embodiment, one or more of the systems described above can be implemented in the form of an information handling system.
Processor 510 is coupled to chipset 520. Chipset 520 supports processor 510, allowing processor 510 to process machine-executable code. In a particular embodiment (not illustrated), information handling system 500 includes one or more additional processors, and chipset 520 supports the multiple processors, allowing for simultaneous processing by each of the processors, permitting the exchange of information between the processors and the other elements of information handling system 500. Processor 510 can be coupled to chipset 520 via a unique channel, or via a bus that shares information between processor 510, chipset 520, and other elements of information handling system 500.
Memory 530 is coupled to chipset 520. Memory 530 can be coupled to chipset 520 via a unique channel, or via a bus that shares information between chipset 520, memory 530, and other elements of information handling system 500. In particular, a bus can share information between processor 510, chipset 520 and memory 530. In a particular embodiment (not illustrated), processor 510 is coupled to memory 530 through a unique channel. In accordance with another aspect (not illustrated), an information handling system can include a separate memory dedicated to each of the processors. A non-limiting example of memory 530 includes static, dynamic. Or non-volatile random access memory (SRAM, DRAM, or NVRAM), read only memory (ROM), flash memory, another type of memory, or any combination thereof.
Graphics interface 540 is coupled to chipset 520. Graphics interface 540 can be coupled to chipset 520 via a unique channel, or via a bus that shares information between chipset 520, graphics interface 540, and other elements of information handling system 500. Graphics interface 540 is coupled to a video display 544. Other graphics interfaces (not illustrated) can also be used in addition to graphics interface 540 if needed or desired. Video display 544 can include one or more types of video displays, such as a flat panel display or other type of display device.
I/O interface 550 is coupled to chipset 520. I/O interface 550 can be coupled to chipset 520 via a unique channel, or via a bus that shares information between chipset 520, I/O interface 550, and other elements of information handling system 500. Other I/O interfaces (not illustrated) can also be used in addition to I/O interface 550 if needed or desired. I/O interface 550 is coupled to one or more add-on resources 554. Add-on resource 554 is connected to a tiered storage system 556, similar to tiered storage system 120, and can also include another data storage system, a graphics interface, a network interface card (NIC), a sound/video processing card, another suitable add-on resource or any combination thereof.
Network interface device 570 is coupled to I/O interface 550. Network interface 570 can be coupled to I/O interface 550 via a unique channel, or via a bus that shares information between I/O interface 550, network interface 570, and other elements of information handling system 500. Other network interfaces (not illustrated) can also be used in addition to network interface 570 if needed or desired. Network interface 570 can be a network interface card (NIC) disposed within information handling system 500, on a main circuit board (e.g., a baseboard, a motherboard, or any combination thereof), integrated onto another component such as chipset 520, in another suitable location, or any combination thereof. Network interface 570 includes a network channel 572 that provide interfaces between information handling system 500 and other devices (not illustrated) that are external to information handling system 500. Network interface 570 can also include additional network channels (not illustrated).
Disk controller 560 is coupled to chipset 510. Disk controller 560 can be coupled to chipset 520 via a unique channel, or via a bus that shares information between chipset 520, disk controller 560, and other elements of information handling system 500. Other disk controllers (not illustrated) can also be used in addition to disk controller 560 if needed or desired. Disk controller 560 can include a disk interface 562. Disk controller 560 can be coupled to one or more disk drives via disk interface 562. Such disk drives include a hard disk drive (HDD) 564 or an optical disk drive (ODD) 566 (e.g., a Read/Write Compact Disk (R/W-CD), a Read/Write Digital Video Disk (R/W-DVD), a Read/Write mini Digital Video Disk (R/W mini-DVD), or another type of optical disk drive), or any combination thereof. Additionally, disk controller 560 can be coupled to disk emulator 580. Disk emulator 580 can permit a solid-state drive 584 to be coupled to information handling system 500 via an external interface. The external interface can include industry standard buses (e.g., USB or IEEE 1384 (Firewire)) or proprietary busses, or any combination thereof. Alternatively, solid-state drive 584 can be disposed within information handling system 500.
In the embodiments described above, an information handling system can 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 use any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system can be a personal computer, a PDA, a consumer electronic device, a network server or storage device, a switch router, wireless router, or other network communication device, or any other suitable device and can vary in size, shape, performance, functionality, and price. The information handling system can include memory (volatile (e.g. random-access memory, etc.), nonvolatile (read-only memory, flash memory etc.) or any combination thereof), one or more processing resources, such as a central processing unit (CPU), a graphics processing unit (GPU), hardware or software control logic, or any combination thereof. Additional components of the information handling system can include one or more storage devices, one or more communications ports for communicating with external devices, as well as, various input and output (I/O) devices, such as a keyboard, a mouse, a video/graphic display, or any combination thereof. The information handling system can also include one or more buses operable to transmit communications between the various hardware components. Portions of an information handling system may themselves be considered information handling systems.
When referred to as a “device,” a “module,” or the like, the embodiments described above can be configured as hardware, software (which can include firmware), or any combination thereof. For example, a portion of an information handling system device may be hardware such as, for example, an integrated circuit (such as an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a structured ASIC, or a device embedded on a larger chip), a card (such as a Peripheral Component Interface (PCI) card, a PCI-express card, a Personal Computer Memory Card International Association (PCMCIA) card, or other such expansion card), or a system (such as a motherboard, a system-on-a-chip (SoC), or a stand-alone device). Similarly, the device could be software, including firmware embedded at a device, such as a Pentium class or PowerPC™ brand processor, or other such device, or software capable of operating a relevant environment of the information handling system. The device could also be a combination of any of the foregoing examples of hardware or software. Note that an information handling system can include an integrated circuit or a board-level product having portions thereof that can also be any combination of hardware and software.
Devices, modules, resources, or programs that are in communication with one another need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices, modules, resources, or programs that are in communication with one another can communicate directly or indirectly through one or more intermediaries.
Although only a few exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of the embodiments of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the embodiments of the present disclosure as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures.
Number | Name | Date | Kind |
---|---|---|---|
20070240216 | O'Sullivan et al. | Oct 2007 | A1 |
20080082768 | Dunlop et al. | Apr 2008 | A1 |
20080263277 | Matsunami et al. | Oct 2008 | A1 |
20090089880 | Kobayashi et al. | Apr 2009 | A1 |
20110145528 | Watanabe et al. | Jun 2011 | A1 |
Entry |
---|
Touchette, “Anti-Virus Operations in the VDI World,” NetApp Blogs—The Virtualization Effect, Nov. 24, 2008 http://blogs.netapp.com/virtualization/2008/11/anti-virus-oper.html. |
Number | Date | Country | |
---|---|---|---|
20110093670 A1 | Apr 2011 | US |