This invention relates generally to data handling, and more particularly to a method and system for implementing file system offloading to enhance the performance of a server environment.
The two main consumers of CPU processing power in computers as known presently include:
1. Network
2. Disk
Network related data processing involves two paths, the send path and the receive path. On the send path, the CPU needs to construct a network packet to encapsulate the data and send it out on the network. On the receive path, the CPU needs to retrieve the data from the received packets and transfer it to the relevant application. This task though trivial causes a heavy overhead on the CPU with the increase in network speeds.
Disk related data processing again involves two paths, the write path and read path. On the write path, the CPU would be utilized by the file system drivers to determine the sector that needs to be written and then actually write the data. On the read path, the CPU would be utilized to traverse the complex file system structures and then actually read the data.
There has been a significant amount of technology developed to improve Network related data processing and to ensure that it can be geared to meet the increase in network speeds. The technology is called TCP offloading, and TCP offloading is a common term in most server environments. As an extension to this is iSCSI (internet Small Systems Computer Interface) offload which is slowly gaining importance in storage and server environments, and helps in (System Area Network) SAN environments.
However, there is another area that needs to be addressed and this is related to file systems. Increase in disk sizes and OS (Operating System) capabilities mean that larger file systems can be supported.
A few performance characteristics and facts about Disks, CPU architecture and File Systems are considered as background:
Drives:
The speeds when the drives are connected individually to a motherboard are indicated in the listing above. Considering the numbers when the drives are connected via an interface like the SATA interface, up to 4 drives can be connected to a SATA interface card and the sustained transfer rate would then be
65*4=280 MB/s or 2.2 Gb(Giga bit)/s.
It is noted that a fiber channel can deliver speeds up to 2 Gbps
The fast Ethernet speed available right now is 1 Gbps and work is in progress to standardize 10 Gbps speed.
It is noted that disks can now deliver an output which is about half what a network interface provides, and networking functionality can already be offloaded.
CPU (Central Processing Unit) s: AMD® and Intel® have introduced single and dual core versions of their 64 bit CPUs. These CPUs are available for servers as well as desktops. It is also noted that with the 64 bit CPUs, there are 64 bits of addressable space available in memory as well as on disk.
It is noted that established file Systems like NTFS (New Technology File System), Reiser FS®, Ext3 and Ext2 can now take advantage of 64 bit addressing space.
New file systems like iSilon's OneFS® can support up to 66.5 TBytes of data.
Also, the file system known as WinFS® seeks to address and catalog every file in the file system.
It is noted that individual file systems can not only be larger but also they can support larger files.
Increasing Use of Disk Intensive Applications Include:
File systems: A definition on the web says that file systems are methods and data structures that an operating system uses to keep track of files on a disk or partition, to control the way the files are organized on the disk. Examples of file systems include FAT12, FAT16, FAT32, EXT2, EXT3, NTFS, Reiser etc. As generally known, the FAT®(File Allocation Table) based file systems are the oldest in existence. FAT and EXT based file systems are index based. NTFS and Reiser® are examples of B-Tree® based file systems.
File Systems are important because they contain all the data required for a computer to boot and perform all the operations. On all operating systems there are specific drivers referred to as the File System drivers that have the logic for creating and managing the file system. File systems are normally organized so the data of the file is stored in a separate location on the disk compared to where the meta-data for the file is stored. When a file system is said to be index based or B-Tree based it usually refers to the way the meta-data of the file is stored.
In index based file systems, a file or a directory is given an ID (Identifier) that is based on the location of the meta-data of the file in the index structures.
In B-Tree based file systems the meta-data of the file is stored in B-Trees and each of the files is again given an ID. B-Tree based file systems are more complex but it is easier to locate files on such file systems.
Index based file systems are less complex file systems but have disadvantages in terms of the amount of time it takes to search for a file on the file system.
The size of these file systems is governed to a large extent by the number of bits that the CPU can address. So, a file system on a 64 bit CPU can grow to a larger size than a file system on a 32 bit CPU.
For every request from an application to locate a file or read file data this will result in calls to the File System Driver (FSD) to locate the data. The driver would initially lookup in the cache if it can retrieve the data, or else, it would read the data off the disk. Caching is usually used by Operating Systems to speed up file access. The file system cache normally stores either a part or whole of the meta-data and some part of the data of a file that is currently being accessed.
There are certain applications which impose big demands on file systems. Consider the file systems that are attached to Web servers catering to request from hundreds or even thousands of clients. Each of these requests could potentially lead to a read-command from a disk. Since the file system logic is embedded in the FSD, the FSD would need to make multiple read-accesses from the disk and also traverse either the Index or a B-Tree to locate a file. Caching the meta-data or the file data for such systems is not productive as the requests themselves can be very unique. Instead of the host CPU being burdened to locate and retrieve the file it could have been used to receive more web requests.
Another scenario to consider is the functioning of the servers attached to big databases. The database sizes can grow to GB (Giga Byte) s or even TB (Terabyte) s based on the amount of information they contain. In such systems, retrieving something from the database would mean that the meta-data on the file system needs to be traversed. If the database is really big, then caching needs to be really good to be effective. It is noted that if the host CPU is not burdened in participating in the search and retrieval of the data, it could service more database requests.
This invention provides a method of utilizing and implementing file system offload so that it can benefit a server environment.
One definition of the term Offload: Offload is when the term is used to define the process by which the host CPU relinquishes a part of the work that it was accustomed to doing earlier, to another processor, typically a processor on an add on card. TCP Offloading is the most common term and it refers to a setup where the network processing is predominantly carried out on an add-on card. This frees up the host CPU to do other tasks.
Discussed herein is also the term File System Offloading (FSO). File System Offloading in the context of the present invention comprises, transferring the file system related tasks from the host CPU to another dedicated processor.
As taught in an example described herein, during handling data, the data processing part can be done by the host CPU and the data access part can be separated out for being addressed by a dedicated processor. It is also expedient to have add-on cards that do offloading till the SCSI layer. In one embodiment, the only part of the storage architecture that is still handled by the host CPU is the file system and that part can also be offloaded.
File System Offloading or FSO is beneficial for such scenarios where the server environment needs to be improved. With FSO, the CPU on a host machine can dedicate more time into processing the data rather than spend that time in retrieval of data from the file system. The numbers shown in the context of the discussion on drives and CPU supra indicate that the maximum disk output currently is close to 0.5 Gbps, which means that having a processor dedicated to the file system would improve data retrieval rate to a large extent.
When FSO is implemented, the entire file system logic would selectively be executed on a dedicated processor. The dedicated processor can exist on the HBA (Host Bus Adapter) which currently provides connectivity to a SCSI or IDE (Integrated drive electronics) based disk. If on-board controllers are used, then the FS (File system) logic can be embedded into these on board controllers.
There still would be a Basic FSD that executes under the control of the host CPU. The basic FSD would serve as a pass-through to the requests and would send it directly to the FSO.
The invention in one form resides in a method of handling data by file system offloading, by selective separation of data-accessing function and data-processing function, wherein a host CPU is used in conjunction with a host OS (Operating system) and a basic FSD (File System Driver) interacting with file system logic, comprising: under control of the host CPU, using the basic FSD after initialization, as a pass-through to data-requests and send the data-requests for FSO (File System Offload); and, selectively executing the file system logic on a dedicated processor. Expediently, the FSO works in conjunction with a HBA (Host Bus Adaptor) making a functional unit FSO HBA.
In a second form, the invention resides in a system for handling data by file system offloading, by selective separation of data-accessing function and data-processing function, wherein a host CPU is used in conjunction with a host OS (Operating system) and a basic FSD (File System Driver), comprising: circuitry for using the basic FSD after initialization, under control of the host CPU, as a pass-through to data-requests and to send the data-requests for FSO (File System Offload); and, a dedicated processor for selectively executing file system logic.
Also taught herein is an article comprising a storage medium having instructions thereon which when executed by a computing platform will result in execution of a method for handling data by file system offloading, by selective separation of data-accessing function and data-processing function, wherein a host CPU is used in conjunction with a host OS (Operating system) and a basic FSD (File System Driver) as recited by the method steps supra.
A more detailed understanding of the invention may be had from the following description of embodiments, given by way of example and to be understood in conjunction with the accompanying drawing wherein:
A detailed description of one or more embodiments of the invention is provided below to be understood along with accompanying figures that illustrate by way of example the principles of the invention. While the invention is described in connection with such embodiments, it should be understood that the invention is not limited to any embodiment. On the contrary, the scope of the invention is limited only by the appended claims and the invention encompasses numerous alternatives, modifications and equivalents. As examples, numerous specific details are set forth in the following description in order to provide a thorough understanding of the present invention.
It is noted that the present invention may be practiced according to the claims without some or all of the specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the present invention is not unnecessarily obscured.
With specific reference to the example illustrated in
An FSO implementation (as discussed later) is easy because it can easily fit into the current Storage architectures of Windows® and Linux®.
As shown,
With reference to
With reference to
An FSO HBA can expediently be an adapter with a PCI interface. The main modules that can be part of an FSO HBA, for example, include:
The controllers are required to interface with the actual storage disks on the system. It does not matter what types of disks are present i.e., SATA/SCSI/SAS or ATA disks
An on board processor or microcontroller is required for the execution of the File System logic and the logic to access the storage (local or remote)
The Ethernet controllers will play a part only if the FSO HBA needs to access remote disks. In this scenario there would need to be an iSCSI initiator (or something similar) on board the FSO HBA to connect to the remote targets.
As described in the architecture above, the interface with the PC host would be via shared memory. The data that needs to be written to a disk or read from a disk would be placed in the shared memory area and the appropriate recipient would read the data based on a signaling mechanism. The FSO HBA would need to have memory that can be accessed by the PC host.
The other components that have also been illustrated in the
An exemplary Sequence of Operation of one embodiment would be as follows:
It is noted that Intel® has released a development board (Development Kit) that meets the requirements for incorporating an FSO HBA. The components that are part of the Intel development board include:
As additional implementations of the invention, FSO could play a major role is in Cluster File Systems. The presence of all the file system logic in the FSO HBA would mean that two or more FSOs could form a network of their own and expose a Clustered File System to the hosts that the HBAs reside on.
It is noted that file system reorganization is currently one of the hottest topics in the information storage industry. With the increase in the amount of data that needs to be managed and processed, it has become desirable, as taught herein, to consider actively the task of separating the functionality of accessing the data, from the functionality of processing the data. It is conceivable that FSO can be implemented also on available platforms such as the Intel board referenced above. File system libraries can be developed independently and plugged into the solution taught herein.
In the foregoing detailed description of embodiments of the invention, various features are grouped together in one or more embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the invention require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter resides in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the detailed description of embodiments of the invention, with each claim standing on its own as a separate embodiment. It is understood that the above description is intended to be illustrative, and not restrictive. It is intended to cover all alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined in the appended claims. The scope of the invention should therefore be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively.