US20080235328A1 - Network System, Server, Data Processing Method and Program - Google Patents

Network System, Server, Data Processing Method and Program Download PDF

Info

Publication number
US20080235328A1
US20080235328A1 US11/969,701 US96970108A US2008235328A1 US 20080235328 A1 US20080235328 A1 US 20080235328A1 US 96970108 A US96970108 A US 96970108A US 2008235328 A1 US2008235328 A1 US 2008235328A1
Authority
US
United States
Prior art keywords
server
client
data
processing unit
nas server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/969,701
Inventor
Yashushi Negishi
Hiroki Murata
Kenichi Okuyama
Kazuya Tago
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US11/969,701 priority Critical patent/US20080235328A1/en
Publication of US20080235328A1 publication Critical patent/US20080235328A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Definitions

  • the present invention relates to memory management of a computer system, and particularly, to memory management realizing efficient memory allocation suitable for a NAS (Network Attached Storage) system.
  • NAS Network Attached Storage
  • NAS Network Attached Storage
  • the NAS is made to function as an independent file server capable of allowing a data file (hereinafter, simply referred to as a file) to be shared among clients and the like through the network, and is adapted to be accessible from and usable by the clients on the network.
  • FIG. 7 is a diagram schematically showing a general configuration of a NAS server.
  • the NAS sever 700 includes the hard disk device (HDD) 701 as storing means, the file system 702 as managing means for the file, which is realized as a function such as a CPU controlled by a program, and the network interface 703 for realizing a network communication function.
  • An exemplary file system 702 may be the JFS (Journal File System) from International Business Machines Corporation.
  • the NAS server 700 Having received a read request from a client through the network interface 703 , the NAS server 700 reads data from the hard disk device 701 under the management of the file system 702 . Then, the NAS server 700 returns the read data as a response to the client through the network interface 703 . Moreover, the NAS server 700 , having received a write request from a client, writes data into the hard disk device 701 under the management of the file system 702 , and notifies a completion of the write as a response to the client after the write is finished.
  • a write cache has been provided in the NAS server 700 .
  • data write operations it takes an extended amount of time to write the data into the hard disk device 701 due to the mechanical nature of the hard disk device 701 .
  • a high-speed semiconductor memory hereinafter, referred to as a cache memory
  • the NAS server 700 temporarily stores the write data sent from the client in the cache memory, and at this point, notifies the client of the write completion. In such a way, the client recognizes the write completion, thus making it possible for the client to move to another process without waiting for an actual completion of the write processing into the hard disk device 701 .
  • the NAS server 700 writes the data accumulated in the cache memory in a way as described above into the hard disk in accordance with a load status of the hard disk device 701 .
  • processing efficiency of the NAS server 700 itself can be enhanced, and the performance thereof can be improved.
  • a non-volatile memory such as a flash memory has been used as this cache memory.
  • the non-volatile memory will be necessarily used for the cache memory because rules on protocol determine that a response to a client for a write request shall be returned after recording data in a non-volatile recording medium (Stable Storage).
  • NAS server 700 is a RAID (Redundant Array of Independent (Inexpensive) Disks) system, which disperses accesses by use of a plurality of hard disk devices in combination to achieve improvements of a processing speed and reliability. Also in this RAID system, the improvement of the performance has been achieved by providing the cache memory as non-volatile memory.
  • RAID Redundant Array of Independent (Inexpensive) Disks
  • the cache memory using the non-volatile memory has been generally provided in the NAS server, and as introduction methods thereof, there have been heretofore adopted a method for introducing the cache memory as a write cache of a file system, and a method for introducing the cache memory as a cache of the RAID system.
  • this cache memory also becomes unusable simultaneously. Therefore, it is difficult for another device to access this cache and acquire the accumulated data for the purpose of maintenance and the like.
  • the write request from the client affects a wider range of the file as processes are increased.
  • a required memory capacity for one write processing is increased, and thus utilization efficiency of the cache memory is reduced.
  • the present invention achieving the foregoing objects is realized as a network system including a NAS server, and a front-end server and for temporarily holding at least one operation request for the NAS server, the operation request being sent from a client (computer or other terminal device) via the network.
  • this front-end server is characterized to hold information concerning a correlation among data files stored in the NAS server, convert the operation request based on this information, and transmit the converted request to the NAS server.
  • This front-end server functions as a cache system for the NAS server, which is interposed between the NAS server and the client, holds data read from the NAS server based on the operation request, and responds to the operation request received from the client by use of the holding data.
  • this front-end server includes a cache memory for holding at least one operation request for the NAS server provided on the network and the data read from the NAS server based on the operation request, a client operation processing unit for receiving the operation request from a client on the network to perform an operation based on the operation request for cache data stored in the cache memory, and a data change reflection processing unit for creating at least one operation sequence to reflect the operation performed for the cache data by the client operation processing unit on the data file stored in the NAS server, and for transmitting the operation sequence to the NAS server.
  • this client operation processing unit synthesizes a plurality of operation requests received from the client into one operation request, and performs an operation for the cache data. Moreover, the data change reflection processing unit merges a plurality of operations performed for the cache data by the client operation processing unit into one operation to create the operation sequence. Furthermore, when a first operation for the cache data affects other operations held in the cache memory, the data change reflection processing unit examines a dependency between the first operation and the other operations, and creates an operation sequence for each operation based on information concerning this dependency between the operations. In this case, the data change reflection processing unit determines the dependency between the first operation and the other operations based on the structure of the data files in the file system of the NAS server.
  • NFS Network File Systems
  • RFC 3010 Network Working Group
  • a function to send a call back to an NFS client corresponding to the front-end server in the configuration of the present invention
  • management of the cache data is assigned when an access is made thereto from another NFS client.
  • This function enables a plurality of the front-end servers to be set for the NAS server.
  • the communication protocol in this case is not limited to the NFSv4, and any communication protocol having a function to notify the operation by the predetermined front-end server to the other front-end servers can be used.
  • the present invention achieving the foregoing objects is also realized as a data processing method as below, which uses a computer connected to a network.
  • This data processing method is characterized by including a step of storing, in a memory, an operation request for a NAS server received from a terminal device on a network, a step of converting this operation request stored in the memory based on an operation in the NAS server, and a step of transferring the converted operation request to the NAS server in accordance with a load status of the NAS server.
  • a plurality of the operation requests are synthesized into one operation request based on a correlation among data files in the NAS server.
  • the present invention can also be realized as a program for controlling a computer to function as the foregoing front-end server, or a program for allowing the computer to execute processing corresponding to each of the steps in the foregoing data processing method.
  • This program can be provided by being stored in a magnetic disk, an optical disc, a semiconductor memory or other recording medium and distributed, or by being distributed through a network.
  • FIG. 1 is a diagram showing an entire configuration of a network system into which a cache system of this embodiment is introduced.
  • FIG. 2 is a diagram schematically showing an example of a hardware configuration of a computer device capable of realizing a front-end server of this embodiment.
  • FIG. 3 is a diagram showing a functional configuration of the front-end server according to this embodiment.
  • FIG. 4 is a view showing a configuration example of a cache management table according to this embodiment.
  • FIG. 5 is a flowchart explaining operations by a client operation processing unit in this embodiment.
  • FIG. 6 is a flowchart explaining operations by a data change reflection processing unit in this embodiment.
  • FIG. 7 is a diagram schematically showing a general configuration of a NAS server.
  • FIG. 1 is a diagram showing an entire configuration of a network system into which a cache system of this embodiment is introduced.
  • the front-end server 10 , the NAS server 20 and the clients 30 are connected to one another through a network.
  • the clients 30 access the NAS server 20 through the front-end server 10 .
  • the front-end server 10 can be a personal computer, a workstation, or other computer devices.
  • the NAS server 20 is preferably an NAS server, such as shown and described in FIG. 7 , but can alternatively be a general computer device such as a personal computer or a workstation.
  • the clients 30 may be any information terminal such as a computer device, including the personal computer or the workstation, or a PDA (Personal Digital Assistant) provided with a network function, or a cellular phone.
  • PDA Personal Digital Assistant
  • FIG. 2 is a diagram schematically showing an example of a hardware configuration of a computer device capable of realizing the front-end server 10 .
  • the computer device shown in FIG. 2 includes the CPU (Central Processing Unit) 101 as computing means, the main memory 103 and the non-volatile memory 110 to be used as a cache memory, both of which are connected to the CPU 101 through the M/B (motherboard) chipset 102 and the CPU bus, the video card 104 connected likewise to the CPU 101 through the M/B chipset 102 and the AGP (Accelerated Graphics Port), the hard disk 105 and the network interface 106 , both of which are connected to the M/B chipset 102 through the PCI (Peripheral Component Interconnect) bus, and the floppy disk drive 108 and the keyboard/mouse 109 , both of which are connected to the M/B chipset 102 through the PCI bus, the bridge circuit 107 and a low-speed bus such as the ISA (Industry Standard Architecture) bus.
  • ISA Industry Standard Architecture
  • FIG. 2 shows only one example of the hardware configuration for front-end server 10 , and that other various configurations can be adopted if this embodiment is applicable thereto.
  • a configuration may be adopted, in which only a video memory is mounted instead of providing the video card 104 , and image data is processed by the CPU 101 .
  • a drive for a CD-R (Compact Disc Recordable) or a DVD-RAM ((Digital Versatile Disc Random Access Memory) may be provided through an interface such as ATA (AT Attachment) and SCSI (Small Computer System Interface).
  • ATA AT Attachment
  • SCSI Small Computer System Interface
  • FIG. 3 is a diagram showing a functional configuration of the front-end server 10 according to this embodiment.
  • the front-end server 10 of this embodiment includes the client operation processing unit 11 for receiving an operation request from a client 30 , the data change reflection processing unit 12 for performing an operation for the NAS server 20 , and the cache memory 13 realized by the non-volatile memory 110 shown in FIG. 2 .
  • Client 30 is preferably coupled to front-end server 10 via a network (not shown).
  • the client operation processing unit 11 and the data change reflection processing unit 12 are, for example, virtual software blocks realized by the CPU 101 controlled by a program in FIG. 2 .
  • the program controlling the CPU 101 can be provided by being stored in a magnetic disk, an optical disc, a semiconductor memory or other recording medium and distributed, or by being distributed through the network.
  • Processings (processes) by the client operation processing unit and processings (processes) by the data change reflection processing unit 12 are independent of each other and executable in parallel.
  • the client operation processing unit 11 receives an operation request from the client 30 through the network interface 106 shown in FIG. 2 , and processes the operation request by accessing the cache memory 13 . Specifically, when the operation request is a read request, if data to be read in accordance with the read request is cached in the cache memory 13 , the client operation processing unit 11 returns the data as a result of the read to the client 30 . If the data to be read is not cached in the cache memory 13 , the client operation processing unit 11 accesses the NAS server 20 and transmits the read request thereto, and then acquires read data and returns the read data to the client 30 . The data read from the NAS server 20 in accordance with this read request is cached in the cache memory 13 as appropriate.
  • the client operation processing unit 11 When the operation request from the client 30 is a write request, if data to be written in accordance with the write request is cached in the cache memory 13 , the client operation processing unit 11 reflects a data change in accordance with the write request on the cached data, and performs a write completion notice to the client 30 . If the data to be written is not cached in the cache memory 13 , and if the data change cannot be performed due to an exclusive control and the like even though the data is cached, the client operation processing unit 11 stores the write request in the cache memory 13 , and performs the write completion notice to the client 30 .
  • the plurality of operation requests when it is possible to merge (synthesize) a plurality of the operation requests received from the client 30 , the plurality of operation requests, if determined by client operation processing unit 11 to be compatible, can be merged into one operation request, and the merged request can be stored in the cache memory 13 .
  • a plurality of write requests for a continuous area in one file, a plurality of change requests for access rights to the same file (on condition that other operations are not affected) or the like can be merged into one operation request.
  • the requested operations affect the other requested operations, such merging is not performed.
  • the data change reflection processing unit 12 accesses the NAS server 20 through the network interface 106 shown in FIG. 2 , and reflects, on a file stored in the NAS server 20 , the data change made for the data on the cache memory 13 in accordance with the write request from the client 30 and the write request stored in the cache memory 13 .
  • Such reflection of the data change on the NAS server 20 is performed in such a manner that a data change operation sequence for the NAS server 20 is created based on the data change made for the data on the cache memory 13 or based on the write request stored in the cache memory 13 and is transmitted to the NAS server 20 , and that this data change operation sequence is executed in the NAS server 20 .
  • the data change reflection processing unit 12 is capable of pipelining merged plural processes and sending the pipelined merged processes to the NAS server 20 , where they are executed on data stored in the NAS server 20 using parallel processing techniques known to those skilled in the art of parallel data processing.
  • the data change reflection processing unit 12 examines the dependency between operations affecting other operations and operations affected by the other operations, and creates data change operation sequences such that the operations having such a dependency are executed under an orderly relation in accordance with the dependency. For example, a change of a directory name and a setting change of an access right to the directory affect accesses to all of the directories and files below the concerned directory. Hence, a setting change of the access right to the higher directory cannot be performed until change operations for the lower directories and files are performed.
  • a specific processing method in accordance with this dependency conforms to a specification of communication protocol for use between the front-end server 10 and the NAS server 20 .
  • this creation processing of the data change operation sequences involves optimization processings such as conversion from a synchronous operation to an asynchronous operation and improvement of locality by a transposition of the operations, thus making it possible to contribute to the improvement of the performance as a whole of the system.
  • the conversion from a synchronous operation to an asynchronous operation means that the processing for creating the data change operation sequences and transmitting the data change operation sequences to the NAS server 20 is executed in accordance with the load status of the NAS server 20 (that is, asynchronously for the operation requests from the client 30 ).
  • the improvement of locality by a transposition of the operations means that a seek time of the hard disk in the NAS server 20 is reduced by transposing the operation when operations for different files do not affect other files even if a transposition of an operation thereof.
  • each of the units can also execute a plurality of processings in parallel.
  • the number of processings executable in parallel by the client operation processing unit 11 means the number of operation requests for the data read, which can be sent simultaneously to the NAS server 20 .
  • the number of processings executable in parallel by the data change reflection processing unit 12 means the maximum number of operation requests for the data write, which can be sent simultaneously to the NAS server 20 .
  • These numbers of processings executable in parallel are set in accordance with the performance (processing speed) of the CPU 101 realizing the front-end server 10 and the storage capacity of the non-volatile memory 110 .
  • the numbers can also be dynamically adjusted in accordance with an arrival frequency of the operation requests sent from the client 30 , the performance of the NAS server 20 and the like.
  • a cache management table is used in order to manage a cache content of the cache memory 13 in the processings of the client operation processing unit 11 and data change reflection processing unit 12 .
  • the foregoing parallel operations (at least the processings of the client operation processing unit 11 and data change reflection processing unit 12 ) enables simultaneous accesses made by two or more processings as accesses to the cache management table 131 . Therefore, in accessing the cache management table 131 , suitable exclusive control is necessary.
  • FIG. 4 is a view showing a configuration example of cache management table 131 .
  • This cache management table 131 indicates a state of an attribute of the directory or the file and a cached state of the data.
  • This cache management table 131 is basically held, for example, in the non-volatile memory 110 shown in FIG. 2 . However, an entry that has already been reflected on the NAS server 20 and an entry to data read as processing for a read request may be managed by providing the cache management table 131 on a volatile memory such as the main memory 103 .
  • the cache management table 131 there are prepared fields such as a handle, a receiving time, a reflected state, a path name, an attribute, an offset, a length, a file content, reference order management information and dependency information.
  • the handle is information for identifying the file or the directory, and depends on the communication protocol to be used by the system. In a reference operation as an operation based on the read request, this information is included in the operation request from the client 30 . Meanwhile, in an operation based on the write request and a change operation as an operation reflecting the cache content on the NAS server 20 , this information is included in the operation request from the client 30 and the response from the NAS server 20 .
  • the receiving time indicates a receiving time of the write request from the client 30 .
  • the reflected state indicates a reflected state of the data change based on the write request on the NAS server 20 .
  • four values of “dependency resolution pending,” “unprocessed,” “under processing” and “end of processing” can be set therefore.
  • the path name is information (character string) indicating a location of the directory or the file in a tree structure of the file system of the NAS server 20 .
  • the tree structure here means a structure based on parentage in the directories and the files.
  • the attribute is information indicating an attribute of the file or the directory, and is defined by the communication protocol to be used by the system.
  • the offset is information indicating a location of data to be accessed in accordance with an operation request from a head of a file stored in the NAS server 20
  • the length is information indicating a length of the data in the file.
  • the file content is a content of data managed by the concerned entry of the cache management table 131 .
  • the reference order management information indicates a relative order of reference in entries. Although a management method for this information is arbitrary, for example, a method in which the reference order is shown by a bi-directional link is conceivable.
  • the dependency information indicates a dependency between the respective processings based on the operation requests.
  • a management method for this information is arbitrary, for example, a method in which a link to a depending entry is placed in a dependency information field of an entry on which the depending entry depends is conceivable.
  • the configuration of the cache management table 131 shown in FIG. 4 is shown only as an example, and that, besides the above, it is possible to register a variety of information usable for managing the cache as appropriate. For example, links for the parentage in the files and the directories and a hash table of file names may be registered in order to enhance a retrieval speed. Moreover, also conceivable is a method, in which information for estimating a future access possibility is registered in place of the reference order management information, and this information is used in the case of selecting an object to be deleted from the cache memory 13 and an object to be reflected on the NAS server 20 .
  • FIG. 5 is a flowchart explaining the operations by the client operation processing unit 11 .
  • the client operation processing unit 11 upon receiving an operation request from the client 30 (Step 501 ), the client operation processing unit 11 examines whether the operation request is a read request or a write request.
  • the client operation processing unit 11 executes a reference operation. Specifically, the client operation processing unit 11 retrieves the respective entries registered in the cache management table 131 , and determines whether or not cache data corresponding to a handle included in the read request is present and it is possible to create a response to the client 30 by use of the cache data (Steps 502 and 503 ). If it is possible to create the response to the client 30 , the client operation processing unit 11 creates the response, updates the reference order management information of the entry, and returns the created response to the client 30 (Step 504 ).
  • the client operation processing unit 11 transmits an information acquisition request (read request of data and the like) to the NAS server 20 in order to acquire information required for creating the response (Step 505 ). Thereafter, after acquiring a response from the NAS server 20 , the client operation processing unit 11 creates a response to the client 30 and returns the response thereto (Step 506 ). Accompanied with this operation, a field for a reflected state of the entry to be registered is set at the “end of processing.” Information acquired at this time is cached, an entry of the cache data is registered in the cache management table 131 , and thus the entry is made usable for processing for operation requests to the same information thereafter (Step 507 ).
  • the client operation processing unit 11 executes change processing. Specifically, the client operation processing unit 11 retrieves the respective entries registered in the cache management table 131 , and determines whether or not cache data corresponding to a handle included in the write request from the client 30 is present and it is possible to apply a change of data based on the received write request to the cache data (Steps 502 and 508 ). If it is possible to apply the change of data to the cache data, the client operation processing unit 11 changes the data, updates the reference order management information of the entry, and transmits a completion notice to the client 30 (Step 509 ).
  • the client operation processing unit 11 registers an entry corresponding to the write request in the cache management table 131 , and transmits a completion notice to the client 30 (Step 510 ).
  • a field for a reflected state of the entry is set at the “unprocessed.”
  • the client operation processing unit 11 can search a plurality of mergeable operation requests to merge the operation requests in one operation request in the case of applying the change of data to the cache data in Step 509 , in the case of registering the entry corresponding to the write request in the cache management table 131 in Step 510 , or asynchronously with a series of the operations shown in FIG. 5 .
  • FIG. 6 is a flowchart explaining the operations by the data change reflection processing unit 12 .
  • the data change reflection processing unit 12 executes the processings shown in FIG. 6 such that the number of processings executed simultaneously can be a value in which the NAS server 20 can be operated most efficiently in accordance with the state of the operation load of the NAS server 20 .
  • the execution efficiency is reduced conversely due to an overhead managing the parallel processings.
  • the suitable number of processings executed simultaneously may be obtained by measurement in advance, or may be dynamically adjusted while measuring the performance of the NAS server 20 during the execution.
  • the data change reflection processing unit 12 first refers to the reference order management information and the reflected states in the respective entries of the cache management table 131 , and selects one entry of which reflected state is unreflected in LRU order (Step 601 ).
  • the data change reflection processing unit 12 verifies whether other entry affected by a change operation for the concerned entry is present (Step 602 ). Specifically, the data change reflection processing unit 12 refers to the cache management table 131 , and retrieves such an entry regarding a directory or a file of which path name indicates that the directory or the file is located immediately under the concerned directory. Then, the data change reflection processing unit 12 examines whether such the entry is affected by the change operation.
  • that the entry is affected by the change operation means that, accompanied with the change operation for the entry selected in Step 601 , it will be necessary to change lower directory and file thereof.
  • the data change reflection processing unit 12 changes the reflected state of the entry selected in Step 601 during the processings. Then, the data change reflection processing unit 12 creates a data change operation sequence corresponding to the change content of the entry, and transmits the data change operation sequence to the NAS server 20 (Step 603 ). Based on the data change operation sequence, the NAS server 20 executes a write operation of the data, and then returns a response notifying a write completion to the front-end server 10 . If the response for the data change operation sequence is returned from the NAS server 20 , the front-end server 10 changes the reflected state of the entry to the end of processing (Step 604 ).
  • the data change reflection processing unit 12 examines whether or not it is necessary to reflect the change content of the dependent entry on the corresponding file of the NAS server 20 (Step 605 ).
  • the case where it is not necessary to reflect the change content of the dependent entry on the corresponding file of the NAS server 20 is a case where the change to the dependent entry becomes nullified by other subsequent operations.
  • the data change reflection processing unit 12 registers the entry selected in Step 601 in the dependency information field of the dependent entry (Step 606 ).
  • the data change reflection processing unit 12 sequentially traces the entries registered in the dependency information field, and registers the entry selected in Step 601 in the dependency information field if the data change reflection processing unit 12 reaches an entry which is not registered in the dependency information field. Then, with regard to the entry selected in Step 601 , the status of the reflected state is set at the “dependency resolution pending.”
  • the data change reflection processing unit 12 deletes the dependent entry from the cache management table 131 (Step 607 ).
  • the data change reflection processing unit 12 changes the status of the reflected state of the other entry from the “dependency resolution pending” to “unreflected.”
  • This analysis of the dependency is executed in accordance with the specification of the communication protocol between the front-end server 10 and the NAS server 20 .
  • NFSv2 NFS version 2
  • NFSv3 NFS version 3
  • the tree structure of the file system of the NAS server 20 is constructed and managed in the front-end server 10 , and the dependency is analyzed based on a positional relationship of the directories and the files in the tree structure.
  • Information required for constructing the tree structure is acquired by which the front end accesses the NAS server according to needs.
  • the constructed tree structure is held in the main memory 103 in FIG. 2 , the non-volatile memory 110 in FIG. 2 , which constitutes the cache memory 13 , and the like.
  • NFSv4 NFS version 4
  • the processing for reflecting the change of data on the NAS server 20 in the processing for reflecting the change of data on the NAS server 20 , the status of the data in the NAS server 20 and the status of the data on the cache of the front-end server 10 are managed independently of each other. Specifically, even if the change of the status of the data is unreflected on the NAS server 20 , the processing is executed in consideration of the effect of the status change in the operation to the cache on the front end.
  • the optimization can be performed based on the dependency between the operations in the case of creating the operation request for the NAS server 20 by the data change reflection processing unit 12 .
  • the optimization will be described by giving specific examples.
  • the NAS server 20 can be allowed to execute the created data change operation sequence.
  • a seek in the hard disk device of the NAS server 20 is reduced, and the number of change operations to be processed by the processor of the NAS server 20 is reduced. Therefore, the period of time required for the processings can be shortened.
  • the operation of the data write and the inhibiting operation of the data write are operation for the same handle.
  • the communication protocol between the servers is the NFS protocol
  • the execution of the cache management per handle will tell that the operations are performed for the same handle.
  • the control described here is enabled.
  • Predetermined data is created, an interim result thereof is temporarily written as a file into the storage device (NAS server 20 ), and the content of the file is read in subsequent processing, followed by the deletion of the file.
  • the deletion operation of the file is defined as an operation of the concerned file to the higher directory in the tree structure of the file system.
  • the parentage (path names) on the tree structure is managed in the cache management table 131 . Therefore, a dependency between the operation of the data write and the deletion operation of the file can be determined. As a result, it is made possible to omit a reflection of such an operation of data write of which effect is cancelled by the deletion operation of the file on the NAS server 20 . In such a way, the processing time required for completing the deletion of the file is shortened.
  • the communication protocol between the front-end server 10 and the NAS server 20 is set as protocol provided with a cache management assigning mechanism for the client 30 , such as NFSv4, thus making it possible to assign a part of the cache management function to the front-end server 10 without changing the functional configuration of the NAS server 20 .
  • a cache management assigning mechanism for the client 30 such as NFSv4
  • NFSv4 In the cache management assigning mechanism of NFSv4, it is possible to assign, to the NFS client side, a right of accessing data of a file when the file is opened and a right of locking a specific area on the file. If the front-end server 10 acquires the right of accessing a predetermined file by such a function, it is made possible for the front-end server 10 replacing the NAS server 20 to execute operation for the file, and specifically, the reference operation, the change operation and the locking operation.
  • the processing requests from the plurality of clients 30 are collected and sent to the NAS server 20 by the function of the client cache in the front-end server 10 .
  • the operation requests received from the clients 30 are merged, the change operations executable in a lump in the case of reflecting the change of the data on the NAS server 20 are merged into one operation to be reflected on the NAS server 20 , and so on.
  • the reference operation, the change operation and the locking operation which are executable by the front-end server 10 , can be processed by the front-end server 10 replacing the NAS server 20 . Therefore, the operation efficiency of the NAS server 20 can be improved.
  • NFSv4 has a function to call back to the NFS client to which the management of the cache data is assigned. Therefore, even in the case of setting the plurality of front-end servers 10 for the NAS server 20 on the network, the information concerning the operations is shared among the respective front-end servers 10 by the callback from the NAS server 20 to the front-end server 10 . Specifically, because the operation by the predetermined front-end server 10 is notified to the other front-end servers 10 , the consistency of the operations in the respective front-end servers 10 can be maintained.
  • the front-end server is interposed between the NAS server and the clients on the network, thus making it possible to provide the effective cache system in the computer system utilized on the network.
  • the present invention thus describes a network system, front-end server and method that improves operations in a NAS server.
  • the front-end server which couples a client and the NAS server, includes a cache memory for holding at least one operation request directed from a client device to the NAS.
  • the front-end server also has a client operation processing unit for receiving one or more operation requests from the client.
  • the client operation processing unit is also capable of performing operations, based on the operation requests, using data in the cache memory in the front-end server.
  • the front-end server also has a data change reflection processing unit that can create an operation sequence, which may be either a directive to change data in the NAS or a series of execution code, which is sent to the NAS.
  • the client operation processing unit can also merge compatible instructions, received from the client, to create a combined operation request.
  • the combined operation request can be executed either in the front-end server using data in the cache in the front end-server, or can be executed in the NAS using data stored in the NAS. Either way, the results of the operation of the client operation processing unit, known as operation sequences, are sent to the NAS. If the operation sequence is a series of code to be executed in the NAS, the client operation processing unit can restructure the code to a pipelined form, such that the NAS can execute the operation sequence in parallel.
  • the present invention may alternatively be implemented in a program product.
  • Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., a floppy diskette, hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet.
  • signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention.
  • the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.

Abstract

A front-end server for temporarily holding an operation request for a NAS server, which is sent from a predetermined client, is interposed between the NAS server and clients on a network. This front-end server holds information concerning a correlation among data files stored in the NAS server, optimizes the operation request received from the client based on the information, and transmits the operation request to the NAS server.

Description

    PRIORITY CLAIM
  • The present application is a continuation of U.S. patent application Ser. No. 10/828,692 (Atty. Docket No. JP920020178US1), filed on Apr. 21, 2004, and entitled, “Network System, Server, Data Processing Method and Program,” which is incorporated herein by reference.
  • This application claims priority of Japanese Patent Application No. 2003-115756, filed on Apr. 21, 2003, and entitled, “Network System, Server, Data Processing Method and Program.”
  • BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • The present invention relates to memory management of a computer system, and particularly, to memory management realizing efficient memory allocation suitable for a NAS (Network Attached Storage) system.
  • 2. Description of Related Art
  • Heretofore, a variety of computer systems including various types of hardware (terminals) interconnected through a network have been utilized. Among such computer systems, there is a system using a storage device (NAS: Network Attached Storage) to be used by being directly connected to the network. In this system, the NAS is made to function as an independent file server capable of allowing a data file (hereinafter, simply referred to as a file) to be shared among clients and the like through the network, and is adapted to be accessible from and usable by the clients on the network.
  • FIG. 7 is a diagram schematically showing a general configuration of a NAS server. As shown in FIG. 7, the NAS sever 700 includes the hard disk device (HDD) 701 as storing means, the file system 702 as managing means for the file, which is realized as a function such as a CPU controlled by a program, and the network interface 703 for realizing a network communication function. An exemplary file system 702 may be the JFS (Journal File System) from International Business Machines Corporation.
  • Having received a read request from a client through the network interface 703, the NAS server 700 reads data from the hard disk device 701 under the management of the file system 702. Then, the NAS server 700 returns the read data as a response to the client through the network interface 703. Moreover, the NAS server 700, having received a write request from a client, writes data into the hard disk device 701 under the management of the file system 702, and notifies a completion of the write as a response to the client after the write is finished.
  • To improve the performance of NAS server 700, heretofore a write cache has been provided in the NAS server 700. In data write operations, it takes an extended amount of time to write the data into the hard disk device 701 due to the mechanical nature of the hard disk device 701. Accordingly, a high-speed semiconductor memory (hereinafter, referred to as a cache memory) is often used as a write cache of the file system 702. The NAS server 700 temporarily stores the write data sent from the client in the cache memory, and at this point, notifies the client of the write completion. In such a way, the client recognizes the write completion, thus making it possible for the client to move to another process without waiting for an actual completion of the write processing into the hard disk device 701.
  • Moreover, the NAS server 700 writes the data accumulated in the cache memory in a way as described above into the hard disk in accordance with a load status of the hard disk device 701. By performing such control, processing efficiency of the NAS server 700 itself can be enhanced, and the performance thereof can be improved.
  • Furthermore, in order to avoid losing the data accumulated in the cache memory when the NAS server 700 is down due to a cause such as an unexpected accident, a non-volatile memory such as a flash memory has been used as this cache memory. In the case of using NFS as the file system 702, the non-volatile memory will be necessarily used for the cache memory because rules on protocol determine that a response to a client for a write request shall be returned after recording data in a non-volatile recording medium (Stable Storage).
  • One example of the NAS server 700 as described above is a RAID (Redundant Array of Independent (Inexpensive) Disks) system, which disperses accesses by use of a plurality of hard disk devices in combination to achieve improvements of a processing speed and reliability. Also in this RAID system, the improvement of the performance has been achieved by providing the cache memory as non-volatile memory.
  • As described above, the cache memory using the non-volatile memory has been generally provided in the NAS server, and as introduction methods thereof, there have been heretofore adopted a method for introducing the cache memory as a write cache of a file system, and a method for introducing the cache memory as a cache of the RAID system.
  • However, there has been a problem as below in the case of introducing the cache memory as the write cache of the file system. Specifically, in order that the file system utilizes the non-volatile memory as the write cache, it is necessary that the file system itself be designed to be capable of using the write cache. However, the file system for which various functions such as clustering, failover and snapshot are required already has a very complicated structure today. Therefore, it costs an enormous amount to change the existing file system and introduce the write cache. In the case of a software product realizing the NAS server, it is not preferable that the file system be changed to a great extent in order to introduce the write cache so as to meet specific hardware because a burden in terms of development cost is large. Moreover, for a vendor purchasing such software and selling the software in combination with hardware of his own, it is difficult to change the file system for reasons of technology and contract.
  • Furthermore, when the hardware in which the file system operates fails, this cache memory also becomes unusable simultaneously. Therefore, it is difficult for another device to access this cache and acquire the accumulated data for the purpose of maintenance and the like.
  • Meanwhile, in the case of utilizing the non-volatile memory as a part of a disk system as in the RAID system, it is possible for the file system to utilize the non-volatile memory completely transparently, and therefore, such a problem as inherent in the foregoing case of introducing the non-volatile memory as the write cache of the file system does not occur. However, there has been a problem as below even in this case. Specifically, in the case of introducing the non-volatile memory as the cache memory of the RAID system, operation requests (read and write requests) from the client are recorded in the cache memory on the RAID after processings thereof in the file system, a buffer system and a disk driver are finished. For this reason, great performance improvements in a response time to the client and a throughput of the NAS server itself cannot be expected.
  • In addition, the write request from the client affects a wider range of the file as processes are increased. Hence, when a large number of steps are performed before the write request is recorded in the cache memory, a required memory capacity for one write processing is increased, and thus utilization efficiency of the cache memory is reduced.
  • SUMMARY OF THE INVENTION
  • In this connection, in consideration of the foregoing problems, it is an object of the present invention to provide an effective cache system in a computer system utilized on a network.
  • It is another object of the present invention to realize efficient memory management in a NAS server by use of such a cache system.
  • The present invention achieving the foregoing objects is realized as a network system including a NAS server, and a front-end server and for temporarily holding at least one operation request for the NAS server, the operation request being sent from a client (computer or other terminal device) via the network. Here, this front-end server is characterized to hold information concerning a correlation among data files stored in the NAS server, convert the operation request based on this information, and transmit the converted request to the NAS server.
  • This front-end server functions as a cache system for the NAS server, which is interposed between the NAS server and the client, holds data read from the NAS server based on the operation request, and responds to the operation request received from the client by use of the holding data.
  • More specifically, this front-end server includes a cache memory for holding at least one operation request for the NAS server provided on the network and the data read from the NAS server based on the operation request, a client operation processing unit for receiving the operation request from a client on the network to perform an operation based on the operation request for cache data stored in the cache memory, and a data change reflection processing unit for creating at least one operation sequence to reflect the operation performed for the cache data by the client operation processing unit on the data file stored in the NAS server, and for transmitting the operation sequence to the NAS server.
  • More specifically, this client operation processing unit synthesizes a plurality of operation requests received from the client into one operation request, and performs an operation for the cache data. Moreover, the data change reflection processing unit merges a plurality of operations performed for the cache data by the client operation processing unit into one operation to create the operation sequence. Furthermore, when a first operation for the cache data affects other operations held in the cache memory, the data change reflection processing unit examines a dependency between the first operation and the other operations, and creates an operation sequence for each operation based on information concerning this dependency between the operations. In this case, the data change reflection processing unit determines the dependency between the first operation and the other operations based on the structure of the data files in the file system of the NAS server.
  • In the present invention, Network File Systems (NFS), as described by the Network Working Group, RFC 3010 and incorporated by reference in its entirety herein, can be used as the communication protocol between the NAS server and the front-end server. Of the different versions of NFS, NFSv4 (NFS version 4) has a function to send a call back to an NFS client (corresponding to the front-end server in the configuration of the present invention) to which management of the cache data is assigned when an access is made thereto from another NFS client. The use of this function enables a plurality of the front-end servers to be set for the NAS server. This is because an operation by a predetermined front-end server is notified to the other front-end servers by use of the callback function of the NFSv4, thus making it possible to maintain consistency of the operations of the front-end servers. Note that the communication protocol in this case is not limited to the NFSv4, and any communication protocol having a function to notify the operation by the predetermined front-end server to the other front-end servers can be used.
  • Furthermore, the present invention achieving the foregoing objects is also realized as a data processing method as below, which uses a computer connected to a network. This data processing method is characterized by including a step of storing, in a memory, an operation request for a NAS server received from a terminal device on a network, a step of converting this operation request stored in the memory based on an operation in the NAS server, and a step of transferring the converted operation request to the NAS server in accordance with a load status of the NAS server. Here, more specifically, a plurality of the operation requests are synthesized into one operation request based on a correlation among data files in the NAS server.
  • Moreover, the present invention can also be realized as a program for controlling a computer to function as the foregoing front-end server, or a program for allowing the computer to execute processing corresponding to each of the steps in the foregoing data processing method. This program can be provided by being stored in a magnetic disk, an optical disc, a semiconductor memory or other recording medium and distributed, or by being distributed through a network.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the present invention and the advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings.
  • FIG. 1 is a diagram showing an entire configuration of a network system into which a cache system of this embodiment is introduced.
  • FIG. 2 is a diagram schematically showing an example of a hardware configuration of a computer device capable of realizing a front-end server of this embodiment.
  • FIG. 3 is a diagram showing a functional configuration of the front-end server according to this embodiment.
  • FIG. 4 is a view showing a configuration example of a cache management table according to this embodiment.
  • FIG. 5 is a flowchart explaining operations by a client operation processing unit in this embodiment.
  • FIG. 6 is a flowchart explaining operations by a data change reflection processing unit in this embodiment.
  • FIG. 7 is a diagram schematically showing a general configuration of a NAS server.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • The present invention will be described below in detail based on an embodiment shown in the accompanying drawings.
  • FIG. 1 is a diagram showing an entire configuration of a network system into which a cache system of this embodiment is introduced.
  • In the network system shown in FIG. 1, the front-end server 10, the NAS server 20 and the clients 30, all of which are according to the embodiment, are connected to one another through a network. In this network system, the clients 30 access the NAS server 20 through the front-end server 10.
  • The front-end server 10 can be a personal computer, a workstation, or other computer devices. Meanwhile, the NAS server 20 is preferably an NAS server, such as shown and described in FIG. 7, but can alternatively be a general computer device such as a personal computer or a workstation. The clients 30 may be any information terminal such as a computer device, including the personal computer or the workstation, or a PDA (Personal Digital Assistant) provided with a network function, or a cellular phone.
  • FIG. 2 is a diagram schematically showing an example of a hardware configuration of a computer device capable of realizing the front-end server 10.
  • The computer device shown in FIG. 2 includes the CPU (Central Processing Unit) 101 as computing means, the main memory 103 and the non-volatile memory 110 to be used as a cache memory, both of which are connected to the CPU 101 through the M/B (motherboard) chipset 102 and the CPU bus, the video card 104 connected likewise to the CPU 101 through the M/B chipset 102 and the AGP (Accelerated Graphics Port), the hard disk 105 and the network interface 106, both of which are connected to the M/B chipset 102 through the PCI (Peripheral Component Interconnect) bus, and the floppy disk drive 108 and the keyboard/mouse 109, both of which are connected to the M/B chipset 102 through the PCI bus, the bridge circuit 107 and a low-speed bus such as the ISA (Industry Standard Architecture) bus.
  • Note that FIG. 2 shows only one example of the hardware configuration for front-end server 10, and that other various configurations can be adopted if this embodiment is applicable thereto. For example, a configuration may be adopted, in which only a video memory is mounted instead of providing the video card 104, and image data is processed by the CPU 101. Moreover, as an external storage device, a drive for a CD-R (Compact Disc Recordable) or a DVD-RAM ((Digital Versatile Disc Random Access Memory) may be provided through an interface such as ATA (AT Attachment) and SCSI (Small Computer System Interface). Furthermore, a configuration for performing all the control via the network interface without having the user interface is conceivable. In addition, a configuration without the hard disk and the floppy disk is also conceivable.
  • FIG. 3 is a diagram showing a functional configuration of the front-end server 10 according to this embodiment.
  • As shown in FIG. 3, the front-end server 10 of this embodiment includes the client operation processing unit 11 for receiving an operation request from a client 30, the data change reflection processing unit 12 for performing an operation for the NAS server 20, and the cache memory 13 realized by the non-volatile memory 110 shown in FIG. 2. Client 30 is preferably coupled to front-end server 10 via a network (not shown).
  • In the configuration of the front-end server 10 described above, the client operation processing unit 11 and the data change reflection processing unit 12 are, for example, virtual software blocks realized by the CPU 101 controlled by a program in FIG. 2. The program controlling the CPU 101 can be provided by being stored in a magnetic disk, an optical disc, a semiconductor memory or other recording medium and distributed, or by being distributed through the network. Processings (processes) by the client operation processing unit and processings (processes) by the data change reflection processing unit 12 are independent of each other and executable in parallel.
  • The client operation processing unit 11 receives an operation request from the client 30 through the network interface 106 shown in FIG. 2, and processes the operation request by accessing the cache memory 13. Specifically, when the operation request is a read request, if data to be read in accordance with the read request is cached in the cache memory 13, the client operation processing unit 11 returns the data as a result of the read to the client 30. If the data to be read is not cached in the cache memory 13, the client operation processing unit 11 accesses the NAS server 20 and transmits the read request thereto, and then acquires read data and returns the read data to the client 30. The data read from the NAS server 20 in accordance with this read request is cached in the cache memory 13 as appropriate.
  • When the operation request from the client 30 is a write request, if data to be written in accordance with the write request is cached in the cache memory 13, the client operation processing unit 11 reflects a data change in accordance with the write request on the cached data, and performs a write completion notice to the client 30. If the data to be written is not cached in the cache memory 13, and if the data change cannot be performed due to an exclusive control and the like even though the data is cached, the client operation processing unit 11 stores the write request in the cache memory 13, and performs the write completion notice to the client 30.
  • Moreover, when it is possible to merge (synthesize) a plurality of the operation requests received from the client 30, the plurality of operation requests, if determined by client operation processing unit 11 to be compatible, can be merged into one operation request, and the merged request can be stored in the cache memory 13. For example, a plurality of write requests for a continuous area in one file, a plurality of change requests for access rights to the same file (on condition that other operations are not affected) or the like can be merged into one operation request. On the contrary to this, if the requested operations affect the other requested operations, such merging is not performed. For example, when operations of write authorization, write and write inhibition are executed for the same file in this order, the write-authorizing operation and the write-inhibiting operation cannot be merged into one operation because the last write-inhibiting operation makes inexecutable the write operation immediately there before. Hence, the operation requests for such operations are not merged. Meanwhile, when operations of write authorization, write and read authorization are executed in this order, operation requests for these operations can be merged into one operation because the last read-authorizing operation does not affect the write operation immediately there before.
  • Note that these plural processings (processes) by the client operation processing unit 11 can be executed in parallel.
  • The data change reflection processing unit 12 accesses the NAS server 20 through the network interface 106 shown in FIG. 2, and reflects, on a file stored in the NAS server 20, the data change made for the data on the cache memory 13 in accordance with the write request from the client 30 and the write request stored in the cache memory 13. Such reflection of the data change on the NAS server 20 is performed in such a manner that a data change operation sequence for the NAS server 20 is created based on the data change made for the data on the cache memory 13 or based on the write request stored in the cache memory 13 and is transmitted to the NAS server 20, and that this data change operation sequence is executed in the NAS server 20.
  • Note that these plural processings (processes) created by the data change reflection processing unit 12 can be executed in parallel in the NAS server 20. The data change reflection processing unit 12 is capable of pipelining merged plural processes and sending the pipelined merged processes to the NAS server 20, where they are executed on data stored in the NAS server 20 using parallel processing techniques known to those skilled in the art of parallel data processing.
  • Moreover, based on the premise that the operations on the NAS server 20 are executed by a method in which the same result as those of the processings performed on the cache of the front end is obtained, the data change reflection processing unit 12 examines the dependency between operations affecting other operations and operations affected by the other operations, and creates data change operation sequences such that the operations having such a dependency are executed under an orderly relation in accordance with the dependency. For example, a change of a directory name and a setting change of an access right to the directory affect accesses to all of the directories and files below the concerned directory. Hence, a setting change of the access right to the higher directory cannot be performed until change operations for the lower directories and files are performed. A specific processing method in accordance with this dependency conforms to a specification of communication protocol for use between the front-end server 10 and the NAS server 20.
  • Meanwhile, in consideration of the foregoing dependency between the operations, this creation processing of the data change operation sequences involves optimization processings such as conversion from a synchronous operation to an asynchronous operation and improvement of locality by a transposition of the operations, thus making it possible to contribute to the improvement of the performance as a whole of the system.
  • The conversion from a synchronous operation to an asynchronous operation means that the processing for creating the data change operation sequences and transmitting the data change operation sequences to the NAS server 20 is executed in accordance with the load status of the NAS server 20 (that is, asynchronously for the operation requests from the client 30).
  • The improvement of locality by a transposition of the operations means that a seek time of the hard disk in the NAS server 20 is reduced by transposing the operation when operations for different files do not affect other files even if a transposition of an operation thereof.
  • Note that these optimization processings are shown only as examples, and it is needless to say that various optimizations (operation conversions) realizable by interposing the cache memory 13 are executable.
  • It is possible to execute the processings (processes) by the client operation processing unit 11 and the data change reflection processing unit 12 in parallel, preferably by pipelining instructions. Moreover, each of the units can also execute a plurality of processings in parallel. The number of processings executable in parallel by the client operation processing unit 11 means the number of operation requests for the data read, which can be sent simultaneously to the NAS server 20. Meanwhile, the number of processings executable in parallel by the data change reflection processing unit 12 means the maximum number of operation requests for the data write, which can be sent simultaneously to the NAS server 20. These numbers of processings executable in parallel are set in accordance with the performance (processing speed) of the CPU 101 realizing the front-end server 10 and the storage capacity of the non-volatile memory 110. In addition, the numbers can also be dynamically adjusted in accordance with an arrival frequency of the operation requests sent from the client 30, the performance of the NAS server 20 and the like.
  • Moreover, in this embodiment, a cache management table is used in order to manage a cache content of the cache memory 13 in the processings of the client operation processing unit 11 and data change reflection processing unit 12. The foregoing parallel operations (at least the processings of the client operation processing unit 11 and data change reflection processing unit 12) enables simultaneous accesses made by two or more processings as accesses to the cache management table 131. Therefore, in accessing the cache management table 131, suitable exclusive control is necessary.
  • FIG. 4 is a view showing a configuration example of cache management table 131.
  • One entry of this cache management table 131 indicates a state of an attribute of the directory or the file and a cached state of the data. This cache management table 131 is basically held, for example, in the non-volatile memory 110 shown in FIG. 2. However, an entry that has already been reflected on the NAS server 20 and an entry to data read as processing for a read request may be managed by providing the cache management table 131 on a volatile memory such as the main memory 103.
  • In the example shown in FIG. 4, in the cache management table 131, there are prepared fields such as a handle, a receiving time, a reflected state, a path name, an attribute, an offset, a length, a file content, reference order management information and dependency information.
  • The handle is information for identifying the file or the directory, and depends on the communication protocol to be used by the system. In a reference operation as an operation based on the read request, this information is included in the operation request from the client 30. Meanwhile, in an operation based on the write request and a change operation as an operation reflecting the cache content on the NAS server 20, this information is included in the operation request from the client 30 and the response from the NAS server 20.
  • The receiving time indicates a receiving time of the write request from the client 30.
  • The reflected state indicates a reflected state of the data change based on the write request on the NAS server 20. For example, four values of “dependency resolution pending,” “unprocessed,” “under processing” and “end of processing” can be set therefore.
  • The path name is information (character string) indicating a location of the directory or the file in a tree structure of the file system of the NAS server 20. The tree structure here means a structure based on parentage in the directories and the files.
  • The attribute is information indicating an attribute of the file or the directory, and is defined by the communication protocol to be used by the system.
  • The offset is information indicating a location of data to be accessed in accordance with an operation request from a head of a file stored in the NAS server 20, and similarly, the length is information indicating a length of the data in the file.
  • The file content is a content of data managed by the concerned entry of the cache management table 131.
  • The reference order management information indicates a relative order of reference in entries. Although a management method for this information is arbitrary, for example, a method in which the reference order is shown by a bi-directional link is conceivable.
  • The dependency information indicates a dependency between the respective processings based on the operation requests. Although a management method for this information is arbitrary, for example, a method in which a link to a depending entry is placed in a dependency information field of an entry on which the depending entry depends is conceivable.
  • Note that the configuration of the cache management table 131 shown in FIG. 4 is shown only as an example, and that, besides the above, it is possible to register a variety of information usable for managing the cache as appropriate. For example, links for the parentage in the files and the directories and a hash table of file names may be registered in order to enhance a retrieval speed. Moreover, also conceivable is a method, in which information for estimating a future access possibility is registered in place of the reference order management information, and this information is used in the case of selecting an object to be deleted from the cache memory 13 and an object to be reflected on the NAS server 20.
  • Next, the operations of the client operation processing unit 11 and data change reflection processing unit 12, which are executed by use of this cache management table 131, will be described in detail.
  • FIG. 5 is a flowchart explaining the operations by the client operation processing unit 11.
  • As shown in FIG. 5, upon receiving an operation request from the client 30 (Step 501), the client operation processing unit 11 examines whether the operation request is a read request or a write request.
  • When the received operation request is a read request, the client operation processing unit 11 executes a reference operation. Specifically, the client operation processing unit 11 retrieves the respective entries registered in the cache management table 131, and determines whether or not cache data corresponding to a handle included in the read request is present and it is possible to create a response to the client 30 by use of the cache data (Steps 502 and 503). If it is possible to create the response to the client 30, the client operation processing unit 11 creates the response, updates the reference order management information of the entry, and returns the created response to the client 30 (Step 504).
  • On the other hand, if it is impossible to create the response to the client 30, the client operation processing unit 11 transmits an information acquisition request (read request of data and the like) to the NAS server 20 in order to acquire information required for creating the response (Step 505). Thereafter, after acquiring a response from the NAS server 20, the client operation processing unit 11 creates a response to the client 30 and returns the response thereto (Step 506). Accompanied with this operation, a field for a reflected state of the entry to be registered is set at the “end of processing.” Information acquired at this time is cached, an entry of the cache data is registered in the cache management table 131, and thus the entry is made usable for processing for operation requests to the same information thereafter (Step 507). When there is no free storage area in a memory prepared for the cache management table 131, among entries of which reflected states are the “end of processing,” one entry is selected in LRU (Least Recently Used) order by referring to the reference order management information, and namely, one entry to which no access has been made for the longest time is selected. Then, the selected entry is deleted, and thus a free capacity is ensured, into which the entry is then registered. When the free capacity is still short after the deletion, the above-described selection and deletion are repeated until the free capacity can be ensured. Note that, instead of selecting one entry in LRU order, an entry in which the number of accesses made thereto is estimated to be the least in the future may be selected by other technique, for example, based on the latest reference frequency and the like. Similarly, sections regarding the selection of the entry in LRU order in the description below can be rewritten such that the other technique can be alternatively used. Moreover, in the case of the selection and the deletion of the entry for the purpose of ensuring the free capacity, it is also conceivable to select and delete a plurality of the entries in a lump in order to reduce execution overheads thereof. Similarly, in the case of the selection and the deletion of the entry in the description below, the plurality of entries may be selected and deleted in a lump.
  • When the operation request received from the client 30 is a write request, the client operation processing unit 11 executes change processing. Specifically, the client operation processing unit 11 retrieves the respective entries registered in the cache management table 131, and determines whether or not cache data corresponding to a handle included in the write request from the client 30 is present and it is possible to apply a change of data based on the received write request to the cache data (Steps 502 and 508). If it is possible to apply the change of data to the cache data, the client operation processing unit 11 changes the data, updates the reference order management information of the entry, and transmits a completion notice to the client 30 (Step 509).
  • On the other hand, if it is impossible to apply the change of data based on the write request to the cache data, the client operation processing unit 11 registers an entry corresponding to the write request in the cache management table 131, and transmits a completion notice to the client 30 (Step 510). A field for a reflected state of the entry is set at the “unprocessed.” When there is no free storage area in the memory prepared for the cache management table 131, among the entries of which reflected states are the “end of processing,” one entry is selected in LRU (Least Recently Used) order by referring to the reference order management information, deleted, and the entry is registered therein.
  • Note that the client operation processing unit 11 can search a plurality of mergeable operation requests to merge the operation requests in one operation request in the case of applying the change of data to the cache data in Step 509, in the case of registering the entry corresponding to the write request in the cache management table 131 in Step 510, or asynchronously with a series of the operations shown in FIG. 5.
  • FIG. 6 is a flowchart explaining the operations by the data change reflection processing unit 12.
  • The data change reflection processing unit 12 executes the processings shown in FIG. 6 such that the number of processings executed simultaneously can be a value in which the NAS server 20 can be operated most efficiently in accordance with the state of the operation load of the NAS server 20. In general, the larger the number of processings executed simultaneously is, the more efficiently the NAS server 20 can be operated by making full use of a parallel degree of the processings. However, if the number of processings executed simultaneously exceeds a predetermined limit, the execution efficiency is reduced conversely due to an overhead managing the parallel processings. The suitable number of processings executed simultaneously may be obtained by measurement in advance, or may be dynamically adjusted while measuring the performance of the NAS server 20 during the execution.
  • The data change reflection processing unit 12 first refers to the reference order management information and the reflected states in the respective entries of the cache management table 131, and selects one entry of which reflected state is unreflected in LRU order (Step 601).
  • When the selected entry is an entry regarding a directory, next, the data change reflection processing unit 12 verifies whether other entry affected by a change operation for the concerned entry is present (Step 602). Specifically, the data change reflection processing unit 12 refers to the cache management table 131, and retrieves such an entry regarding a directory or a file of which path name indicates that the directory or the file is located immediately under the concerned directory. Then, the data change reflection processing unit 12 examines whether such the entry is affected by the change operation. Here, that the entry is affected by the change operation means that, accompanied with the change operation for the entry selected in Step 601, it will be necessary to change lower directory and file thereof. For example, in the case of changing a directory name of a predetermined directory, accompanied with this, it will also be necessary to change path names of lower directory and file of the directory. In other words, entries regarding the directory and file as described above depend on the entry selected in Step 601. Accordingly, if an entry having such a dependency with the entry selected in Step 601 is present, the entry is detected. An analysis method for the dependency in the directories and the files will be described later.
  • When the entry (hereinafter, referred to as a dependent entry) in the lower directory, which is affected by the change operation for the entry selected in Step 601, is not present, the data change reflection processing unit 12 changes the reflected state of the entry selected in Step 601 during the processings. Then, the data change reflection processing unit 12 creates a data change operation sequence corresponding to the change content of the entry, and transmits the data change operation sequence to the NAS server 20 (Step 603). Based on the data change operation sequence, the NAS server 20 executes a write operation of the data, and then returns a response notifying a write completion to the front-end server 10. If the response for the data change operation sequence is returned from the NAS server 20, the front-end server 10 changes the reflected state of the entry to the end of processing (Step 604).
  • When the dependent entry affected by the change operation for the entry selected in Step 601 is present, next, the data change reflection processing unit 12 examines whether or not it is necessary to reflect the change content of the dependent entry on the corresponding file of the NAS server 20 (Step 605). Here, the case where it is not necessary to reflect the change content of the dependent entry on the corresponding file of the NAS server 20 is a case where the change to the dependent entry becomes nullified by other subsequent operations.
  • When it is necessary to reflect the change content of the dependent entry to the corresponding file of the NAS server 20, the data change reflection processing unit 12 registers the entry selected in Step 601 in the dependency information field of the dependent entry (Step 606). When the other entry is already registered in the dependency information field, this means that the dependent entry has a dependency relation also with the other entry. Accordingly, in such a case, the data change reflection processing unit 12 sequentially traces the entries registered in the dependency information field, and registers the entry selected in Step 601 in the dependency information field if the data change reflection processing unit 12 reaches an entry which is not registered in the dependency information field. Then, with regard to the entry selected in Step 601, the status of the reflected state is set at the “dependency resolution pending.”
  • On the other hand, when it is not necessary to reflect the change content of the dependent entry to the corresponding file of the NAS server 20, the data change reflection processing unit 12 deletes the dependent entry from the cache management table 131 (Step 607). When the other entry is registered in the dependency information field of the dependent entry, the data change reflection processing unit 12 changes the status of the reflected state of the other entry from the “dependency resolution pending” to “unreflected.”
  • Here, the analysis method for the dependency in the directories and the files will be described.
  • This analysis of the dependency is executed in accordance with the specification of the communication protocol between the front-end server 10 and the NAS server 20.
  • When stateless (that is, without a state (information of the status of the directories and the files)) communication protocol such as NFSv2 (NFS version 2) and NFSv3 (NFS version 3) is used for the communication between the front-end server 10 and the NAS server 20, the tree structure of the file system of the NAS server 20 is constructed and managed in the front-end server 10, and the dependency is analyzed based on a positional relationship of the directories and the files in the tree structure. Information required for constructing the tree structure is acquired by which the front end accesses the NAS server according to needs. The constructed tree structure is held in the main memory 103 in FIG. 2, the non-volatile memory 110 in FIG. 2, which constitutes the cache memory 13, and the like.
  • In the stateless communication protocol, it is not necessary to hold, in the client, an operation request received by the server once. It is assured that the operation request is certainly held on the server side even if a failure occurs in the server. A write request that is still not reflected (that is, pending) on the NAS server 20 though received from the client 30 is placed in the front-end server 10. It is necessary to reflect the pending write request on the NAS server 20 even if a change operation (for example, a write-inhibiting operation for an object file of the write request) is performed for a higher directory. Therefore, it is necessary to suitably control the order of reflecting the change operation for the object file and the change operation for the higher directory on the NAS sever 20. Such a necessity leads to a necessity of grasping what relationships the respective operations from the client 30 mutually have in the tree structure of the file system of the NAS server 20. Therefore, as described above, the tree structure is held and managed in the front-end server 10.
  • Meanwhile, when communication protocol provided with a state, such as NFSv4 (NFS version 4), is used for the communication between the front-end server 10 and the NAS server 20, all of the directories and files associated with the pending operation request are set in an open status (or in a cache assigned status), thus making it possible to reflect a pending change on the NAS server 20 no matter how the status of the higher directory may be changed.
  • Unlike the foregoing stateless communication protocol, in the communication protocol provided with the state, explicit recovery processing is required on the client side when the server recovers from the failure. Specifically, the client and the server hold an explicit connection there between for each file and directory. When this connection is disconnected due to some failure, each of the client and the server performs the explicit recovery processing. Meanwhile, as long as the connection is held on the client, it is possible to reflect the change operation pending for each file on the server no matter how the status of the higher directory may be changed. Therefore, it becomes unnecessary to grasp the tree structure of the file system of the NAS server 20 in the front-end server 10 when the communication protocol having a state such as an NFSv4 is used. Although it is necessary to check whether or not a file handle affected by the change operation performed for the directory is present, this checking can be realized by inquiring of the NAS server 20 at the time of the change operation for the directory even if the tree structure is not held.
  • In any of the cases of the stateless communication protocol and the communication protocol provided with the state, in the processing for reflecting the change of data on the NAS server 20, the status of the data in the NAS server 20 and the status of the data on the cache of the front-end server 10 are managed independently of each other. Specifically, even if the change of the status of the data is unreflected on the NAS server 20, the processing is executed in consideration of the effect of the status change in the operation to the cache on the front end.
  • As described above, in this embodiment, the optimization can be performed based on the dependency between the operations in the case of creating the operation request for the NAS server 20 by the data change reflection processing unit 12. Next, the optimization will be described by giving specific examples.
  • (A) Optimization by Merging Data Write Operation for NAS Server 20.
  • When the plurality of operation requests for the data write are the ones for an area where the files are continuous, these operation requests can be merged to create one data change operation sequence, and the NAS server 20 can be allowed to execute the created data change operation sequence. As compared with the case of creating the data change operation sequence for each operation request and allowing the NAS server 20 to execute the created data change operation sequence, in this case, a seek in the hard disk device of the NAS server 20 is reduced, and the number of change operations to be processed by the processor of the NAS server 20 is reduced. Therefore, the period of time required for the processings can be shortened.
  • However, in this case, if the reflection of the merged change operations on the NAS server 20 is delayed, and the other operation, for example, the write-inhibiting operation of the file is reflected on the NAS server 20 prior thereto, a change operation_that follows to reflect the change operation on the NAS server 20 would result in an error. Because it is necessary to reflect the write request received from the client 30 on the NAS server 20 without fail, such an error must be prevented. Therefore, it is necessary to explicitly control the operation of the data write and the inhibiting operation of the data write so as not to be exchanged in the order.
  • In the NFS protocol, the operation of the data write and the inhibiting operation of the data write are operation for the same handle. Hence, when the communication protocol between the servers is the NFS protocol, the execution of the cache management per handle will tell that the operations are performed for the same handle. Thus, the control described here is enabled.
  • (B) Optimization by Omission of Data Write Operation for File Subjected to Change Operation when the File is Deleted.
  • In an operation of an application program operating in the client 30, in some cases, such operations as described below are performed. Predetermined data is created, an interim result thereof is temporarily written as a file into the storage device (NAS server 20), and the content of the file is read in subsequent processing, followed by the deletion of the file.
  • In the NFS protocol, the deletion operation of the file is defined as an operation of the concerned file to the higher directory in the tree structure of the file system. On the other hand, only a simple comparison of handles cannot determine the order of two handles on the tree structure, that is, which of the two handles are higher than the other. In this embodiment, the parentage (path names) on the tree structure is managed in the cache management table 131. Therefore, a dependency between the operation of the data write and the deletion operation of the file can be determined. As a result, it is made possible to omit a reflection of such an operation of data write of which effect is cancelled by the deletion operation of the file on the NAS server 20. In such a way, the processing time required for completing the deletion of the file is shortened.
  • In this embodiment, the communication protocol between the front-end server 10 and the NAS server 20 is set as protocol provided with a cache management assigning mechanism for the client 30, such as NFSv4, thus making it possible to assign a part of the cache management function to the front-end server 10 without changing the functional configuration of the NAS server 20.
  • In the cache management assigning mechanism of NFSv4, it is possible to assign, to the NFS client side, a right of accessing data of a file when the file is opened and a right of locking a specific area on the file. If the front-end server 10 acquires the right of accessing a predetermined file by such a function, it is made possible for the front-end server 10 replacing the NAS server 20 to execute operation for the file, and specifically, the reference operation, the change operation and the locking operation.
  • Thus, it is made possible to execute a part of the processings for the operation request from the client 30 only by the operation of the front-end server 10 without depending on the NAS server 20, and therefore, the load of the NAS server 20 can be reduced to improve a throughput thereof.
  • Furthermore, in this embodiment, the processing requests from the plurality of clients 30 are collected and sent to the NAS server 20 by the function of the client cache in the front-end server 10. Specifically, as described above, the operation requests received from the clients 30 are merged, the change operations executable in a lump in the case of reflecting the change of the data on the NAS server 20 are merged into one operation to be reflected on the NAS server 20, and so on. Besides the above, in the case of using NFSv4 as the communication protocol between the front-end server 10 and the NAs server 20, the reference operation, the change operation and the locking operation, which are executable by the front-end server 10, can be processed by the front-end server 10 replacing the NAS server 20. Therefore, the operation efficiency of the NAS server 20 can be improved.
  • Moreover, when an access is made to the cache data of which management is assigned to the NFS client from the other NFS clients, NFSv4 has a function to call back to the NFS client to which the management of the cache data is assigned. Therefore, even in the case of setting the plurality of front-end servers 10 for the NAS server 20 on the network, the information concerning the operations is shared among the respective front-end servers 10 by the callback from the NAS server 20 to the front-end server 10. Specifically, because the operation by the predetermined front-end server 10 is notified to the other front-end servers 10, the consistency of the operations in the respective front-end servers 10 can be maintained. Hence, it is possible to realize various configurations, such as the plurality of front-end servers 10 for one NAS server 20, and the plurality of front-end servers for the plurality of NAS servers 20, in accordance with the status of the accesses from the clients 30 and status of the load of the NAS server 20.
  • As described above, according to the present invention, the front-end server is interposed between the NAS server and the clients on the network, thus making it possible to provide the effective cache system in the computer system utilized on the network.
  • Moreover, according to the present invention, it is made possible to realize the efficient memory management in the NAS server 20 by use of such the cache system.
  • The present invention thus describes a network system, front-end server and method that improves operations in a NAS server. The front-end server, which couples a client and the NAS server, includes a cache memory for holding at least one operation request directed from a client device to the NAS. The front-end server also has a client operation processing unit for receiving one or more operation requests from the client. The client operation processing unit is also capable of performing operations, based on the operation requests, using data in the cache memory in the front-end server. The front-end server also has a data change reflection processing unit that can create an operation sequence, which may be either a directive to change data in the NAS or a series of execution code, which is sent to the NAS. The client operation processing unit can also merge compatible instructions, received from the client, to create a combined operation request. The combined operation request can be executed either in the front-end server using data in the cache in the front end-server, or can be executed in the NAS using data stored in the NAS. Either way, the results of the operation of the client operation processing unit, known as operation sequences, are sent to the NAS. If the operation sequence is a series of code to be executed in the NAS, the client operation processing unit can restructure the code to a pipelined form, such that the NAS can execute the operation sequence in parallel.
  • It should be understood that at least some aspects of the present invention may alternatively be implemented in a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., a floppy diskette, hard disk drive, read/write CD ROM, optical media), and communication media, such as computer and telephone networks including Ethernet. It should be understood, therefore in such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
  • Although the preferred embodiment of the present invention has been described in detail, it should be understood that various changes, substitutions and alternations can be made therein without departing from spirit and scope of the inventions as defined by the appended claims.

Claims (6)

1. A front-end server comprising:
a cache memory for holding at least one operation request directed from a client device to a NAS (Network Attached Storage) server, the client device and the NAS server being coupled via the front-end server;
a client operation processing unit for receiving said at least one operation request from the client device, the client operation processing unit also being capable of performing an operation based on said at least one operation request by using cache data stored in the cache memory; and
a data change reflection processing unit for creating at least one operation sequence, the created at least one operation sequence being a result of an operation performed by the client operation processing unit in response to the received at least one operation request from the client device, the data change reflection processing unit also being capable of transmitting the created at least one operation sequence to the NAS server;
wherein, in response to a determination that multiple operation requests from the client device are compatible for merging, the client operation processing unit synthesizes a plurality of the operation requests received from the client device into one combined operation request, and the client operation processing unit executes the combined operation request using the cache data in the front-end server to create the created at least one operation sequence.
2. The front-end server of claim 1, wherein the created at least one operation sequence sent to the NAS server is a directive to directly change data stored in the NAS server, the directive based on results of the client operation processing unit executing the combined operation request using data in the cache memory in the front-end server.
3. The front-end server of claim 1, wherein in response to a determination that multiple operation requests from the client device are compatible for merging, the client operation processing unit synthesizes a plurality of the operation requests received from the client device into one combined operation request, and wherein the created operation sequence sent to the NAS server is the combined operation request to be executed by the NAS server using data stored in the NAS server.
4. The front-end server of claim 4, wherein the series of instructions are pipelined when sent to the NAS server for parallel execution.
5. The front-end server of claim 1, wherein the cache memory is a non-volatile recording medium.
6. The front-end server of claim 1, wherein the front-end server is one of a plurality of front-end servers coupled to the NAS server via the Network File System (NFS) protocol.
US11/969,701 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program Abandoned US20080235328A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/969,701 US20080235328A1 (en) 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003115756A JP4131514B2 (en) 2003-04-21 2003-04-21 Network system, server, data processing method and program
JPJP2003-115756 2003-04-21
US10/828,692 US7401129B2 (en) 2003-04-21 2004-04-21 Network system, server, data processing method and program
US11/969,701 US20080235328A1 (en) 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/828,692 Continuation US7401129B2 (en) 2003-04-21 2004-04-21 Network system, server, data processing method and program

Publications (1)

Publication Number Publication Date
US20080235328A1 true US20080235328A1 (en) 2008-09-25

Family

ID=33496214

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/828,692 Expired - Fee Related US7401129B2 (en) 2003-04-21 2004-04-21 Network system, server, data processing method and program
US11/969,723 Abandoned US20080313258A1 (en) 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program
US11/969,701 Abandoned US20080235328A1 (en) 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/828,692 Expired - Fee Related US7401129B2 (en) 2003-04-21 2004-04-21 Network system, server, data processing method and program
US11/969,723 Abandoned US20080313258A1 (en) 2003-04-21 2008-01-04 Network System, Server, Data Processing Method and Program

Country Status (2)

Country Link
US (3) US7401129B2 (en)
JP (1) JP4131514B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516149B1 (en) * 2010-12-17 2013-08-20 Emc Corporation System for operating NFSv2 and NFSv3 clients with federated namespace

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4131514B2 (en) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション Network system, server, data processing method and program
US7363364B2 (en) * 2004-03-30 2008-04-22 At&T Delaware Intellectual Property, Inc. Methods, systems, and products for verifying integrity of web-server served content
US20060230014A1 (en) * 2004-04-26 2006-10-12 Storewiz Inc. Method and system for compression of files for storage and operation on compressed files
WO2005103878A2 (en) * 2004-04-26 2005-11-03 Storewiz, Inc. Method and system for compression of files for storage and operation on compressed files
US20060190643A1 (en) * 2004-04-26 2006-08-24 Storewiz, Inc. Method and system for compression of data for block mode access storage
US7424482B2 (en) * 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
JP4892812B2 (en) * 2004-04-28 2012-03-07 株式会社日立製作所 Cache control and data processing system and processing program therefor
JP2006209316A (en) * 2005-01-26 2006-08-10 Nec Corp Database access management system, management method, and its program
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060236071A1 (en) * 2005-04-15 2006-10-19 Barszczak Tomasz M Method and system for optimizing operations on memory device
US8327050B2 (en) * 2005-04-21 2012-12-04 International Business Machines Corporation Systems and methods for compressing files for storage and operation on compressed files
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7401089B2 (en) * 2005-08-17 2008-07-15 Microsoft Corporation Storage reports file system scanner
CN101346883A (en) 2005-10-26 2009-01-14 斯多维兹有限公司 Method and system for compression of data for block mode access storage
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US8868930B2 (en) 2006-05-31 2014-10-21 International Business Machines Corporation Systems and methods for transformation of logical data objects for storage
US8782436B2 (en) 2006-05-31 2014-07-15 International Business Machines Corporation Method and system for transformation of logical data objects for storage
JP4885871B2 (en) * 2007-02-02 2012-02-29 株式会社ソニー・コンピュータエンタテインメント Mediation server, terminal, and distributed processing method
JP4770766B2 (en) * 2007-03-23 2011-09-14 日本電気株式会社 Cache memory device, cache management method thereof, and cache management program
US20090171965A1 (en) * 2007-12-28 2009-07-02 Bruce Backa System and Method For Policy Based Control of NAS Storage Devices
US8549654B2 (en) * 2008-02-20 2013-10-01 Bruce Backa System and method for policy based control of NAS storage devices
US8631470B2 (en) * 2008-02-20 2014-01-14 Bruce R. Backa System and method for policy based control of NAS storage devices
US20110208779A1 (en) * 2008-12-23 2011-08-25 Backa Bruce R System and Method for Policy Based Control of NAS Storage Devices
US8412856B2 (en) * 2009-10-26 2013-04-02 Sony Computer Entertainment America Llc. File input/output scheduler using immediate data chunking
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
ES2754099T3 (en) 2009-12-10 2020-04-15 Royal Bank Of Canada Synchronized data processing using networked computing resources
US20110202909A1 (en) * 2010-02-12 2011-08-18 Microsoft Corporation Tier splitting for occasionally connected distributed applications
JP4995296B2 (en) * 2010-03-11 2012-08-08 株式会社日立製作所 Computer system and cache control method
KR101643273B1 (en) 2010-04-09 2016-08-01 삼성전자주식회사 Method of storing data in storage media, data storage device using the same, and system including the same
JP5760592B2 (en) * 2011-03-30 2015-08-12 日本電気株式会社 Storage access control method for shared file system
US9747300B2 (en) 2011-06-15 2017-08-29 Amazon Technologies, Inc. Local networked storage linked to remote networked storage system
JP5637115B2 (en) * 2011-10-18 2014-12-10 株式会社バッファロー Network storage system, data operation method in network storage system, and storage device
JP5869941B2 (en) * 2012-04-02 2016-02-24 株式会社ソニー・コンピュータエンタテインメント Information processing apparatus and server
CN102707966B (en) * 2012-04-12 2014-09-03 腾讯科技(深圳)有限公司 Method and device for acceleratively starting operating system, and method, device and terminal for generating prefetched information
WO2014041760A1 (en) * 2012-09-13 2014-03-20 日本電気株式会社 Estimation device, database-operation-status estimation method, and program storage medium
US8769633B1 (en) 2012-12-12 2014-07-01 Bruce R. Backa System and method for policy based control of NAS storage devices
JP6269257B2 (en) * 2014-03-31 2018-01-31 富士通株式会社 Information processing apparatus, information processing system, information processing apparatus control program, and information processing apparatus control method
CN106302559B (en) 2015-05-11 2019-07-05 阿里巴巴集团控股有限公司 A kind of data copy method and equipment
JP6227055B1 (en) * 2016-05-25 2017-11-08 ヤフー株式会社 Storage system and file writing method
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US10810157B1 (en) * 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
JP7147805B2 (en) * 2020-03-26 2022-10-05 株式会社安川電機 Production system, data transmission method, and program
CN113672577B (en) * 2021-06-30 2023-08-04 苏州浪潮智能科技有限公司 NFS network file sharing method and system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033383A1 (en) * 2001-07-26 2003-02-13 International Business Machines Corporation Client request handling in a NAS- based server environment
US20040111486A1 (en) * 2002-12-06 2004-06-10 Karl Schuh Distributed cache between servers of a network
US6792424B1 (en) * 1999-04-23 2004-09-14 International Business Machines Corporation System and method for managing authentication and coherency in a storage area network
US20050021657A1 (en) * 2003-04-21 2005-01-27 International Business Machines Corp. Network system, server, data processing method and program
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7103617B2 (en) * 2003-01-17 2006-09-05 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749880A (en) 1993-08-06 1995-02-21 Oki Electric Ind Co Ltd Data base access request device
JPH08212090A (en) 1995-02-03 1996-08-20 Fujitsu Ltd Server system
JPH0926904A (en) 1995-07-10 1997-01-28 Nippon Tokkyo Joho Kiko Data management system using library device
JP3808941B2 (en) 1996-07-22 2006-08-16 株式会社日立製作所 Parallel database system communication frequency reduction method
JP2001084257A (en) 1999-09-13 2001-03-30 Hitachi Ltd Method and system for processing inquiry

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792424B1 (en) * 1999-04-23 2004-09-14 International Business Machines Corporation System and method for managing authentication and coherency in a storage area network
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
US20030033383A1 (en) * 2001-07-26 2003-02-13 International Business Machines Corporation Client request handling in a NAS- based server environment
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US20040111486A1 (en) * 2002-12-06 2004-06-10 Karl Schuh Distributed cache between servers of a network
US7103617B2 (en) * 2003-01-17 2006-09-05 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US20050021657A1 (en) * 2003-04-21 2005-01-27 International Business Machines Corp. Network system, server, data processing method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516149B1 (en) * 2010-12-17 2013-08-20 Emc Corporation System for operating NFSv2 and NFSv3 clients with federated namespace

Also Published As

Publication number Publication date
US20050021657A1 (en) 2005-01-27
JP2004326162A (en) 2004-11-18
US7401129B2 (en) 2008-07-15
JP4131514B2 (en) 2008-08-13
US20080313258A1 (en) 2008-12-18

Similar Documents

Publication Publication Date Title
US7401129B2 (en) Network system, server, data processing method and program
JP4489292B2 (en) High performance object cache
US7092971B2 (en) Prefetch appliance server
KR101544717B1 (en) Software-defined network attachable storage system and method
AU694386B2 (en) System and method for locating pages on the world wide web and for locating documents from a network of computers
US8280851B2 (en) Applying a policy criteria to files in a backup image
US9176980B2 (en) Scalable caching of remote file data in a cluster file system
US6449696B2 (en) Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests
US7165096B2 (en) Storage area network file system
US6985914B2 (en) Cluster meta file system of file system cells managed by respective data movers of a network file server
US9348842B2 (en) Virtualized data storage system optimizations
CN111356996B (en) System and computer-implemented method for version verification
US7548939B2 (en) Generating storage reports using volume snapshots
US7266538B1 (en) Methods and apparatus for controlling access to data in a data storage system
JP2005535019A (en) Storage management bridge
CN110262922A (en) Correcting and eleting codes update method and system based on copy data log
US20180067662A1 (en) Memory-based on-demand data page generation
KR100785774B1 (en) Obeject based file system and method for inputting and outputting
JP2001312483A (en) Data sharing method
US11860869B1 (en) Performing queries to a consistent view of a data set across query engine types
Li et al. IndigoStore: Latency Optimized Distributed Storage Backend for Cloud-Scale Block Storage
JPH07210433A (en) File server

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE