Source: http://www.google.com.tw/patents/US7437523
Timestamp: 2013-05-23 21:32:52
Document Index: 64300124

Matched Legal Cases: ['art 602', 'art 604', 'art 600', 'art 602', 'art 602', 'art 604', 'art 1', 'art 1', 'art 604', 'art 1', 'art 1', 'art 604', 'art 1', 'art 1', 'art 604', 'art 602', 'art 604']

�M�Q US7437523 - System and method for on-the-fly file folding in a replicated storage system - Google �M�Q�j�M �Ϥ� �a�� Play YouTube �s�D Gmail ���ݵw�� ��h »�i���M�Q�j�M | �������� | �n�J�i���M�Q�j�M�M�QA file folding technique reduces the number of duplicate data blocks of the file consumed on a storage device of a file server. According to the file folding technique, the ��old�� data blocks are being overwritten with ��new�� data and that new data is identical to the data of the ��old�� data,...http://www.google.com.tw/patents/US7437523?utm_source=gb-gplus-share�M�Q US7437523 - System and method for on-the-fly file folding in a replicated storage system���}��US7437523 B1�X���������v�ӽЮѽs��10/423,392�o�G���2008�~10��14���ӽФ��2003�~4��25�� �u���v���2003�~4��25���o��HStephen ManleyDaniel Ting��M�Q�v�HNetwork Appliance, Inc. ���M�Q������711/161711/162714/6.3��ڱM�Q������G06F12/06 �X�@����H04L29/0854G06F17/30067G06F3/0601G06F2003/0692 �ڬw������G06F17/30FH04L29/08N9R�ѦҤ��m�M�Q�ޥ� (49)�D�M�Q�ޥ� (92)�Q�H�U�M�Q�ޥ� (1)�~���s�����M�Q�ӼЧ� ���M�Q�ӼЧ��M�Q����T�� �ڬw�M�Q��System and method for on-the-fly file folding in a replicated storage systemUS 7437523 B1�K�n A file folding technique reduces the number of duplicate data blocks of the file consumed on a storage device of a file server. According to the file folding technique, the ��old�� data blocks are being overwritten with ��new�� data and that new data is identical to the data of the ��old�� data, no write operation occurs. The invention reduces disk space consumption in a file server and also reduces the number of write operations directed to disks associated with the file server.
if the comparing step indicates that a formed data block and its corresponding stored data block are not identical, then writing the formed data blocks to the storage in the destination system. ����
BACKGROUND OF THE INVENTION A file server is a computer that provides file service relating to the organization of information on storage devices, such as disks. The file server or filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks. Each ��on-disk�� file may be implemented as a set of data structures, e.g., disk blocks, configured to store information. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
A filer may be further configured to operate according to a client/server model of information delivery to thereby allow many clients to access files stored on a server, e.g., the filer. In this model, the client may comprise an application, such as a database application, executing on a computer that ��connects�� to the filer over a direct connection or computer network, such as a point-to-point link, shared local area network (LAN), wide area network (WAN), or virtual private network (VPN) implemented over a public network such as the Internet. Each client may request the services of the file system on the filer by issuing file system protocol messages (in the form of packets) to the filer over the network.
A common type of file system is a ��write in-place�� file system, an example of which is the conventional Berkeley fast file system. By ��file system�� it is meant generally a structuring of data and metadata on a storage device, such as disks, which permits reading/writing of data on those disks. In a write in-place file system, the locations of the data structures, such as inodes and data blocks, on disk are typically fixed. An inode is a data structure used to store information, such as metadata, about a file, whereas the data blocks are structures used to store the actual data for the file. The information contained in an inode may include, e.g., ownership of the file, access permission for the file, size of the file, file type and references to locations on disk of the data blocks for the file. The references to the locations of the file data are provided by pointers in the inode, which may further reference indirect blocks that, in turn, reference the data blocks, depending upon the quantity of data in the file. Changes to the inodes and data blocks are made ��in-place�� in accordance with the write in-place file system. If an update to a file extends the quantity of data for the file, an additional data block is allocated and the appropriate inode is updated to reference that data block.
Another type of file system is a write-anywhere file system that does not overwrite data on disks. If a data block on disk is retrieved (read) from disk into memory and ��dirtied�� with new data, the data block is stored (written) to a new location on disk to thereby optimize write performance. A write-anywhere file system may initially assume an optimal layout such that the data is substantially contiguously arranged on disks. The optimal disk layout results in efficient access operations, particularly for sequential read operations, directed to the disks. A particular example of a write-anywhere file system that is configured to operate on a filer is the Write Anywhere File Layout (WAFL™) file system available from Network Appliance, Inc. of Sunnyvale, Calif. The WAFL file system is implemented within a microkernel as part of the overall protocol stack of the filer and associated disk storage. This microkernel is supplied as part of Network Appliance's Data ONTAP™ software, residing on the filer, that processes file-service requests from network-attached clients.
As used herein, the term ��storage operating system�� generally refers to the computer-executable code operable on a computer that manages data access and may, in the case of a filer, implement file system semantics, such as the Data ONTAP™ storage operating system, implemented as a microkernel, and available from Network Appliance, Inc. of Sunnyvale, Calif., which implements a Write Anywhere File Layout (WAFL™) file system. The storage operating system can also be implemented as an application program operating over a general-purpose operating system, such as UNIX® or Windows NT®, or as a general-purpose operating system with configurable functionality, which is configured for storage applications as described herein.
Disk storage is typically implemented as one or more storage ��volumes�� that comprise physical storage disks, defining an overall logical arrangement of storage space. Currently available filer implementations can serve a large number of discrete volumes (150 or more, for example). Each volume is associated with its own file system and, for purposes hereof, volume and file system shall generally be used synonymously. The disks within a volume are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID). RAID implementations enhance the reliability/integrity of data storage through the redundant writing of data ��stripes�� across a given number of physical disks in the RAID group, and the appropriate caching of parity information with respect to the striped data. In the example of a WAFL file system, a RAID 4 implementation is advantageously employed. This implementation specifically entails the striping of data across a group of disks, and separate parity caching within a selected disk of the RAID group. As described herein, a volume typically comprises at least one data disk and one associated parity disk (or possibly data/parity partitions in a single disk) arranged according to a RAID 4, or equivalent high-reliability, implementation.
In order to improve reliability and facilitate disaster recovery in the event of a failure of a filer, its associated disks or some portion of the storage infrastructure, it is common to ��mirror�� or replicate some or all of the underlying data and/or the file system that organizes the data. In one example, a mirror is established and stored at a remote site, making it more likely that recovery is possible in the event of a true disaster that may physically damage the main storage location or it's infrastructure (e.g. a flood, power outage, act of war, etc.). The mirror is updated at regular intervals, typically set by an administrator, in an effort to catch the most recent changes to the file system. One common form of update involves the use of a ��snapshot�� process in which the active file system at the storage site, consisting of inodes and blocks, is captured and the ��snapshot�� is transmitted as a whole, over a network (such as the well-known Internet) to the remote storage site. Generally, a snapshot is an image (typically read-only) of a file system at a point in time, which is stored on the same primary storage device as is the active file system and is accessible by users of the active file system. By ��active file system�� it is meant the file system to which current input/output operations are being directed. The primary storage device, e.g., a set of disks, stores the active file system, while a secondary storage, e.g. a tape drive, may be utilized to store backups of the active file system. Once snapshotted, the active file system is reestablished, leaving the snapshotted version in place for possible disaster recovery. Each time a snapshot occurs, the old active file system becomes the new snapshot, and the new active file system carries on, recording any new changes. A set number of snapshots may be retained depending upon various time-based and other criteria. The snapshotting process is described in further detail in U.S. patent application Ser. No. 09/932,578, entitled INSTANT SNAPSHOT by Blake Lewis et al., which is hereby incorporated by reference as though fully set forth herein. In addition, the native Snapshot™ capabilities of the WAFL file system are further described in TR3002 File System Design for an NFS File Server Appliance by David Hitz et al., published by Network Appliance, Inc., and in commonly owned U.S. Pat. No. 5,819,292 entitled METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF A FILE SYSTEM by David Hitz et al., which are hereby incorporated by reference.
The complete recopying of the entire file system to a remote (destination) site over a network may be quite inconvenient where the size of the file system is measured in tens or hundreds of gigabytes (even terabytes). This full-backup approach to remote data replication may severely tax the bandwidth of the network and also the processing capabilities of both the destination and source filer. One solution has been to limit the snapshot to only portions of a file system volume that have experienced changes. Hence, FIG. 1 shows a prior art volume-based mirroring where a source file system 100 is connected to a destination storage site 102 (consisting of a server and attached storage�Xnot shown) via a network link 104. The destination 102 receives periodic snapshot updates at some regular interval set by an administrator. These intervals are chosen based upon a variety of criteria including available bandwidth, importance of the data, frequency of changes and overall volume size.
In brief summary, the source creates a pair of time-separated snapshots of the volume. These can be created as part of the commit process in which data is committed to non-volatile memory in the filer or by another mechanism. The ��new�� snapshot 110 is a recent snapshot of the volume's active file system. The ��old�� snapshot 112 is an older snapshot of the volume, which should match the image of the file system replicated on the destination mirror. Note, that the file server is free to continue work on new file service requests once the new snapshot 112 is made. The new snapshot acts as a checkpoint of activity up to that time rather than an absolute representation of the then-current volume state. A differencer 120 scans the blocks 122 in the old and new snapshots. In particular, the differencer works in a block-by-block fashion, examining the list of blocks in each snapshot to compare which blocks have been allocated. In the case of a write-anywhere system, the block is not reused as long as a snapshot references it, thus a change in data is written to a new block. Where a change is identified (denoted by a presence or absence of an ��X�� designating data), a decision process 200, shown in FIG. 2, in the differencer 120 decides whether to transmit the data to the destination 102. The process 200 compares the old and new blocks as follows: (a) Where data is in neither an old nor new block (case 202) as in old/new block pair 130, no data is available to transfer (b) Where data is in the old block, but not the new (case 204) as in old/new block pair 132, such data has already been transferred, (and any new destination snapshot pointers will ignore it), so the new block state is not transmitted. (c) Where data is present in the both the old block and the new block (case 206) as in the old/new block pair 134, no change has occurred and the block data has already been transferred in a previous snapshot. (d) Finally, where the data is not in the old block, but is in the new block (case 208) as in old/new block pair 136, then a changed data block is transferred over the network to become part of the changed volume snapshot set 140 at the destination as a changed block 142. In the exemplary write-anywhere arrangement, the changed blocks are written to new, unused locations in the storage array. Once all changed blocks are written, a base file system information block, that is the root pointer of the new snapshot, is then committed to the destination. The transmitted file system information block is committed, and updates the overall destination file system by pointing to the changed block structure in the destination, and replacing the previous file system information block. The changes are at this point committed as the latest incremental update of the destination volume snapshot. This file system accurately represents the ��new�� snapshot on the source. In time a new ��new�� snapshot is created from further incremental changes.
One such sub-organization of a volume is the well-known qtree. Qtrees, as implemented on an exemplary storage system such as described herein, are subtrees in a volume's file system. One key feature of qtrees is that, given a particular qtree, any file or directory in the system can be quickly tested for membership in that qtree, so they serve as a good way to organize the file system into discrete data sets. The use of qtrees as a source and destination for snapshotted data is desirable. Where a number of sub-organizations such as qtrees reside on a volume, it is common to store critical tree attributes/information in the qtree root directory inode of the tree structure in metadata, that is accessible to the file system. Such information may include security information and various system/qtree management information. This information can consume significant storage space. Because every inode needs to be set up with similar space, the required size of the root inode governs the size of all inodes. This translates into significant wasted storage space assigned to ��ordinary�� inodes so that the root's needs are satisfied. A more efficient location for storing sub-organization/qtree metadata information that allows the storage size of root inodes to be reduced is desirable. In addition a metadata location that allows for expansion space for future improvements is also desirable.
SUMMARY OF THE INVENTION The disadvantages of the prior art are overcome by providing a system and method for on-the-fly file folding in a replicated storage system. The system and method transfers complete or whole files from a source to a destination. At the destination, a real-time file folding procedure is performed that only generates write operations for disk blocks that would be modified. This reduces substantially the processing and system overhead required in a replicated backup system and enables a destination server to interact with a variety of source systems, including those source systems that utilize file systems differing from that of the destination.
By way of further background, FIG. 3 is a schematic block diagram of a storage system environment 300 that includes a pair of interconnected computers including a source system 310 and a destination file server 312 that may be advantageously used with the present invention. For the purposes of this description, the source system is a networked computer that manages storage one or more storage disks 362. The source system 310 executes an operating system 311. The operating system 311 may be, for example, the commercially available Sun Microsystem's Solaris®, Microsoft Windows® 2000, HP/UX or AIX. The operating system 311 implements an OS-specific file system on the disks 362 connected to the source system 310.
The destination filer 312 manages one or more destination volumes 316, comprising arrays of disks 360. The source and destination are linked via a network 318 that can comprise a local or wide area network, such as the well-known Internet. An appropriate network adapter 330 residing the source and destination 310, 312 facilitates communication over the network 318. As used herein, the term ��source�� can be broadly defined as a location from which the subject data of this invention travels and the term ��destination�� can be defined as the location to which the data travels. While a source system and a destination filer, connected by a network, is a particular example of a source and destination used herein, a source and destination could be computers/filers linked via a direct link, or via loopback (a ��networking�� arrangement internal to a single computer for transmitting a data stream between local source and local destination), in which case the source and the destination may comprise the same filer.
It will be understood to those skilled in the art that the inventive technique described herein may apply to any type of special-purpose computer (e.g., file serving appliance) or general-purpose computer, including a standalone computer, embodied as a storage system. To that end, the filer 312 can be broadly, and alternatively, referred to as a storage system. Moreover, the teachings of this invention can be adapted to a variety of storage system architectures including, but not limited to, a network-attached storage environment, a storage area network and disk assembly directly-attached to a client/host computer. The term ��storage system�� should, therefore, be taken broadly to include such arrangements.
In the illustrative embodiment, the memory 325 comprises storage locations that are addressable by the processor and adapters for storing software program code. The memory comprises a form of random access memory (RAM) that is generally cleared by a power cycle or other reboot operation (i.e., it is ��volatile�� memory). The processor and adapters may, in turn, comprise processing elements and/or logic circuitry configured to execute the software code and manipulate the data structures. The storage operating system 400, portions of which are typically resident in memory and executed by the processing elements, functionally organizes the filer by, inter alia, invoking storage operations in support of a file service implemented by the filer. It will be apparent to those skilled in the art that other processing and memory means, including various computer readable media, may be used for storing and executing program instructions pertaining to the inventive technique described herein.
To facilitate generalized access to the disks 360, the storage operating system 400 (FIG. 4) implements a write-anywhere file system that logically organizes the information as a hierarchical structure of directories and files on the disks. Each ��on-disk�� file may be implemented as a set of disk blocks configured to store information, such as data, whereas the directory may be implemented as a specially formatted file in which references to other files and directories are stored. As noted and defined above, in the illustrative embodiment described herein, the storage operating system is the NetApp® Data ONTAP™ operating system available from Network Appliance, Inc., of Sunnyvale, Calif. that implements the Write Anywhere File Layout (WAFL™) file system. It is expressly contemplated that any appropriate file system can be used, and as such, where the term ��WAFL�� is employed, it should be taken broadly to refer to any file system that is otherwise adaptable to the teachings of this invention.
Bridging the disk software layers with the network and file system protocol layers is a file system layer 450 of the storage operating system 400. Generally, the layer 450 implements a file system having an on-disk format representation that is block-based using, e.g., 4-kilobyte (KB) data blocks and using inodes to describe the files. In response to transaction requests, the file system generates operations to load (retrieve) the requested data from volumes if it is not resident ��in-core��, i.e., in the filer's memory 325. If the information is not in memory, the file system layer 450 indexes into the inode file using the inode number to access an appropriate entry and retrieve a volume block number. The file system layer 450 then passes the volume block number to the disk storage (RAID) layer 440, which maps that volume block number to a disk block number and sends the latter to an appropriate driver (for example, an encapsulation of SCSI implemented on a fibre channel disk interconnection) of the disk driver layer 445. The disk driver accesses the disk block number from volumes and loads the requested data in memory 325 for processing by the filer 312. Upon completion of the request, the filer (and storage operating system) returns a reply, e.g., a conventional acknowledgement packet 374 defined by the CIFS specification, to the client 370 over the respective network connection 372.
It should be noted that the software ��path�� 470 through the storage operating system layers described above needed to perform data storage access for the client request received at the filer may alternatively be implemented in hardware or a combination of hardware and software. That is, in an alternate embodiment of the invention, the storage access request data path 470 may be implemented as logic circuitry embodied within a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). This type of hardware implementation increases the performance of the file service provided by the filer 312 in response to a file system request packet 374 issued by the client 370.
The format of the data stream between the source and destination is described further below. In general, its use is predicated upon having a structure that supports multiple protocol attributes (e.g. Unix permissions, NT access control lists (ACLs), multiple file names, NT streams, file type, file-create/modify time, etc.). The format should also identity the data in the stream (i.e. the offset location in a file of specific data or whether files have ��holes�� in the file offset that should remain free). The names of files should also be relayed by the format. More generally, the format should also be independent of the underlying network protocol or device (in the case of a tape or local disk/non-volatile storage) protocol and file system�Xthat is, the information is system ��agnostic,�� and not bound to a particular operating system software, thereby allowing source and destination systems of different vendors to share the information. The format should, thus, be completely self-describing requiring no information outside the data stream. In this manner a source file directory of a first type can be readily translated into destination file directory of a different type. It should also allow extensibility, in that newer improvements to the source or destination operating system should not affect the compatibility of older versions. In particular, a data set (e.g. a new header) that is not recognized by the operating system should be ignored or dealt with in a predictable manner without triggering a system crash or other unwanted system failure (i.e. the stream is backwards compatible). This format should also enable transmission of a description of the whole file system, or a description of only changed blocks/information within any file or directory. In addition, the format should generally minimize network and processor overhead required for transferring modified file data.
The format into which source file changes are organized is shown schematically in FIGS. 6 and 7. In the illustrative embodiment, the format is organized around 4 kilobyte (KB) blocks. The header size and arrangement can be widely varied in alternate embodiments, however. There are 4 KB headers (600 in FIG. 6) that are identified by certain ��header types.�� Basic data stream headers (��data��) are provided for at most every 2 megabytes (MB) of changed data. With reference to FIG. 6, the 4 KB standalone header includes three parts, a 1 KB generic part 602, a 2 KB non-generic part 604, and an 1 KB expansion part 600. The expansion part is not used, but is available for later versions.
The generic part 602 contains an identifier of header type 610. Standalone header types (i.e. headers not followed by associated data) can indicate a start of the data stream; an end of part one of the data stream; an end of the data stream; a list of deleted files encapsulated in the header; or the relationship of any NT streamdirs. Later versions of Windows NT allow for multiple NT ��streams�� related to particular filenames. A discussion of streams is found in U.S. patent application Ser. No. 09/891,195, now issued as U.S. Pat. No. 6,446,653 entitled SYSTEM AND METHOD FOR REPRESENTING NAMED DATA STREAMS WITHIN AN ON-DISK STRUCTURE OF A FILE SYSTEM, by Kayuri Patel, et al, the teachings of which are expressly incorporated herein by reference. Also in the generic part 602 is a checksum 612 that ensures the header has not been corrupted during the data transfer. In addition other data such as a ��checkpoint�� 614 used by the source and destination to track the progress of replication is provided. By providing a list of header types, the destination can more easily operate in a backwards-compatible mode�Xthat is, a header type that is not recognized by the destination (provided from a newer version of the source) can be more easily ignored, while recognized headers within the limits of the destination version are processed as usual.
FIG. 7 describes the format of the illustrative replication data stream in further detail. The format of the replicated data stream is headed by a standalone data stream header 702 of the type ��start of data stream.�� This header contains data in the non-generic part 604 generated by the source describing the attributes of the data stream.
Next a series of headers and follow-on data in the format define various ��part 1�� information (704). Significantly, each directory data set being transmitted is preceded by a basic header with no non-generic data. Only directories that have been modified are transmitted, and they need not arrive in a particular order. Note also that the data from any particular directory need not be contiguous. Each directory entry is loaded into a 4 KB block. Any overflow is loaded into a new 4 KB block. Each directory entry is a header followed by one or more names. The entry describes an inode and the directory names to follow. NT stream directories are also transmitted.
The part 1 format information 704 also provides ACL information for every file that has an associated ACL. By transmitting the ACLs before their associated file data, the destination can set ACLs before file data is written. ACLs are transmitted in a ��regular�� file format. Deleted file information (described above) is sent with such information included in the non-generic part 604 of one or more standalone headers (if any). By sending this information in advance, the directory tree builder can differentiate between moves and deletes.
Once various part 1 information 704 is transmitted, the format calls for an ��end of part 1 of the data stream�� header 706. This is a basic header having no data in the non-generic part 604. This header tells the destination that part 1 is complete and to now expect file data.
After the part 1 information, the format presents the file and stream data 708. A basic header 710 for every 2 MB or less of changed data in a file is provided, followed by the file data 712 itself. The files comprising the data need not be written in a particular order, nor must the data be contiguous. In addition, referring to the header in FIG. 6, the basic header includes a block numbers data structure 630, associated with the non-generic part 604 works in conjunction with the ��holes array�� 632 within (in this example) the generic part 602. The holes array denotes empty space. This structure, in essence, provides the mapping from the holes array to corresponding blocks in the file. This structure instructs the destination where to write data blocks or holes.
Finally, the end of the replicated data stream format 700 is marked by a footer 720 consisting of standalone header of the type ��end of data stream.�� This header has no specific data in its non-generic part 604 (FIG. 6).
FIG. 10 is a schematic block diagram illustrating the organization of blocks as an inode buffer tree 1000 in the file system. An inode 900, such as an embedded inode, references indirect, level 1 blocks 1002. As noted, these indirect blocks contain pointers 1005 (e.g., VBNs) that reference level 0 data blocks 1004 used to store the actual data of a file. That is, the data of a file are contained in data blocks and the locations of these blocks are stored in the indirect blocks of the file. Each indirect block 1002 may contain pointers to as many as 1024 data blocks. According to the ��write anywhere�� nature of the illustrative file system, these blocks may be located anywhere on the disks of the file system.
�M�Q�ޥ� �ޥΪ��M�Q�ӽФ���o�G��� �ӽЪ��M�Q�W��US41569071978�~5��15��1979�~5��29��Burroughs CorporationData communications subsystemUS43995031978�~6��30��1983�~8��16��Bunker Ramo CorporationDynamic disk buffer control unitUS45702171983�~3��28��1986�~2��11��Gould Inc.Man machine interfaceUS45983571983�~1��25��1986�~7��1��Sperry CorporationCache/disk subsystem with file number for recovery of cached dataUS46882211984�~12��19��1987�~8��18��Hitachi, Ltd.Error recovery method and apparatusUS46988081985�~12��5��1987�~10��6��International Business Machines CorporationMethod for detecting intermittent error in volatile memoryUS47617851986�~6��12��1988�~8��2��International Business Machines CorporationParity spreading to enhance storage accessUS48050901985�~9��27��1989�~2��14��Unisys CorporationPeripheral-controller for multiple disk drive modules having different protocols and operating conditionsUS48376751988�~2��1��1989�~6��6��Digital Equipment CorporationSecondary storage facility empolying serial communications between drive and controllerUS48644971988�~4��13��1989�~9��5��Digital Equipment CorporationMethod of integrating software application programs using an attributive data model databaseUS48962591987�~11��30��1990�~1��23��International Business Machines CorporationApparatus for storing modifying data prior to selectively storing data to be modified into a registerUS48993421988�~2��1��1990�~2��6��Thinking Machines CorporationMethod and apparatus for operating multi-unit array of memoriesUS49892061990�~1��11��1991�~1��29��Storage Technology CorporationDisk drive memoryUS51249871990�~4��16��1992�~6��23��Storage Technology CorporationLogical track write scheduling system for a parallel disk drive array data storage subsystemUS51558351990�~11��19��1992�~10��13��Storage Technology CorporationMultilevel, hierarchical, dynamically mapped data storage subsystemUS51631311989�~9��8��1992�~11��10��Auspex Systems, Inc.Parallel i/o network file server architectureUS52029791992�~6��26��1993�~4��13��Thinking Machines CorporationStorage system using multiple independently mechanically-driven storage unitsUS52789791990�~12��20��1994�~1��11��International Business Machines Corp.Version management system using pointers shared by a plurality of versions for indicating active lines of a versionUS53554531992�~10��13��1994�~10��11��Auspex Systems, Inc.Parallel I/O network file server architectureUS54267471991�~3��22��1995�~6��20��Object Design, Inc.Method and apparatus for virtual memory mapping and transaction management in an object-oriented database systemUS54855791994�~4��8��1996�~1��16��Auspex Systems, Inc.Multiple facility operating system architectureUS55817241995�~5��12��1996�~12��3��Storage Technology CorporationDynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystemUS58023661994�~10��11��1998�~9��1��Auspex Systems, Inc.Parallel I/O network file server architectureUS58192921995�~5��31��1998�~10��6��Network Appliance, Inc.Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file systemUS59319181997�~7��30��1999�~8��3��Auspex Systems, Inc.Parallel I/O network file server architectureUS59419721997�~12��31��1999�~8��24��Crossroads Systems, Inc.Storage router and method for providing virtual local storageUS59481101995�~6��5��1999�~9��7��Network Appliance, Inc.Method for providing parity in a raid sub-system using non-volatile memoryUS59502251997�~2��28��1999�~9��7��Network Appliance, Inc.Fly-by XOR for generating parity for data gleaned from a busUS59639621998�~6��30��1999�~10��5��Network Appliance, Inc.Write anywhere file-system layoutUS60385701995�~5��31��2000�~3��14��Network Appliance, Inc.Method for allocating files in a file system integrated with a RAID disk sub-systemUS60650371995�~6��7��2000�~5��16��Auspex Systems, Inc.Multiple software-facility component operating system for co-operative processor control within a multiprocessor computer systemUS61381261999�~7��21��2000�~10��24��Network Appliance, Inc.Method for allocating files in a file system integrated with a raid disk sub-systemUS62893561998�~9��14��2001�~9��11��Network Appliance, Inc.Write anywhere file-system layoutUS64250352001�~9��27��2002�~7��23��Crossroads Systems, Inc.Storage router and method for providing virtual local storageUS65299211999�~6��29��2003�~3��4��Microsoft CorporationDynamic synchronization of tablesUS65745911999�~10��25��2003�~6��3��Network Appliance, Inc.File systems image transfer between dissimilar file systemsUS66368792000�~8��18��2003�~10��21��Network Appliance, Inc.Space allocation in a write anywhere file systemUS67047552002�~5��21��2004�~3��9��Livevault CorporationSystems and methods for backing up data filesUS67485042002�~2��15��2004�~6��8��International Business Machines CorporationDeferred copy-on-write of a snapshotUS68266662002�~2��7��2004�~11��30��Microsoft CorporationMethod and system for transporting data content on a storage area networkUS68656552002�~7��30��2005�~3��8��Sun Microsystems, Inc.Methods and apparatus for backing up and restoring data portions stored in client computer systemsUS69618702002�~3��13��2005�~11��1��Inventec CorporationData exchange update and back-up system and method between dual operating systems of a computerUS69935392002�~3��19��2006�~1��31��Network Appliance, Inc.System and method for determining changes in two snapshots and for transmitting changes to destination snapshotUS70434852002�~3��19��2006�~5��9��Network Appliance, Inc.System and method for storage of snapshot metadata in a remote fileUS200300743782002�~12��16��2003�~4��17��Livevault CorporationSystems and methods for backing up data filesUS200301823132002�~3��19��2003�~9��25��Network Appliance, Inc.System and method for determining changes in two snapshots and for transmitting changes to destination snapshotUS200400984252003�~9��11��2004�~5��20��Sybase, Inc.Database System Providing Improved Methods For Data ReplicationUSRE341001990�~2��2��1992�~10��13��Seagate Technology, Inc.Data error correction systemWO1989010594A11989�~4��19��1989�~11��2��Amdahl CorporationA file system for a plurality of storage classes�D�M�Q�ޥ��ѦҤ��m1Administration Guide found at http://www.openafs.org/pages/doc/AdminGuide/auagd010.htm, visited on Mar. 2, 2005.2Akyurek, Sedat, Placing Replicated Data to Reduce Seek Delays, Department of Computer Science, University of Maryland, UMIACS-TR-91-121, CS-TR-2746, Aug. 1991.3Basilico, et al., Error Correction System Using "Shadow Memory, " IBM Technical Disclosure Bulletin, May 1984, pp. 5792-5793.4Bitton, Dina, Disk Shadowing, Proceedings of the 14<SUP>th </SUP>VLDB Conference, LA, CA (1988).5Bitton, Dina, Disk Shadowing, Proceedings of the 14<SUP>th </SUP>VLDB Conference, LA, CA 1988.6Blasgen, M.W. et al., System R:An architectural Overview, Reprinted from IBM Systems Journal vol. 20, No. 1, 1981 (C) 1981, 1999.7Borenstein, Nathaniel S., CMU's Andrew project a retrospective, Communications of ACM, (39)12, Dec. 1996.8Brown, Mark R. et al., The Alpine file system, ACM Transactions on Computing Systems, 3(4):261-293, Nov. 1985.9Chaudhuri, Surajit, et al., Self-Tuning Technology in Microsoft SQL Server, Data Engineering Journal 22, 2 1999 pp. 20-27.10Chen, Peter M., et al., An Evaluation of Redundant Arrays of Disks Using an Amdahl 5890 Performance Evaluation, pp. 74-85, 1990.11Chutani, Sailesh, et al., The Episode file system, In Proceedings of the USENIX Winter 1992.12Clark, B.E., et al., Application System/400 Performance Characteristics, IBM Systems Journal, 28(3): 407-423, 1989.13Common Internet File System (CIFS) Version: CIFS-Spec 0.9, Storage Networking Industry Association (SNIA), Draft SNIA CIFS Documentation Work Group Work-in-Progress, Revision Date: Mar. 26, 2001.14Coyne, Robert A., et al., Storage Systems for National Information Assets, Proc. Supercomputing 92, Minneapolis, Nov. 1992, pp. 626-633.15Data Sheet for the Check Point Software Technologies product Flood-Gate-1 (1997).16David Hitz et al. TR3002 File System Design for a NFS File Server Appliance published by Network Appliance, Inc., Jul. 9, 2001.17Dibble, Peter C., et al., Beyond Striping: The Bridge Multiprocessor File System, Computer Science Department, University of Rochester, Aug. 11, 1989.18Douglis, Fred, et al., A comparison of two distributed systems: Amoeba and Sprite-Computing Systems, 4(4), Fall 1991, pp. 353-385 ?{copy of article I have has no date or cite}.19Fielding et al. (1999) Request for Comments (RFC) 2616, HTTP/1.1.20Finlayson, Ross S., et al., Log Files: An Extended File Service Exploiting Write-Once Storage Department of Computer Science, Stanford University, Report No. STAN-CS-87-1177, Sep. 1987.21Gait, Jason, Phoenix: A Safe In-Memory File System. Communications of the ACM, 33(1):81-86, Jan. 1990.22Gray, Jim, et al., The Recovery Manager of the System R Database Manager, ACM Computing Surveys, (13)2:223-242 1981.23Hartman, John H. et al., Performance Measurements of a Multiprocessor Sprite Kernel, Proceedings of the USENIX Conference, 1990.24Hecht, Matthew S., et al. Shadowed Management of Free Disk Pages with a Linked List, ACM Transactions on Database Systems, 8/4, Dec. 1983, pp. 503-514.25Hitz, Dave et al., File System Design for an NFS File Server Appliance, Technical Report 3002, Rev. C395, presented Jan. 19, 1994.26Howard, John H, et al. Scale and Performance in a Distributed File System, Carnegie Mellon University, CMU-ITC-87-068, Aug. 5, 1987.27Howard, John H., An Overview of the Andrew File System, Carnegie Mellon University, CMU-ITC-88-062 1988.28Howard, John, H. et al., Scale and Performance in a Distributed File System, ACM Trans. Computer System, 6(1), Feb. 1988 pp. 51-81.29Howard, John, H. et al., Scale and performance in a distributed file system, ACM Trans. Computer. System., 6(1), Feb. 1988 pp. 51-81.30Howard, John, H. et al., Scale and Performance in a Distributed File System, Carnegie Mellon University, CMU-ITC-87-068, Aug. 1987.31Isomaki, Markus, Differentiated Service for the Internet, Department of Technical Physics and Mathematics, May 9, 1998.32Kazar, Michael L., et al., Decorum File System Architectural Overview, USENIX Summer Conference, Anaheim, California, 1990.33Kazar, Michael Leon, Synchronization and Caching Issues in the Andrew File System, Carnegie Mellon University, CMU-ITC-88-063.34Kemper, Alfons, et al., Performance Tuning for SAP R/3, Data Engineering Journal 22, 2 1999 pp. 33-40.35Kent, Jack et al., Optimizing Shadow Recovery Algorithms, IEEE Transactions on Software Engineering, 14(2): 155-168, Feb. 1988.36Kistler, et al., Disconnected Operation in the Coda File System, ACM Transactions on Computer Systems, vol. 10, No. 1, Feb. 1992, pp. 3-25.37Lorie, RA, Shadow Page Mechanism, IBM Technical Disclosure Bulletin, Jun. 1986, pp. 340-342.38Lorie, Raymond, A, Physical integrity in a large segmented database, ACM Trans. Database Systems, (2)1:91-104, Mar. 1977.39Lorie, Raymond, A. Physical Integrity in a Large Segmented Database, ACM Trans. Database Syst., vol. 2, Mar. 1977, pp. 91-104.40McKusick, Marshall Kirk, et al., A Fast File System for UNIX, Computer Science Division, Department of Electrical Engineering and Computer Sciences, Univ. of CA, Berkley, Feb. 18, 1994.41Miller, Ethan L., et al., RAMA:A File System for Massively Parallel Computers, 12<SUP>th </SUP>IEEE Symposium on Mass Storage Systems, Monterey CA, Apr. 1993, pp. 163-168.42Moons, Herman et al., Location-Independent Object Invocation in Open Distributed Systems, Autumn 1991 EurOpen Technical Conference and Exhibition, pp. 287-300 (Sep. 16-20, 1991).43Muller, Keith, et al., A High Performance Multi-Structured File System Design, In Proceedings of the 13th ACM Symposium on Operating Systems Principles, Oct. 1991, pp. 56-67.44Muller, Keith, et al., A High Performance Multi-Structured File Systems Design, In Proceedings of the 13th ACM Symposium on Operating Systems Principles, Oct. 1991, pp. 56-67.45Ousterhout, John et al., Beating the I/O Bottleneck: A Case for Log-Structured File Systems, Technical Report, Computer Science Division, Electrical Engineering and Computer Sciences, University of California at Berkeley, Oct. 30, 1988.46Ousterhout, John K. et al., The Sprite Network Operating System, Computer Science Division, Department of Electrical Engineering and Computer Sciences, Univ. of CA, Berkley, Nov. 19, 1987.47Ousterhout, John, A Brief Retrospective On The Sprite Network Operating System, found at http://www.cs.berkeley.edu/projects/sprite/retrospective.html,visited on Mar. 11, 2005.48Ousterhout, John, Why Aren't Operating Systems Getting Faster as Fast as Hardware?, Digital WRL Technical Note TN-11, Oct. 1989.49Patterson, D. et al., A Case for Redundant Arrays of Inexpensive Disks (RAID),<SUB>-</SUB>SIGMOD International Conference on Management of Data, Chicago, IL, USA, Jun. 1-3, 1988, SIGMOD Record (17)3:109-16 (Sep. 1988).50Patterson, D., et al., A Case for Redundant Arrays for Inexpensive Disks (RAID),<SUB>-</SUB>Technical Report, CSD-87-391, Computer Science Division, Electrical Engineering and Computer Sciences, University of California at Berkeley 1987.51Patterson, D., et al., A Case for Redundant Arrays of Inexpensive Disks (RAID),<SUB>-</SUB>SIGMOD International Conference on Management of Data, Chicago, IL, USA, Jun. 1-3, 1988, SIGMOD Record (17)3:109-16 Sep. 1988.52Patterson, D., et al., A Case for Redundant Arrays of Inexpensive Disks (RAID),<SUB>-</SUB>Technical Report , CSD-87-391, Computer Science Division, Electrical Engineering and Computer Sciences, University of California at Berkeley (1987).53Peterson, Zachary Nathaniel Joseph, Data Placement for Copy-on-Write Using Virtual Contiguity, University of CA, Santa Cruz, Master of Science in Computer Science Thesis, Sep. 2002.54Peterson, Zachary Nathaniel Joseph, Data Placement for Copy-on-Write Using Virtual Contiguity, University of CA, Santa Cruz, Master's Thesis for the Department of Science in Computer Science, Sep. 2002.55Quinlan, Sean, A Cached WORM File System, Software-Practice and Experience, 21(12):1289-1299 (1991).56Quinlan, Sean, A Cached WORM File System, Software-Practice and Experience, 21(12):1289-1299 1991.57Redundant Array of Independent Disks, from Wikipedia, the free encyclopedia, found at http://en.wikipedia.org/wiki/RAID, visited on Mar. 9, 2005.58Rosenberg, J., et al., Stability in a Persistent Store Based on a Large Virtual Memory, In Security and Persistence, Rosenber, J. & Keedy, J.L. (ed), Springer-Verlag (1990) pp. 229-245.59Rosenblum, Mendel, et al, The Design and Implementation of a Log-Structured File System Jul. 24, 1991 pp. 1-15.60Rosenblum, Mendel, et al. The Design and Implementation of a Log-Structured File System Jul. 24, 1991 pp. 1-15.61Rosenblum, Mendel, et al., The Design and Implementation of a Log-Structured File System, , In Proceedings of ACM Transactions on Computer Systems, (10)1:26-52, Feb. 1992.62Rosenblum, Mendel, et al., The Design and Implementation of a Log-Structured File System, In Proceedings of ACM Transactions on Computer Systems, (10)1:26-52, Feb. 1992.63Rosenblum, Mendel, et al., The LFS Storage Manager, Computer Science Division, Electrical Engin. And Computer Sciences, Univ. of CA, presented at Summer '90 USENIX Technical Conference, Anaheim, CA Jun. 1990.64Rosenblum, Mendel, et al., The LFS Storage Manager, Computer Science Division, Electrical Engineering And Computer Sciences, Univ. of CA, presented at Summer '90 USENIX Technical Conference, Anaheim, CA Jun. 1990.65Rosenblum, Mendel, The Design and Implementation of a Log-Stuctured File System, 1992, pp. 1-93.66Sandberg, Russel et al., Design and implementation of the Sun Network Filesystem. In Proc. Summer 1985 USENIX Conf., pp. 119-130, Portland OR (USA), Jun. 1985.67Santry, Douglas S., et al., Deciding When to Forget in the Elephant File System, Operating Systems Review, 34(5), (Dec. 1999) pp. 110-123.68Satyanarayanan, M., et al, Coda: A highly available file system for a distributed workstation environment. IEEE Transactions on Computers, 39(4):447-459, 1990.69Satyanarayanan, M., et al., The ITC Distributed File System: Principles and Design, In Proceedings of the 10th ACM Symposium on Operating Systems Principles, (19)5:56-67, Dec. 1985.70Satyanarayanan, Mahadev, Scalable, Secure, and Highly Available Distributed File Access, Computer May 1990: 9-21.71Satyanarayanan,.M.. A survey of distributed file-systems. Annual Review of Computing Science, 4(73-104), 1989.72Schiefer, Berni, et al., DB2 Universal Database Performance Tuning, Data Engineering Journal 22, 2 1999 pp. 12-19.73Seltzer, Margo I., et al., Journal Versus Soft Updates: Asynchronous Meta-Data Protection in File Systems, Proceedings of 200 USENIX Annual Technical Conference, Jun. 18-23, 2000.74Shasha, Dennis, Tuning Time Series Queries in Finance: Case Studies and Recommendations, Data Engineering Journal 22, 2 1999 pp. 41-47.75Sidebotham, Bob, Volumes: The Andrew File System Data Structuring Primitive, EEUG Conference Proceedings, Manchester, UK, Autumn 1986.76Subramanian, Muralidhar, et al., Performance Challenges in Object-Relational DBMSs, Data Engineering Journal 22, 2 1999 pp. 28-32.77U.S. Appl. No. 09/127,497, filed Nov. 22, 2001, Steven R. Kleiman et al.78U.S. Appl. No. 09/891,195, filed Dec. 2002, Kayuri Patel et al.79U.S. Appl. No. 09/932,578, filed Jun. 27, 2002, Blake Lewis et al.80U.S. Appl. No. 10/100,434, filed Sep. 2003, Raymond C. Chen et al.81U.S. Appl. No. 10/100,879, filed Sep. 2003, Stephen L. Manley et al.82U.S. Appl. No. 10/100,950, filed Sep. 2003, Stephen L. Manley et al.83U.S. Appl. No. 10/100,967, filed Sep. 2003, Michael L. Federwisch et al.84U.S. Appl. No. 10/104,694, filed Sep. 2003, Andy C. Kahn et al.85U.S. Appl. No. 10/126,822, filed Apr. 2002, Michael L. Federwisch et al.86User Guide found at http://www.openafs.org/pages/doc/UserGuide/auusg004.htm, visited on Mar. 2, 2005.87Weikum, Gerhard, et al., Towards Self-Tuning Memory Management for Data Servers, Data Engineering Journal 22, 2 1999 pp. 3-11.88Welch, Brent B., et al., Pseudo Devices: User-Level Extensions to the Sprite File System, Computer Science Division, Department of Electrical Engineering and Computer Sciences, Univ. of CA, Berkley, Apr. 1988.89Welch, Brent B., et al., Pseudo-File-Systems, Computer Science Division, Department of Electrical Engineering and Computer Sciences, Univ. of CA, Berkley, Oct. 1989.90West, Michael, et al., The ITC Distributed File System: Prototype and Experience, Carnegie-Mellon University, Technical Report CMU-ITC-040, Mar. 1985.91Wittle, Mark, et al., LADDIS: The next generation in NFS file server benchmarking, USENIX Association Conference Proceedings, Apr. 1993.92Zayas, Edward R., AFS-3 Programmer's Reference: Architectural Overview, Transarc Corporation, Pittsburgh, PA, 1.0 edition 1991.�Q�H�U�M�Q�ޥ� �ޥΥ��M�Q�ӽФ���o�G��� �ӽЪ��M�Q�W��US83807642009�~6��30��2013�~2��19��Hitachi, Ltd.File control system and file control computer for use in said system������l�Ϥ�Google ���� - Sitemap - USPTO �j�q�U�� - ���p�v�F�� - �A�ȱ�� - ���� Google �M�Q - �N���^�X��ƬO�Ѭ��ӷ~�M�Q��Ʈw (IFI CLAIMS Patent Services) ����©2012 Google