Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
Patent 5819292 Issued on October 6, 1998. Estimated Expiration Date: October 6, 2015. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
A method is disclosed for maintaining consistent states of a file system. The file system progresses from one self-consistent state to another self-consistent state. The set of self-consistent blocks on disk that is rooted by a root inode is referred to as a consistency point. The root inode is stored in a file system information structure. To implement consistency points, new data is written to unallocated blocks on disk. A new consistency point occurs when the file system information structure is updated by writing a new root inode into it. Thus, as long as the root inode is not updated, the state of the file system represented on disk does not change. The method also creates snapshots that are user-accessible read-only copies of the file system. A snapshot uses no disk space when it is initially created. It is designed so that many different snapshots can be created for the same file system. Unlike prior art file systems that create a done by duplicating an entire inode file and all indirect blocks, the method of the present invention duplicates only the inode that describes the inode file. A multi-bit free-block map file is used to prevent data referenced by snapshots from being overwritten on disk.
Other References
Bach, "The Design of the UNIX Operating System", Prentice-Hall, 1986, pp. 38-90 and 325-329, Jan. 1986
Beach, Richard J., et al., "The Message is The Medium: Multiprocess Structuring of an Interactive Paint Program", Computer Graphics, vol. 16, No. 3, Jul. 1982, pp. 277-287
Britton, Dianne E. et al., "A Interprocess Communication Facility for Distributed Applications", RCA Laboratories, David Sarnoff Research Center. Princeton, N.J., Copyright 1980 IEEE, Jan. 1980
Carr, Robert et al., The Power of PenPoint, Ch 5, the Class Manager, Copyright 1991, Addison-Wesley, Jan. 1991
Chao, Chia et al., "MIME: A High Performance Storage Device With Strong Recovery Guarantees", Hewlett-Packard Co, Mar. 18, 1992
Charlton, David, The Thoth System: Multiprocess Structuring and Portability, Ch2 Thoth Program Environment, and Ch 3: THoth Kernel Design, (1982, North-Holland), Jan. 1982
Cohen, Jacques, Garbage Collection of Linked Data Structures < Department of Physics, Brandeis University, Waltham, Ma, Computing Surveys, vol. 13, No. 3, Sep. 1981
Deitel, An Introduction to Operating Structures, Addison-Wesley, Jan. 1984, pp. 302-334
de Jonge, Wiebrand et al., The Logical Disk, A New Approach to Inmproving File Systems, Jan. 1984, p. 1-14, unpublished
English et al., Loge: A Self-Organizing Disk Controller, Software and Systems Laboratory, Jan. 1991 (Hewlett-Packard
Anonymous, File Systems, Chapter 5, pp. 251-273, Jan. 1995
Mulqueen, John T., Product Analysis Review, Communications Week, vol. 452, pp. 25, May 3, 1993
Hitz et al., File System for an NFS File Server Appliance, Abstract only from INSPEC Abstravt # C9502-6120-020, Proceedings of the 1994 UNIX Winter Conference, 17-21 Jan. 1994
Simpson, David, "`Appliances` Take Over File Server Role", Digital News and Review, vol. 11, No. 6, pp. 1-2, Mar. 21, 1994
Chutani et al, "The Episode File System", USENIX--Winter 1992, pp. 43-60
Tan, et al., "SOS--Stan's Own Server: A NFS File Server for the IBM PC," Computer Science Research Department, Information and Computing Sciences Division, Lawrence Berkeley Laboratory, Aug. 17, 1988
Sandberg, "The Sun Network File System: Design, Implementation and Experience," Sun Microsystems, Inc. Technical Report, 1986
Hitz, "A System Administrator's Performance Monitor for Tuning NFS Network Servers," Auspex Systems, Inc. Technical Report 7, May 1991
Nelson, Benchmark Methodology and Preliminary Performance Specifications for the Auspect NS5000 Network Server, Auspex Systems, Inc. Technical Report 2, Oct. 1989
Nelson, et al., "How and Why SCSI Is Better than IPI for NFS," Auspex Systems, Inc. Technical Report 6, 2nd edition, Jul. 1992
Schroder, "PEACE: The Distributed SUPRENUM Operating System," Parallel Computing, vol. 7 (1988) pp. 325-333
Malcolm, "A Process Abstraction and its Application," Proc. Eighth Manitoba Conference on Numerical Math and Computing, University of Manitoba at Winnipeg, 1978, pp. 33-50
Nelson, et al., "The Myth of MIPS for I/O: An Overview of Functional Multiprocessing for NFS Network Servers," Auspex Systems, Inc., Technical Report 1, 6th edition, 2nd printing, Aug. 1992
Cheriton, et al., "Thoth, a Portable Real-Time Operating System," Communications of the ACM, Feb. 1979, vol. 22, No. 2, pp. 102-115
Cheriton, "Multi-Process Structuring and the Thoth Operating System," Ph.D. Thesis submitted to Department of Computer Science, University of British Columbia at Vancouver, 1979
Chutani, Sailesh, et al., "The Episode File System", USENIX Winter Conference, Jan. 30-24, 1992
Sun Microsystems, "Network Programming Guide", Chapter 4, Remote Procedure Call Programming Guide, Revision A of 27 Mar. 1990, pp. 65-128
Osadzinski, Alex, "The Network File System (NFS)", 8202 Computer Standards & Interfaces, 8 (1988/89) No. 1, pp. 45-48, Amsterdam, The Netherlands
Tannebaum, Andrew S., "Computer Networks" (1988), 2nd Edition, Prentice-Hall, pp. 35, 36, Chap. 9
IEEE Computer, "I/O subsystem", Sep. 1988, pp. 23-25 and 106
Carlson, et al., "HP AdvanceNet: A Growth-Oriented Computer Networking Architectural Strategy", Hewlett-Packard Journal (Oct. 1986), p. 2, pp. 6-10
Tribby, David M., "Network Services for HP Real-Time Computers", Hewlett-Packard Journal (Oct. 1986), pp. 22-27
Hammond, Richard A. Expression with the Series/1 Distributed System, Department of Electrical Engineering, U of Delaware, Newark, Delaware, .COPYRGT. 1980 IEEE
Hanson, Per Brinch (editor), brochure: RC 400 Software Multiprogramming System, Ch 4: Process Communication, A/s Regnecentralen, Copenhagen--Apr. 1969
Hartman, John H., et al., The Zebra Striped Network File System
Hitz, David, Technical Report TR01: An NFS File Server Appliance, Network Appliance Corporation
Hitz, Dave et al., Technical Report: 3002: File System Design for an NFS File Server ApplianceNetwork Appliance, Jan. 19, 1994
Hitz, David, et al., Using Unix as One Component of a Lightweight Distributed Kernel for Multiprocessor File Servers, Auspex Technical Report 5, .COPYRGT.1990 Auspex Systems Inc
Jones, Anita K., et al., StarOS, a Multiprocessor Operating System for the Support of Task Forces, Association for Computing Machinery, 1979, pp. 117-127
Lantz, Keith A., et al., Rochester's Intelligent Gateway, Computer .COPYRGT. 1982 IEEE
Leffler, et al., The Design and Implementation of the 4.3BSD UNIX Operating System, Addison-Wesley, 1989, pp. 187-245
Ousterhout, John, et al., Beating the I/O Bottleneck: A Case for Log-Structured File Systems, Oct. 30, 1988
Patterson, David A., et al., A Case for Redundant Arrays of Inexpensive Disks (RAID), UC Berkeley
Plum, Thomas, Reliable Data Structures in C, section 4.9: Pointers to Functions, .COPYRGT. 1985 Plum Hall, Inc., pp. 4-23 to 4-27
Rashid, Richard F. et al., Accent: A communication oriented network operating system kernel, Department of Computer Science, Carnegie-Mellon University, Pittsburgh, PA .COPYRGT. 981
Ritchie, D.M. The UNIX System: A Stream Input-Output System, AT&T Bell Laboratories Technical Journal, Oct. 1984, vol. 63, No. 8 Part 2, .COPYRGT. 1984 AT&T
Robertazzi, Thomas G., Computer Networks and Systems: Queuing Theory and Performance Evaluation, Ch 1: The Queuing Paradigm, .COPYRGT. 1990 Springer-Verlag
Row, John, Lan Software Links Diverse Machines, OS's, Mini-Micro Systems, Sep. 1965, pp. 141-146
Row, John, et al., Operating System Extensions Link Disparate Systems, Computer Design, Jul. 1984, pp. 171-183
Schwartz, Allan M., et al., LFS--A Local File System for Multiprocessor NFS Network Servers, Auspex Technical Report 4, .COPYRGT. 1989 Auspex Systems, Inc
Seltzer, Margo, et al., An Implementation of a Log-Structured File System for UNIX, 1993 Winter UNIX, San Diego, CA
Seltzer, Margo, File System Performance and Transaction Support, 1992
Sessions, Roger, Class Construction in C and C++ Object Oriented Programming Fundamentals, International Business Machines Corporation, section 4.4: Object Method Inflexibility, .COPYRGT. 1992 Prentice-Hall, NJ
Silberschatz, Abraham, et al., Operating Concepts, Ch 3.7: Interprocess Communication, pp. 127-147, .COPYRGT. 1988 Addison-Wesley Publishing Company, Inc
Sincoskie, W., David, et al., The Series/1 Distributed Operating System: Description and Comments, IEEE, 1980, pp. 579-584
Tanenbaum, Andrew S., Operating Systems Design and Implementation, pp. 251-273
Tweten, David, Hiding Mass Storage Under Unix: NASA's MSS II Architecture, IEEE, 1990, pp. 140-145
Unix System Laboratories, Inc., Unix System V Release 4 Programmer's Guide: STREAMS, section 2: What is STREAMS?, AT & T Unix System Laboratories, Inc., Unix System V Release 4 Programmers's Guide: STREAMS. 1990 Prentice Hall
VRTX Versatile Real-Time Executive for the Microprocessors C: User's Guide, Software Release 1, Document No. 541331001, Apr. 1987
VRTX32/68020 Versatile Real-Time Executive for the MC68020 Microprocessor: User's Guide, Software Release 3, Document No. 592103003, Jan. 1987
Walton, Robert L., Rational for a Queueable Object Distributed Interprocess Communication System, IEEE Transactions on Communications, vol. Com-30, No. 6, Jun. 1982, pp. 1417-1425
Wood, B.J., et al., A Local-Area Network Architecture Based on Message-Passing Operating System Concepts, 7th Conference on Local Computer Networks, Miniapolis, MN, Oct. 1932
Sun Microsystems, Inc., Sun OS5.0 Network Interfaces Programmer's Guide, p. 108, Jun. 199