text:
|Publication number
|Publication type
|Application number
|Publication date
|Jul 11, 2006
|Filing date
|Mar 21, 2003
|Priority date
|Aug 9, 2002
|Fee status
|Also published as
|Publication number
|Raymond C. Chen, Kayuri Patel, Vijayan Rajan
|Original Assignee
|Network Appliance, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (32), Non-Patent Citations (48), Referenced by (79), Classifications (23), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
This application is a continuation-in-part of U.S. patent application Ser. No. 10/216,453 filed on Aug. 9, 2002, entitled STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OJBECTS ON A FILE SYSTEM, by Vijayan Rajan et al., the contents of which are hereby incorporated by reference.
The present invention relates to data backup and restoral and, more particularly restoring a virtual disk from a snapshot.
A storage system is a computer that provides storage service relating to the organization of information on writable persistent storage devices, such as memories, tapes or disks. The storage system may be deployed within a storage area network (SAN) or a is network attached storage (NAS) environment. When used within a NAS environment, the storage system may be embodied as a file server including a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g., the disks. Each "on-disk" file may be implemented as a set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored.
The file server, or filer, may be further configured to operate according to a client/server model of information delivery to thereby allow many client systems (clients) to access shared resources, such as files, stored on the filer. Sharing of files is a hallmark of a NAS system, which is enabled because of semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the filer. The clients typically communicate with the filer by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
In the client/server model, the client may comprise an application executing on a computer that "connects" to the filer over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the filer by issuing file system protocol messages (in the form of packets) to the file system over the network. By supporting a plurality of file system protocols, such as the conventional Common Internet File System (CIFS), the Network File System (NFS) and the Direct Access File System (DAFS) protocols, the utility of the filer may be enhanced for networking clients.
A SAN is a high-speed network that enables establishment of direct connections between a storage system and its storage devices. A SAN arrangement or deployment allows decoupling of storage from the storage system, such as an application server, and placing of that storage on a network. However, the SAN storage system typically manages specifically assigned storage resources. Although storage can be grouped (or pooled) into zones (e.g., through conventional logical unit number or "lun" zoning, masking and management techniques), the storage devices are still pre-assigned by a user, e.g., a system administrator, to the storage system. The SAN may thus be viewed as an extension to a storage bus and, as such, an operating system of the storage system enables access to stored information using block-based access protocols over the "extended bus". In this context, the extended bus is typically embodied as Fibre Channel (FC) or Ethernet media (i.e., network) adapted to operate with block access protocols, such as Small Computer Systems Interface (SCSI) protocol encapsulation over FC or TCP/IP/Ethernet.
Storage virtualization generally involves the pooling of storage resources from multiple storage devices, such as physical disks, typically across a network by one or more storage systems to create a "user-defined volume". The term "volume" as conventionally used in a SAN environment implies a storage entity that is constructed (by a system administrator) by specifying physical disks and extents within those disks via operations that combine those extents/disks into a user-defined volume storage entity. An extent is a set of contiguously addressed blocks (or "slices") of storage within the specified physical disks. Such construction can occur on either the storage device or application server. Storage virtualization is often used as part of a SAN deployment, wherein the user-defined volume appears as a single storage entity to the operating system, regardless of the types of storage devices pooled. Virtualization thus separates the representation of storage to the operating system from the actual physical storage connected over the network.
Storage virtualization has many interpretations, including decoupling of physical disk size limitations and underlying physical structure from a user-defined volume corresponding to a disk or lun. Virtualization may also refer to management of luns, including defining underlying reliability guarantees of the storage. Commonly, this aspect of virtualization is accomplished through explicit mirroring or Redundant Array of Independent (or Inexpensive) Disks (RAID) protection levels to a lun that is formed from the storage pool. That is, the system administrator explicitly defines the underlying reliability guarantees of the constructed user-defined volume. It can be appreciated that this administrative procedure is complex, time consuming and, therefore, costly.
Virtualization may further denote the ability to modify an existing configuration of a lun (e.g., to increase its size) along with the performance characteristics of the lun. However, conventional physical disks and strategies that explicitly construct larger units of storage for use by clients may suffer performance limitations. For example, bandwidth to a user-defined volume constructed through explicit aggregation of a number of disks and/or "slices" (extents) of those disks may be limited by physical constraints of the underlying properties of the constructed volume.
In some virtualization systems, a SAN or block-based data storage model is overlaid onto file-based file system, thereby enabling clients who require the use of block-based addressing to utilize the services of a file server having an appropriate virtualization system. In an exemplary file system, each unit of information associated with a file, including, for example, its name, its owner, time stamps, etc is implemented as a file attribute. Both files and directories have attributes, wherein each attribute may consist of a single data stream. Such an implementation facilitates the addition of new attributes to a file, including data content attributes. Therefore, files and directories may contain multiple data streams, however, each on-disk file must contain at least a default data stream through which the file data is accessed.
In the exemplary WAFL file system, individual files are described by inodes, including, for example, directory inodes, regular inodes and stream inodes. A stream inode represents a named data stream so that multiple data streams may be stored on disks associated with a storage appliance as representations embodying the stream inode type associated with a file. Each stream inode has its own size, file share locks, byte range locks and data blocks; however other file attributes, such as time stamps, group and user ownership information, and access control lists are common for all named data streams and are stored in an on-disk "base inode". The default data stream, along with its size, data blocks, file share locks and byte range locks, is also stored in the base inode. Additionally, the names and file handles of the data streams are stored in a "hidden" directory within the file system that is referenced by the base inode. The hidden directory is represented as a stream_dir inode type. The hidden directory is "invisible" in a directory hierarchy that is viewed by a user (e.g., a client) external to the file system and, thus, is inaccessible through an external file system protocol, such as the Common Internet File System protocol.
In the example of the Write Anywhere File Layout (WAFL) file system, by Network Appliance, Inc., of Sunnyvale, Calif., a file is represented as an inode data structure adapted for storage on disks. Broadly stated, the on-disk format representation of the exemplary WAFL file system is block based using, e.g., 4 kilobyte (KB) blocks and using inodes to describe the files. An inode is a data structure used to store information, such as metadata, about the file. That is, the information contained in an inode may include, e.g., ownership of the file, access permission for the file, size of the file, or other attributes, described further below. The WAFL file system uses a file handle, i.e., an identifier that includes an inode number, to retrieve an inode from disk. The exemplary WAFL file system also uses files to store metadata describing the layout of its file system. These metadata files include, among others, an inode file. The on-disk format structure of the WAFL file system, including inodes and the inode file, is disclosed and described in 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., issued on Oct. 6, 1998 and incorporated by reference as though fully set forth herein.
Specifically, the data section 150 of a regular on-disk inode may include user data or pointers, the latter referencing 4 kilobyte (KB) data block on disk used to store the user data. Each pointer is preferably a logical volume block number which is thereby facilitate efficiency among a file system and/or disk storage layer of an operating system when accessing the data on disks. Given the restricted size (e.g., 128 bytes) of the inode, user data having a size that is less than or equal to 64 bytes is represented in its entirety within the data section of an inode. However if the user data is greater than 64 bytes but less than or equal to 64 kilobytes (KB), then the data section of the inode comprises up to 16 pointers, each of which references a 4 KB block of data on disk. Moreover, if the size of the data is greater than 64 KB but less than or equal to 64 megabytes (MB), then each pointer in the data section 150 of the inode references an indirect inode that contains 1024 pointers, each of which references a 4 kilobyte data block on disk.
Some known storage operating systems contain the capability to generate a snapshot of the file system. In the example of a WAFL-based file system, snapshots are described in TR3002 File System Design for a NFS File Server Appliance by David Hitz et al., published by Network Appliance, Inc. which is hereby incorporated by reference and in above-incorporated 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.
"Snapshot" is a trademark of Network Appliance, Inc. It is used for purposes of this patent to designate a persistent consistency point (CP) image. A persistent consistency point image (PCPI) is a point-in-time representation of the storage system, and more particularly, of the active file system, stored on a storage device (e.g., on disk) or in other persistent memory and having a name or other identifier that distinguishes it from other PCPIs taken at other points in time. A PCPI can also include other information (metadata) about the active file system at the particular point in time for which the image is taken. The terms "PCPI" and "snapshot" shall be used interchangeably through out this patent without derogation of Network Appliance's trademark rights.
A snapshot is a restorable version of a file system created at a predetermined point in time. Snapshots are generally created on some regular schedule. The snapshot is stored on-disk along with the active file system, and is called into a buffer cache of the filer memory as requested by the storage operating system. An exemplary file system inode structure 200 is shown in
When the storage operating system generates a snapshot of a given file system, a snapshot inode is generated as shown in
After a snapshot has been created and file data blocks modified, the storage operating system can reconstruct or "restore" the file system inode structure as it existed at the time of the snapshot by accessing the snapshot inode. By following the pointers contained in the snapshot inode 305 through the inode file indirect block 210, inode 217 and indirect block 219 to the unmodified file data blocks 220A–C, the storage operating system can reconstruct the file system as it existed at the time of creation of the snapshot.
In known restoration techniques from snapshots, the snapshotted files are copied from the snapshot to the active file system. These copies are generated by duplicating inodes and data blocks stored in the snapshot and writing these duplicated blocks and inodes to the active file system. Thus, the snapshot is effectively duplicated into the active file system. A noted disadvantage of such a restore technique is that each inode or data block of the snapshot needs to be copied. Such copying, in the case of a large file system, can require a substantial amount of time and processing power. For example, files may be sized on the order of tens of gigabytes. Similarly, using known file restore techniques from a snapshot, the volume containing the snapshotted file must be large enough to accommodate two full copies of the file, namely, the snapshot and the file in the active file system. In the example of the large file, a volume may not be of sufficient size to accommodate two full copies of the file.
One technique to avoid resource-consuming duplication the entire file system is to use the storage operating system's capabilities to restore on demand. Restore on demand techniques are described generally in U.S. patent application Ser. No. 10/101,901 entitled SYSTEM AND METHOD FOR MANAGING A PLURALITY OF SNAPSHOTS by Hugo Patterson et al. A noted disadvantage of such restore on demand technique is an entire directory tree associated with the file must also be restored. For example, if the desired file to be restored is two directories down, for example, in /foo/bar/file, then the directory /foo and the subdirectory /bar must also be restored. This reduces the efficiency of the file restoration process. Additionally, such restore on demand techniques typically cannot support the restoration of files that include streams or other metadata that are not stored internal to the file but are, stored in a separate data stream associated with the file. Such restore on demand techniques typically utilize the snapshot copying methodology, described above, to restore a particular file. Thus, the noted disadvantages of the snapshot duplication method, e.g., processing overhead and use of file system space, are inherent in these restore on demand techniques.
However, there are instances when the restoration of only a single file from a snapshot is desired. For example, the entire file system may not suffer an error condition, but a single file may become corrupted. Additionally, a user may have modified files but later desires to restore the files to a previous state. In these instances, the restoration of the entire file system is clearly an inefficient approach.
The disadvantages of the prior art are overcome by providing a system and method for quickly restoring a virtual disk (vdisk) from a snapshot to an active file system of a storage system. A vdisk is an encapsulated data container that stores both data and metadata. In the illustrative embodiment, the metadata associated with the vdisk may be stored in data streams associated with a file implementing the vdisk. Thus, in the illustrative embodiment, a vdisk is represented by a base inode and one or more stream inodes. The base inode is associated with storing the data contained within the vdisk, while the stream inodes associated with the various metadata associated with the vdisk. Initially, a determination is made if the vdisk is in the active file system.
If the vdisk has been deleted from the active file system, then a vdisk inode is created and its associated buffer tree is generated which points to the data blocks of the vdisk to be restored. This newly created inode and associated buffer tree is then written to the active file system. The associated stream inode is then copied from the snapshot to the active file system, thereby restoring the vdisk. By avoiding duplication of the data blocks, substantial storage space, processing overhead and time is saved.
If the vdisk exists in the active file system, then the snapshot restoration process duplicates the vdisk's inode into a twin inode and moves the buffer tree of the vdisk to the twin inode. A new inode for the restored vdisk is then generated. A reconciliation process then compares block pointers from the duplicated twin inode and the snapshot inodes. If the block pointers match, then the block pointer is moved from the twin inode into the inode of the restored vdisk in the active file system. If the block pointers and the block not already in the active file system differ, then the block pointer from the snapshot is copied to the active file system. Otherwise, the actual data block is copied from the snapshot to the active file system. At the end of the reconciliation process, the twin inode only contains block pointers to blocks that have changed with respect to the snapshot. After completion of the reconciliation process the associated streams of the vdisk are copied from the snapshot to the active file system. The vdisk is then restored to the active file system.
By not duplicating the numerous data blocks stored in the snapshot, substantial processing time/overhead and storage space is saved. In an alternative embodiment, a determination can be made by the size of the vdisk to be restored. If the vdisk is of a certain size or smaller, the restoration process utilizes a conventional snapshot duplication technique.
The above and further advantages of invention may be better understood by referring to the following description in conjunction with the accompanying drawings in which like reference numerals indicate identical or functionally similar elements:
A. Storage Appliance
When used in a SAN environment, a storage system may be embodied as a multi-protocol storage appliance having a storage operating system that implements a file system and provides for storage virtualization and support for virtual disks (vdisks). An example of a multi-protocol storage appliance that may be advantageously used with the present invention is described in co-pending and commonly assigned U.S. patent application Ser. No. 10/215,917 titled A MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS, by Brian Pawlowski, et al., which application is hereby incorporated by reference as though fully set forth herein.
The multi-protocol storage appliance 500 is illustratively embodied as a storage system comprising a processor 522, a memory 524, a plurality of network adapters 525, 526 and a storage adapter 528 interconnected by a system bus 523. The multi-protocol storage appliance 500 also includes a storage operating system 600 that provides a virtualization system (and, in particular, a file system) to logically organize the information as a hierarchical structure of named directory, file and virtual disk (vdisk) storage objects on the disks 530.
The clients of a SAN-based network environment have a storage viewpoint of blocks or disks. To that end, the multi-protocol storage appliance 500 presents (exports) disks to SAN clients through the creation of logical unit numbers (luns) or vdisk objects. A vdisk object (hereinafter "vdisk") is a special file type that is implemented by the virtualization system and translated into an emulated disk as viewed by the SAN clients. The multi-protocol storage appliance thereafter makes these emulated disks accessible to the SAN clients through controlled exports, as described further herein.
In the illustrative embodiment, the memory 524 comprises storage locations that are addressable by the processor and adapters for storing software program code and data structures associated with the present invention. 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 600, portions of which are typically resident in memory and executed by the processing elements, functionally organizes the storage appliance by, inter alia, invoking storage operations in support of the storage service implemented by the appliance. 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 invention described herein.
The network adapter 525 couples the storage appliance to a plurality of clients 560 a,b over point-to-point links, wide area networks, virtual private networks implemented over a public network (Internet) or a shared local area network, hereinafter referred to as an illustrative Ethernet network 565. For this NAS-based network environment, the clients are configured to access information stored on the multi-protocol appliance as files. Therefore, the network adapter 525 may comprise a network interface card (NIC) having the mechanical, electrical and signaling circuitry needed to connect the appliance to a network switch, such as a conventional Ethernet switch 570. The clients 560 communicate with the storage appliance over network 565 by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
The clients 560 may be general-purpose computers configured to execute applications over a variety of operating systems, including the UNIX� and Microsoft� Windows™ operating systems. Client systems generally utilize file-based access protocols when accessing information (in the form of files and directories) over a NAS-based network. Therefore, each client 560 may request the services of the storage appliance 500 by issuing file access protocol messages (in the form of packets) to the appliance over the network 565. For example, a client 560 a running the Windows operating system may communicate with the storage appliance 500 using the Common Internet File System (CIFS) protocol over TCP/IP. On the other hand, a client 560 b running the UNIX operating system may communicate with the multi-protocol appliance using either the Network File System (NFS) protocol over TCP/IP or the Direct Access File System (DAFS) protocol over a virtual interface (VI) transport in accordance with a remote DMA (RDMA) protocol over TCP/IP. It will be apparent to those skilled in the art that other clients running other types of operating systems may also communicate with the integrated multi-protocol storage appliance using other file access protocols.
The storage network "target" adapter 526 also couples the multi-protocol storage appliance 500 to clients 560 that may be further configured to access the stored information as blocks or disks. For this SAN-based network environment, the storage appliance is coupled to an illustrative Fibre Channel (FC) network 585. FC is a networking standard describing a suite of protocols and media that is primarily found in SAN deployments. The network target adapter 526 may comprise a FC host bus adapter (HBA) having the mechanical, electrical and signaling circuitry needed to connect the appliance 500 to a SAN network switch, such as a conventional FC switch 580. In addition to providing FC access, the FC HBA offloads fiber channel network processing operations for the storage appliance.
The clients 560 generally utilize block-based access protocols, such as the Small Computer Systems Interface (SCSI) protocol, when accessing information (in the form of blocks, disks or vdisks) over a SAN-based network. SCSI is a peripheral input/output (I/O) interface with a standard, device independent protocol that allows different peripheral devices, such as disks 530, to attach to the storage appliance 500. In SCSI terminology, clients 560 operating in a SAN environment are initiators that initiate requests and commands for data. The multi-protocol storage appliance is thus a target configured to respond to the requests issued by the initiators in accordance with a request/response protocol. The initiators and targets have endpoint addresses that, in accordance with the FC protocol, comprise worldwide names (WWN). A WWN is a unique identifier, e.g., a node name or a port name, consisting of an 8-byte number.
The multi-protocol storage appliance 500 supports various SCSI-based protocols used in SAN deployments, including SCSI encapsulated over TCP (iSCSI) and SCSI encapsulated over FC (FCP). The initiators (hereinafter clients 560) may thus request the services of the target (hereinafter storage appliance 500) by issuing iSCSI and FCP messages over the network 585 to access information stored on the disks. It will be apparent to those skilled in the art that the clients may also request the services of the integrated multi-protocol storage appliance using other block access protocols. By supporting a plurality of block access protocols, the multi-protocol storage appliance provides a unified and coherent access solution to vdisks/luns in a heterogeneous SAN environment.
The storage adapter 528 cooperates with the storage operating system 500 executing on the storage appliance to access information requested by the clients. The information may be stored on the disks 530 or other similar media adapted to store information. The storage adapter includes I/O interface circuitry that couples to the disks over an I/O interconnect arrangement, such as a conventional high-performance, FC serial link topology. The information is retrieved by the storage adapter and, if necessary, processed by the processor 522 (or the adapter 528 itself) prior to being forwarded over the system bus 523 to the network adapters 525, 526, where the information is formatted into packets or messages and returned to the clients.
Storage of information on the appliance 500 is preferably implemented as one or more storage volumes (e.g., VOL1–2 550) that comprise a cluster of physical storage disks 530, defining an overall logical arrangement of disk space. 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 writing of data "stripes" across a given number of physical disks in the RAID group, and the appropriate storing of redundant information with respect to the striped data. The redundant information enables recovery of data lost when a storage device fails.
Specifically, each volume 550 is constructed from an array of physical disks 530 that are organized as RAID groups 540, 542, and 544. The physical disks of each RAID group include those disks configured to store striped data (D) and those configured to store parity (P) for the data, in accordance with an illustrative RAID 4 level configuration. However, other RAID level configurations (e.g. RAID 5) are also contemplated. In the illustrative embodiment, a minimum of one parity disk and one data disk may be employed. However, a typical implementation may include three data and one parity disk per RAID group and at least one RAID group per volume.
Within each volume may be stored one or more virtual disks (vdisks). A vdisk is a special file type in a volume that derives from a plain (regular) file, but that has associated export controls and operation restrictions that support emulation of a disk. In the illustrative embodiment, a vdisk is a multi-inode object comprising a special file inode and a set of stream inodes that are managed as a single, encapsulated storage object within a file system of a storage system. As used herein, a set of stream inodes shall be meant as one or more stream inodes. The vdisk illustratively manifests as an embodiment of a stream inode that, in cooperation with the special file inode, creates a new type of file storage object having the capacity to encapsulate specific security, management and addressing (export) information. A vdisk is, thus, an encapsulated data container comprising a data section and one or more metadata sections that may be stored in streams associated with the data section within the file system. An example of a stream inode object that may be advantageously used with the present invention is described in U.S. patent application Ser. No. 09/891,195, now issued as U.S. Pat. No. 6,446,653, titled SYSTEM AND METHOD FOR REPRESENTING NAMED DATA STREAMS WITHIN AN ON-DISK STRUCTURE OF A FILE SYSTEM, by Kayuri Patel et al., which application is incorporated by reference as though fully set forth herein.
B. Storage Operating System
To facilitate access to the disks 530, the storage operating system 600 implements a write-anywhere file system that cooperates with virtualization modules to provide a function that "virtualizes" the storage space provided by disks 530. The file system logically organizes the information as a hierarchical structure of named directory and file objects (hereinafter "directories" and "files") on the disks. Each "on-disk" file may be implemented as set of disk blocks configured to store information, such as data, whereas the directory may be implemented as a specially formatted file in which names and links to other files and directories are stored. The virtualization system allows the file system to further logically organize information as a hierarchical structure of named vdisks on the disks, thereby providing an integrated NAS and SAN appliance approach to storage by enabling file-based (NAS) access to the files and directories, while further enabling block-based (SAN) access to the vdisks on a file-based storage platform.
In the illustrative embodiment, the storage operating system is preferably the NetApp� Data ONTAP™ operating system available from Network Appliance, Inc., Sunnyvale, Calif. that implements a Write Anywhere File Layout (WAFL™) file system. However, it is expressly contemplated that any appropriate storage operating system, including a write in-place file system, may be enhanced for use in accordance with the inventive principles described herein. As such, where the term "WAFL" is employed, it should be taken broadly to refer to any storage operating system that is otherwise adaptable to the teachings of this invention.
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 multi-protocol storage appliance, implement data access semantics, such as the Data ONTAP storage operating system, which is implemented as a microkernel. 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. The term "metadata" refers to data that is generated, stores and managed by the storage operating system, and its associated file system layer, to maintain the structure and organization of the file system. Metadata can include, for example, security attributes associated with files or data containers. As the storage operating system and its associated file system generate metadata, it is referred to herein as "internally generated data." Conversely, all other data stored by the file system, including, for example, data generated by network clients and/or other processes in the storage operating system is referred to as "externally generated data."
In addition, it will be understood to those skilled in the art that the inventive technique described herein may apply to any type of special-purpose (e.g., storage serving appliance) or general-purpose computer, including a standalone computer or portion thereof, embodied as or including 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 or host computer. The term "storage system" should therefore be taken broadly to include such arrangements in addition to any subsystems configured to perform a storage function and associated with other equipment or systems.
An iSCSI driver layer 628 provides block protocol access over the TCP/IP network protocol layers, while a FC driver layer 630 operates with the FC HBA 526 to receive and transmit block access requests and responses to and from the integrated storage appliance. The FC and iSCSI drivers provide FC-specific and iSCSI-specific access control to the luns (vdisks) and, thus, manage exports of vdisks to either iSCSI or FCP or, alternatively, to both iSCSI and FCP when accessing a single vdisk on the multi-protocol storage appliance. In addition, the storage operating system includes a disk storage layer 640 that implements a disk storage protocol, such as a RAID protocol, and a disk driver layer 650 that implements a disk access protocol such as, e.g., a SCSI protocol.
Bridging the disk software layers with the integrated network protocol stack layers is a virtualization system 655 that is implemented by a file system 665 interacting with virtualization modules illustratively embodied as, e.g., vdisk module 670 and SCSI target module 660. It should be noted that the vdisk module 670, the file system 665 and SCSI target module 660 can be implemented in software, hardware, firmware, or a combination thereof. The vdisk module 670 interacts with the file system 665 to enable access by administrative interfaces in response to a system administrator issuing commands to the multi-protocol storage appliance 500. In essence, the vdisk module 670 manages SAN deployments by, among other things, implementing a comprehensive set of vdisk (lun) commands issued through a user interface by a system administrator. These vdisk commands are converted to primitive file system operations ("primitives") that interact with the file system 665 and the SCSI target module 660 to implement the vdisks.
The SCSI target module 660, in turn, initiates emulation of a disk or lun by providing a mapping procedure that translates luns into the special vdisk file types. The SCSI target module is illustratively disposed between the FC and iSCSI drivers 628, 630 and the file system 665 to thereby provide a translation layer of the virtualization system 655 between the SAN block (lun) space and the file system space, where luns are represented as vdisks. By "disposing" SAN virtualization over the file system 665, the multi-protocol storage appliance reverses the approaches taken by prior systems to thereby provide a single unified storage platform for essentially all storage access protocols.
The file system 665 is illustratively a message-based system; as such, the SCSI target module 660 transposes a SCSI request into a message representing an operation directed to the file system. For example, the message generated by the SCSI target module may include a type of operation (e.g., read, write) along with a pathname (e.g., a path descriptor) and a filename (e.g., a special filename) of the vdisk object represented in the file system. The SCSI target module 660 passes the message into the file system 665 as, e.g., a function call, where the operation is performed.
The file system 665 illustratively implements the WAFL file system having an on-disk format representation that is block-based using, e.g., 4 kilobyte (KB) blocks and using inodes to describe the files. The WAFL file system uses files to store metadata describing the layout of its file system; these metadata files include, among others, an inode file. A file handle, i.e., an identifier that includes an inode number, is used to retrieve an inode from disk. A description of the structure of the file system, including on-disk inodes and the inode file, is provided in the above-incorporated U.S. Pat. No. 5,819,292.
SAN clients typically identify and address disks by logical numbers or luns. However, the automated storage virtualization technique allows system administrators to manage vdisks and their addressing by logical names. To that end, the vdisk module 670 of the multi-protocol storage appliance maps logical names to vdisks. For example when creating a vdisk, the system administrator "right size" allocates the vdisk and assigns it a name that is generally meaningful to its intended application (e.g., /vol/vol0/database to hold a database).
The storage virtualization technique addresses the issue of performance limitations by defining a vdisk abstraction of a disk "on top of" the file system. This abstraction aggregates the bandwidth of the underlying disks by providing greater bandwidth for the vdisk than that obtainable by the concatenation of a smaller number of disk drives needed solely to satisfy space requirements. Additionally, delayed allocation policies and write coalescing of the file system can serve to optimize the bandwidth of the vdisk compared to a pure physical implementation. As noted, layering of the vdisk on top of the file system also allows the vdisk to inherit the reliability configuration (e.g., RAID 4 and/or synchronous mirroring) of the underlying volume.
Included within the file system 665 is a set of snapshot processes 675, which implement the inherent snapshot capabilities of the file system including, e.g., the vdisk restoration process, described below. The inherent snapshot capabilities of the WAFL file system are further described in the above-incorporated TR3002 File System Design for an NFS File Server Appliance and U.S. Pat. No. 5,819,292. The snapshot processes include a vdisk restore function that implements the novel vdisk restoration system and method.
The storage system provides an on-disk representation of a vdisk stored on, for example, a multi-protocol storage appliance.
The lun inode 710 is the special file inode that functions as a main container for storing data associated with the vdisk. That is, the lun inode comprises a data section that may store the actual (user or application) data or pointers referencing 4 KB data blocks on disk used to store the data. The data stored in this "default" container can be retrieved (read) and stored (written) by a client using conventional block access protocols, such as the SCSI protocol. When appropriately configured, a vdisk may also be accessed using conventional file-level access protocols, such as the NFS protocol. In this configuration, a vdisk "appears" to be a regular file for such accesses. The lun inode 710 also comprises a metadata section 712 containing metadata such as the type 713 (i.e., a special vdisk type) and size 716 of the vdisk that, upon creation of the inode, is zero. A flag_stream flag 714 identifies the lun inode 710 as having not only a default data container section 718 but also one or more stream "sections", as provided by stream_dir inode 720.
In order to access the stream_dir inode 720, the pointer of xinode field 715 in lun inode 710 is modified to reference that inode. The stream_dir inode 720 comprises a metadata section 722 that includes a type (stream_dir) field 724 and an xinode field 725 that references another on-disk inode structure containing, e.g., access control (such as CIFS permission) information associated with the vdisk. The inode 720 also includes a data section 726 containing a pointer 728 that references a stream directory data block associated with the vdisk, such as stream directory block 730. The stream directory block 730 comprises a data section 732 that includes a plurality of entries, each containing an external representation of a stream inode along with mapping information (i.e., the inode number) for that inode. One of those entries, entry 734, contains mapping information (e.g., a pointer) that references an attributes (stream) inode 740.
The attributes inode 740 comprises a metadata section 742 that includes a type (stream) field 743 and a data section 744 that functions as a persistent store for holding various named attributes associated with the vdisk. Attributes are an implementation mechanism that is internal to the file system and not managed by users. These attributes include information that allows the vdisk to be exported as a logical unit number (lun) to, e.g., SAN clients. In addition, the attributes include information that allow the encapsulated vdisk to persist, e.g., over reboot operations, and enable management of the vdisk as a single disk object in relation to the SAN clients.
Examples of the attributes include, among others, geometry 745, SCSI serial number 746, space reservation 747, state (on-line/off-line) 748 and export information 749, the latter controlling access to the vdisk by, e.g., specifying a list of initiators to which the vdisk is exported (i.e., those that have permissions to access to the vdisk). The geometry information 745 pertains to the physical geometry of the vdisk needed for emulation of a disk or lun. For example, the vdisk size (as provided by a user) is algorithmically converted to geometry information (e.g., cylinder size), which may be returned to a SAN client as representative of the disk or lun. Although the geometry 745 is illustratively shown as persistently stored in the attributes inode 740, in an alternate embodiment, the geometry information 745 may be calculated dynamically (on-the-fly).
Other entries 736, 738 of the stream directory block 730 contain mapping information (e.g., pointers) that references other stream inodes, such as a lunmap (stream) inode 750 and a persistent reservations (stream) inode 760. The lunmap inode 750 comprises a metadata section 752 that includes a type (stream) field 754 and a data section 756 that functions as a persistent store for holding a list 758 of name-value pairs. In the illustrative embodiment, the name is an initiator group (igroup) name and the value is a lun identifier (ID). An igroup is a logical named entity that is assigned to one or more addresses associated with one or more initiators (depending upon whether a clustered environment is configured). These addresses may comprise WWN addresses or iSCSI IDs. A "lun map" command is used to export one or more vdisks to the igroup, i.e., make the vdisk(s) "visible" to the igroup. In this sense, the "lun map" command is equivalent to an NFS export or a CIFS share. The WWN addresses or iSCSI IDs thus identify the clients that are allowed to access those vdisks specified by the lun map command.
The persistent reservations inode 760 comprises a metadata section 762 that includes a type (stream) field 764 and a data section 766 that functions as a persistent store for holding a list 770 of persistent reservation records that provide ownership and access information relating to the vdisk. Persistent reservations are described in SCSI-3 Primary Commands-3, by Committee T10 of the National Committee for Information Technology Standards. Each persistent reservation record comprises a nexus (initiator ID) 772, a reservation key (WWN) 774 and a reservation type (shared, exclusive, read, write) 776.
In sum, the vdisk storage object is structured to contain data and metadata needed to control and manage that object in a single storage entity that is easy to manage within the framework of a storage operating system executing on a multi-protocol storage appliance. To that end, the vdisk (data and attributes) is managed as a single encapsulated unit within the file system.
Specifically, the binding between the data (file inode) and stream inodes of a vdisk creates a single encapsulated object that is "self-describing" in that it contains all the information necessary to, e.g., access that object. Thus, no "external" information is needed to describe the vdisk object. It should be noted that there is no binding between a vdisk and disk blocks during write operations (or read operations when defragmentation takes place transparently "on-the-fly"). The disk blocks are mapped to logical block addresses of an object residing in the file system. In this case, the file system functions as a dynamic volume manager. This decoupling is a result of using the file system as an underlying storage manager.
C. Vdisk Restoration from a Snapshot
The procedure 800 performed by the file system of the storage operating system, or its associated snapshot processes, in restoring a vdisk from a snapshot is shown in
The procedure begins in step 802 and then proceeds to step 805, where the vdisk restore process first locks the associated snapshot. This locking can be accomplished using known file system file locking mechanisms. The locking of the snapshot ensures that the snapshot will not be modified or deleted while the vdisk is being restored. Next, in step 810, the inode associated with the vdisk to be restored is locked against access. Such locking can be accomplished by, for example, setting a flag within the lun inode that is manipulated by an appropriate operating system lock manager. The file system layer and its associated processes recognize the flag and thereby restrict access to the inode. In certain embodiments, select file system processes or functions may have access to the lun inode. For example, a process or function for determining attributes of the vdisk associated with the lun inode may be permitted to access the inode to determine file system parameters. Similarly, in certain alternative embodiments, a command or process to delete the vdisk may be permitted to execute even though the lun inode is locked against access.
The vdisk restore process then creates a tracking entry (step 815). This tracking entry, described further below, is utilized to determine which inodes and block pointers have been compared during the remaining portion of the restore process. Next, in step 820, the restore process determines what type of vdisk is being restored. By "type of vdisk" it is meant, in the illustrative embodiment, whether the vdisk exists in the active file system, is absent from the active file system, or is a small vdisk.
If the vdisk to be restored is a small vdisk, using an administrator defined definition of "small," the process performs the conventional copying restore technique by duplicating the inodes' block pointers, data blocks and streams from the snapshot to the active file system (step 825). If the vdisk is absent from the active file system (i.e. the vdisk has been deleted from the active file system), the restore process performs the empty file routine (routine 1000). Otherwise, the vdisk exists in the active file system and is not a small vdisk. In such a case, the restore process proceeds to step 1100 and performs the standard vdisk restore routine.
The process 1100 performed by the restore process for a vdisk that needs to undergo the above-referenced reconciliation process is shown in
Next, in step 1125, an inode and associated buffer trees are allocated for use during the restoration process. The inode that is allocated is a new inode for the restored vdisk in the active file system. Additionally, the buffer trees of the existing vdisk are copied to a twin. This twin, thus, has a twin inode and associated buffer trees. The restore process then proceeds to do the reconciliation process in step 1200. This reconciliation process, described below, walks through the buffer trees of the twin and the snapshot and generates the restored file. Next, in step 1130, the streams associated with the vdisk are then copied to the active file system. As noted above, the streams associated with a given vdisk are relatively small, and therefore do not generate a noted performance degradation of the storage appliance. In step 1135, the twin inode is turned into a "zombie" inode. Zombie inodes are later processed by the file system for reallocation. Such zombie processing is described in U.S. patent application Ser. No. 09/642,066, now issued as U.S. Pat. No. 6,751,635 entitled MANIPULATION OF ZOMBIE FILES AND EVIL-TWIN FILES by Raymond C. Chen et al., which is incorporated herein by reference. It should be noted that the use of zombie files is for illustrative purposes only. In alternate embodiments, the twin inode could simply be deleted or otherwise unallocated from the active file system. The tracking entry is then deleted by, for example, freeing memory or data structures associated with the tracking entry (step 1140). The newly created inode of the file system is then unlocked (step 1145). At this point the newly restored file is accessible by the active file system. Then, in step 1150, the snapshot is unlocked. At this point the process is complete (step 115).
The reconciliation process 1200 utilized by the restore process 1100 is shown in
To again summarize, upon execution of the vdisk restore process, which may be included in the file system or snapshot processes of a storage operating system, the snapshot and inodes are locked against access and tracking entry is created. The vdisk restore process then determines what type of vdisk is being restored. If the file meets a predetermined or user-defined definition of a "small" vdisk, then a conventional snapshot duplication technique can be utilized to restore the vdisk. If the vdisk has been deleted from the active file system, then the restore process generates a buffer tree, which points to the data blocks stored in the snapshot. Once this buffer tree is created, it is written to the active file system. The streams associated with the vdisk in the snapshot are then copied to the active file system, thereby restoring the vdisk.
If the vdisk exists in the active file system, the reconciliation process occurs. After performing a series of verification operations, the restore process allocates a new inode from the restored vdisk and creates a twin inode which contains the inodes associated with the vdisk currently in the active file system. A reconciliation process is then performed whereby a block from a twin inode is then paired to a block in the snapshot. If the blocks are equal, the block from the twin is moved to the active file system. If the blocks are not equal, then the block from the snapshot is copied to the active file system. This reconciliation procedure proceeds until all blocks and the twin snapshot have been compared. At the end of the reconciliation procedure, the twin only contains links and pointers to blocks which have been modified since the time of the snapshot. This twin inode is then turned into a zombie for later processing and deletion. This process thus significantly reduces the number of data blocks that need to be copied from the snapshot to the active file system. By reducing the number of data copies file system space is saved and processing overhead is reduced. After the reconciliation process, the streams associated with the vdisk are then copied from the snapshot to the active file system. At this point, the vdisk has been restored to the active file system and may be unlocked for use.
More generally, the teachings of the present invention may apply to any logical data containers (LDC) implemented in an environment comprising an active store and one or more reference stores. In such embodiments, the active store permits data to be read from and written to it, while the reference stores are read only point in time images of the active store.
The foregoing has been a detailed description of the illustrative embodiment of the invention. Various modifications and additions can be made without departing from the spirit and scope of the invention. For example, it is understood that the various data structures and modes can include additional fields and/or be generated or managed by differing layers of a storage operating system while remaining within the scope of the present invention. Additionally, while this description has been written and referenced to storage appliances, the principles are equally pertinent to all types of computers, including stand alone computers. It should be noted that as used herein, a set of stream inodes may comprise one or more stream inodes. It is expressly contemplated that encapsulated data containers, other than vdisk, may be utilized in accordance with the teachings of the present invention. Further, it is expressly contemplated that the teachings of this invention can be implemented as software, including a computer-readable medium having program instructions executing on a computer, hardware, firmware, or a combination thereof. Accordingly this description is to be taken only by way of example and not to otherwise limit the scope of the invention.
|Cited Patent
|Filing date
|Publication date
|Mar 28, 1983
|Feb 11, 1986
|Allen Bruce S
|Man machine interface
|Sep 8, 1989
|Nov 10, 1992
|Auspex Systems, Inc.
|Parallel i/o network file server architecture
|Jun 26, 1992
|Apr 13, 1993
|Thinking Machines Corporation
|Storage system using multiple independently mechanically-driven storage units
|Dec 20, 1990
|Jan 11, 1994
|International Business Machines Corp.
|Version management system using pointers shared by a plurality of versions for indicating active lines of a version
|Oct 13, 1992
|Oct 11, 1994
|Auspex Systems, Inc.
|Parallel I/O network file server architecture
|Jun 18, 1991
|Nov 29, 1994
|Digital Equipment Corporation
|Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
|Apr 8, 1994
|Jan 16, 1996
|Auspex Systems, Inc.
|Multiple facility operating system architecture
|Oct 11, 1994
|Sep 1, 1998
|Auspex Systems, Inc.
|Parallel I/O network file server architecture
|May 31, 1995
|Oct 6, 1998
|Network Appliance, Inc.
|Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system
|Jul 30, 1997
|Aug 3, 1999
|Auspex Systems, Inc.
|Parallel I/O network file server architecture
|Dec 31, 1997
|Aug 24, 1999
|Crossroads Systems, Inc.
|Storage router and method for providing virtual local storage
|Jun 5, 1995
|Sep 7, 1999
|Network Appliance, Inc.
|Method for providing parity in a raid sub-system using non-volatile memory
|Feb 28, 1997
|Sep 7, 1999
|Network Appliance, Inc.
|Fly-by XOR for generating parity for data gleaned from a bus
|Jun 30, 1998
|Oct 5, 1999
|Network Appliance, Inc.
|Write anywhere file-system layout
|May 31, 1995
|Mar 14, 2000
|Network Appliance, Inc.
|Method for allocating files in a file system integrated with a RAID disk sub-system
|Jun 7, 1995
|May 16, 2000
|Auspex Systems, Inc.
|Multiple software-facility component operating system for co-operative processor control within a multiprocessor computer system
|Feb 27, 1998
|Aug 15, 2000
|Oracle Corporation
|Method and apparatus for copying data that resides in a database
|Jul 21, 1999
|Oct 24, 2000
|Network Appliance, Inc.
|Method for allocating files in a file system integrated with a raid disk sub-system
|Jun 29, 1998
|Mar 20, 2001
|Kabushiki Kaisha Toshiba
|Computer system capable of restarting system using disk image of arbitrary snapshot
|Sep 14, 1998
|Sep 11, 2001
|Network Appliance, Inc.
|Write anywhere file-system layout
|Dec 16, 1999
|Jan 22, 2002
|Adaptec, Inc.
|System and method for disk control with snapshot feature including read-write snapshot half
|Sep 27, 2001
|Jul 23, 2002
|Crossroads Systems, Inc.
|Storage router and method for providing virtual local storage
|Jun 26, 2001
|Sep 10, 2002
|Bs&B Safety Systems, Inc.
|Rupture disk assembly
|Dec 2, 1999
|Apr 15, 2003
|Emc Corporation
|Computer data storage backup with tape overflow control of disk caching of backup data stream
|Feb 15, 2002
|Jun 8, 2004
|International Business Machines Corporation
|Deferred copy-on-write of a snapshot
|Jun 7, 2002
|Feb 15, 2005
|Network Appliance, Inc.
|Multiple concurrent active file systems
|Feb 15, 2002
|Oct 25, 2005
|International Business Machines Corporation
|Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
|Dec 18, 2000
|Aug 15, 2002
|Spinnaker Networks, Inc.
|Mechanism for handling file level and block level remote file accesses using the same server
|Dec 7, 2000
|Aug 22, 2002
|Spinnaker Networks, Inc.
|Method and system for responding to file system requests
|Feb 15, 2002
|Aug 21, 2003
|International Business Machines Corporation
|Dynamic links to file system snapshots
|Mar 19, 2002
|Sep 25, 2003
|Hugo Patterson
|System and method for managing a plurality of snapshots
|Mar 19, 2002
|Sep 25, 2003
|Federwisch Michael L.
|System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
|Akyurek, Sedat, Placing Replicated Data to Reduce Seek Delays, Department of Computer Science, University of Maryland, UMIACS-TR-91-121, CS-TR-2746, Aug. 1991.
|Anthony J. McGregor Department of Computer Science, University of Waikato Dissertation: Block-Based Distributed File Systems Jul. 1997.
|Asante Desktop EN/SC Adapters User's Manual Apr. 1996.
|Asante EN/SC Adapter Family Installation Guide May 1994.
|Bitton, Dina, Disk Shadowing, Proceedings of the 14<SUP>th </SUP>VLDB Conference, LA, CA 1988.
|Chaudhuri, Surajit, et al., Self-Tuning Technology in Microsoft SQL Server, Data Engineering Journal 22, Feb. 1999 pp. 20-27.
|Chutani, Sailesh, et al., The Episode File System, In Proceedings of the USENIX Winter 1992.
|Common 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.
|Coyne, Robert A., et al., Storage Systems for National Information Assets, Proc. Supercomputing 92, Minneapolis, Nov. 1992, pp. 626-633.
|David Hitz et al., "File System Design for a NFS File Server Appliance", Technical Report 3002 by Network Appliance, Inc., Jan. 19, 1994, 23 pgs.
|Fielding et al. (1999) Request for Comments (RFC) 2616, HTTP/1.1.
|Finlayson, 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.
|Gray, Jim, et al., The Recovery Manager of the System R Database Manager, ACM Computing Surveys, (13)2:223-242 1981.
|Hecht, 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.
|Howard, John H., An Overview of the Andrew File System, Carnegie Mellon University, CMU-ITC-88-062 1988.
|Howard, John, H. et al., Scale and Performance in a Distributed File System, ACM Trans. Computer System, 6(1), Feb. 1988 pp. 51-81.
|Howard, John, H. et al., Scale and Performance in a Distributed File System, Carnegie Mellon University, CMU-ITC-87-068, Aug. 1987.
|Kazar, Michael L., et al., DEcorum File System Architectural Overview, USENIX Summer Conference, Anaheim, California, 1990.
|Kazar, Michael Leon, Synchronization and Caching Issues in the Andrew File System, Carnegie Mellon University, CMU-ITC-88-063.
|Kemper, Alfons, et al., Performance Tuning for SAP R/3, Data Engineering Journal 22, Feb. 1999 pp. 33-40.
|Kent, Jack et al., Optimizing Shadow Recovery Algorithms, IEEE Transactions on Software Engineering, 14(2): 155-168, Feb. 1988.
|Kistler, et al., Disconnected Operation in the Coda File System, ACM Transactions on Computer Systems, vol. 10, No. 1, Feb. 1992, pp. 3-25.
|Lorie, Raymond, A. Physical Integrity in a Large Segmented Database, ACM Trans. Database Syst., vol. 2, Mar. 1977, pp. 91-104.
|Maintenance Procedures ND (8C) nd-network disk control Feb. 1985.
|Misc. Reference Manual Pages ND (4P) nd-network disk driver Jul. 26, 1985.
|Ousterhout, 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.
|Patterson, D., et al., A Case for Redundant Arrays of Inexpensive Disks (RAID), SIGMOD International Conference on Management of Data, Chicago, IL, USA, Jun. 1-3, 1988, SIGMOD Record (17)3:107-16 Sep. 1988.
|Patterson, D., et al., A Case for Redundant Arrays of Inexpensive Disks (RAID), Technical Report, CSD-87-391, Computer Science Division, Electrical Engineering and Computer Sciences, University of California at Berkeley 1987.
|Performance Without Compromise: The Virtual Storage Architecture 1997.
|Peterson, 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.
|Quinlan, Sean, A Cached WORM File System, Software-Practice and Experience, 21(12):1289-1299 1991.
|Rosenblum, Mendel, et al. The Design and Implementation of a Log-Structured File System Jul. 24, 1991 pp. 1-15.
|Rosenblum, 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.
|Rosenblum, 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.
|Rosenblum, Mendel, The Design and Implementation of a Log-Structured File System, 1992 pp. 1-93.
|Schiefer, Berni, et al., DB2 Universal Database Performance Tuning, Data Engineering Journal 22, Feb. 1999 pp. 12-19.
|SCSI-3 Primary Commands, Mar. 28, 1997, T10 995D Revision 11a.
|Seltzer, Margo I., et al., Journaling Versus Soft Updates: Asynchronous Meta-Data Protection in File Systems, Proceedings of 200 USENIX Annual Technical Conference, Jun. 18-23, 2000.
|Shasha, Dennis, Tuning Time Series Queries in Finance: Case Studies and Recommendations, Data Engineering Journal 22, Feb. 1999 pp. 41-47.
|Sidebotham, Bob, Volumes: The Andrew File System Data Structuring Primitive, EEUG Conference Proceedings, Manchester, UK, Autumn 1986.
|Subramanian, Muralidhar, et al., Performance Challenges in Object-Relational DBMSs, Data Engineering Journal 22, Feb. 1999 pp. 28-32.
|U.S. Appl. No. 09/891,195, Cullinane et al.
|U.S. Appl. No. 10/101,901, Hugo Patterson et al.
|U.S. Appl. No. 10/215,917, Brian Pawlowski et al.
|U.S. Appl. No. 10/216,453, Vijayan Rajan et al.
|Weikum, Gerhard, et al., Towards Self-Tuning Memory Management for Data Servers, Data Engineering Journal 22, Feb. 1999 pp. 3-11.
|West, Michael, et al. The ITC Distributed File System: Prototype and Experience, Carnegie-Mellon University, Technical Report CMU-ITC-040, Mar. 1985.
|Zayas, Edward R., AFS-3 Programmer's Reference: Architectural Overview, Transarc Corporation, Pittsburgh, PA, 1.0 edition 1991.
|Citing Patent
|Filing date
|Publication date
|Apr 23, 2003
|Nov 6, 2007
|Network Appliance, Inc.
|Consistent logical naming of initiator groups
|Aug 17, 2001
|Dec 4, 2007
|Network Appliance, Inc.
|Manipulation of zombie files and evil-twin files
|Jun 30, 2005
|Aug 5, 2008
|Oracle International Corporation
|Supporting replication among a plurality of file operation servers
|Jun 15, 2004
|Nov 11, 2008
|Network Appliance, Inc.
|File deletion and truncation using a zombie file space
|Dec 28, 2004
|Mar 3, 2009
|Network Appliance, Inc.
|System and method for performing an on-line check of a file system
|Dec 16, 2004
|Jun 16, 2009
|Oracle International Corporation
|Techniques for maintaining consistency for different requestors of files in a database management system
|Dec 5, 2005
|Oct 27, 2009
|Oracle International Corporation
|Techniques for performing file operations involving a link at a database management system
|Dec 16, 2004
|Dec 1, 2009
|Oracle International Corporation
|Infrastructure for performing file operations by a database server
|Mar 28, 2007
|Jan 26, 2010
|Emc Corporation
|Data protection services offload using shallow files
|Oct 19, 2006
|Apr 27, 2010
|Vmware, Inc.
|Accessing virtual data storage units to offload operations from a computer system hosting a virtual machine to an offload server
|Dec 16, 2004
|May 11, 2010
|Oracle International Corporation
|Techniques for transaction semantics for a database server performing file operations
|Dec 8, 2006
|Aug 3, 2010
|Emc Corporation
|Replication and restoration of multiple data storage object types in a data network
|Jul 31, 2007
|Aug 31, 2010
|Hewlett-Packard Development Company, L.P.
|Method and system for copying a snapshot tree
|Jun 29, 2005
|Oct 5, 2010
|Oracle International Corporation
|Sharing state information among a plurality of file operation servers
|Jun 27, 2008
|Nov 23, 2010
|Microsoft Corporation
|Cluster shared volumes
|Mar 30, 2007
|Dec 7, 2010
|Netapp, Inc.
|Identifying snapshot membership for blocks based on snapid
|Feb 22, 2007
|Jan 11, 2011
|Emc Corporation
|Creation of snapshot copies using a sparse file for keeping a record of changed blocks
|Aug 22, 2003
|May 31, 2011
|Emc Corporation
|Multi-protocol sharable virtual storage objects
|Apr 14, 2010
|Jun 7, 2011
|Netapp, Inc.
|System and method for restoring a virtual disk from a snapshot
|Jan 21, 2009
|Jun 28, 2011
|International Business Machines Corporation
|Method and system for assigning or creating a resource
|Jan 8, 2007
|Aug 30, 2011
|Netapp, Inc.
|System and method for restoring a single data stream file from a snapshot
|Jun 29, 2009
|Oct 4, 2011
|Emc Corporation
|Delegated reference count base file versioning
|Aug 19, 2011
|Mar 13, 2012
|Netapp, Inc.
|System and method for restoring a single data stream file from a snapshot
|Apr 22, 2005
|Apr 10, 2012
|Apple Inc.
|Method and apparatus for processing metadata
|Apr 28, 2006
|Jul 17, 2012
|Netapp, Inc.
|System and method for generating consistent images of a set of data objects
|Jun 29, 2005
|Jul 17, 2012
|Oracle International Corporation
|Method and mechanism for supporting virtual content in performing file operations at a RDBMS
|Aug 20, 2007
|Jul 17, 2012
|Bluearc Uk Limited
|Apparatus and method for hardware-based file system
|Mar 13, 2007
|Oct 9, 2012
|Netapp, Inc.
|Incorporation of client storage into a storage system
|Dec 13, 2005
|Oct 1, 2013
|Emc Corporation
|File based volumes and file systems
|Mar 16, 2011
|Jan 7, 2014
|International Business Machines Corporation
|Assigning or creating a resource in a storage system
|Jun 26, 2012
|Jan 28, 2014
|Hitachi Data Engineering UK Limited
|Apparatus for managing plural versions of a root node for an object of a file system
|Dec 8, 2006
|Apr 22, 2014
|Emc Corporation
|Data storage server having common replication architecture for multiple storage object types
|Feb 9, 2009
|Jul 29, 2014
|Netapp, Inc.
|Online data consistency checking in a network storage system with optional committal of remedial changes
|Dec 30, 2010
|Aug 26, 2014
|Emc Corporation
|Continuous file defragmentation during file over-writes
|Oct 26, 2010
|Sep 9, 2014
|Netapp, Inc.
|Identifying snapshot membership for blocks based on snapid
|Jan 8, 2010
|Sep 30, 2014
|Netapp, Inc.
|Exclusive access during a critical sub-operation to enable simultaneous operations
|Aug 30, 2007
|Oct 21, 2014
|Netapp, Inc.
|System and method for indexing user data on storage systems
|Sep 24, 2012
|Mar 10, 2015
|Emc Corporation
|Concurrent access to data during replay of a transaction log
|Jan 29, 2013
|Apr 28, 2015
|Emc Corporation
|Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay
|Apr 23, 2010
|Jul 21, 2015
|Swish Data Corporation
|Virtual disk from network shares and file servers
|Jun 17, 2014
|Oct 27, 2015
|Netapp, Inc.
|Online data consistency checking in a network storage system with optional committal of remedial changes
|May 10, 2011
|Jan 19, 2016
|Swish Data Corporation
|Backup media conversion via intelligent virtual appliance adapter
|Jul 2, 2014
|Aug 9, 2016
|Hedvig, Inc.
|Time stamp generation for virtual disks
|Jul 2, 2014
|Aug 23, 2016
|Hedvig, Inc.
|Disk failure recovery for virtual disk with policies
|Jul 2, 2014
|Nov 1, 2016
|Hedvig, Inc.
|Writing to a storage platform including a plurality of storage clusters
|Nov 13, 2013
|Jan 10, 2017
|Hitachi Data Systems Engineering UK Limited
|File server node with non-volatile memory processing module coupled to cluster file server node
|Jul 2, 2014
|Jan 31, 2017
|Hedvig, Inc.
|Creating and reverting to a snapshot of a virtual disk
|Aug 17, 2001
|Jun 27, 2002
|Chen Raymond C.
|Manipulation of zombie files and evil-twin files
|Jun 15, 2004
|Feb 10, 2005
|Network Appliance, Inc., A California Corporation
|File deletion and truncation using a zombie file space
|Aug 22, 2003
|Feb 24, 2005
|Rui Liang
|Multi-protocol sharable virtual storage objects
|Dec 28, 2004
|May 26, 2005
|Edwards John K.
|System and method for performing an on-line check of a file system
|Apr 22, 2005
|Dec 29, 2005
|Tribble Guy L
|Method and apparatus for processing metadata
|Nov 4, 2004
|May 4, 2006
|Cochran Robert A
|Managing a file in a network environment
|Dec 16, 2004
|Jun 22, 2006
|Oracle International Corporation
|Infrastructure for performing file operations by a database server
|Dec 16, 2004
|Jun 22, 2006
|Sam Idicula
|Techniques for providing locks for file operations in a database management system
|Dec 16, 2004
|Jun 22, 2006
|Syam Pannala
|Techniques for transaction semantics for a database server performing file operations
|Dec 16, 2004
|Jun 22, 2006
|Namit Jain
|Techniques for maintaining consistency for different requestors of files in a database management system
|Jun 29, 2005
|Jan 4, 2007
|Namit Jain
|Method and mechanism for supporting virtual content in performing file operations at a RDBMS
|Jun 29, 2005
|Jan 4, 2007
|Namit Jain
|Sharing state information among a plurality of file operation servers
|Jun 30, 2005
|Jan 4, 2007
|Namit Jain
|Supporting replication among a plurality of file operation servers
|Dec 5, 2005
|Jan 11, 2007
|Marathon Marine Manufacturing (1996) Ltd.
|Cargo deck for truck box
|Sep 6, 2006
|Mar 8, 2007
|Reldata, Inc.
|BLOCK SNAPSHOTS OVER iSCSI
|Dec 5, 2005
|Jun 7, 2007
|Namit Jain
|Techniques for performing file operations involving a link at a database management system
|Dec 13, 2005
|Jun 14, 2007
|Mane Virendra M
|File based volumes and file systems
|Aug 30, 2007
|Aug 21, 2008
|Yusuf Batterywala
|System and method for indexing user data on storage systems
|Apr 28, 2006
|Nov 6, 2008
|Kimmel Jeffrey S
|System and Method for Generating Consistent Images of a Set of Data Objects
|Jul 31, 2007
|Feb 5, 2009
|Xia Xu
|Method and system for copying a snapshot tree
|Jan 21, 2009
|May 21, 2009
|International Business Machines Corporation
|Method and system for assigning or creating a resource
|Jun 30, 2008
|Jul 16, 2009
|Bluearc Uk Limited
|Multi-Way Checkpoints in a Data Storage System
|Jun 27, 2008
|Dec 31, 2009
|Microsoft Corporation
|Cluster Shared Volumes
|Jan 9, 2009
|Jul 22, 2010
|Microsoft Corporation
|Data movement with reduced service outage
|Apr 14, 2010
|Aug 5, 2010
|Chen Raymond C
|System and method for restoring a virtual disk from a snapshot
|Apr 23, 2010
|Oct 28, 2010
|Swish Data Corporation
|Virtual disk from network shares and file servers
|Mar 16, 2011
|Jul 7, 2011
|International Business Machines Corporation
|Method and system for assigning or creating a resource
|Jan 8, 2010
|Jul 14, 2011
|Vasantha Prabhu
|Exclusive access during a critical sub-operation to enable simultaneous operations
|Nov 24, 2013
|May 28, 2015
|Infinidat Ltd.
|Comparison of file system snapshots stored in a remote sorage system using a network file system command
|Jul 2, 2014
|Jan 7, 2016
|Hedvig, Inc.
|Storage system with virtual disks
|Jul 2, 2014
|Jan 7, 2016
|Hedvig, Inc.
|Storage system with virtual disks
|Jul 16, 2014
|Jun 4, 2015
|Openpeak Inc.
|Method and system for backing up and restoring a virtual file system
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Oct 10, 2003
Owner name: NETWORK APPLICANCE, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, RAYMOND C.;PATEL, KAYURI;RAJAN, VIJAYAN;REEL/FRAME:014595/0543
Effective date: 20031008
|Jan 11, 2010
|Fee payment
Year of fee payment: 4
|Nov 5, 2010
Effective date: 20031008
Owner name: NETWORK APPLIANCE, INC., CALIFORNIA
Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 014595 FRAME 0543. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT DATED OCTOBER 8, 2003;ASSIGNORS:CHEN, RAYMOND C.;PATEL, KAYURI;RAJAN, VIJAYAN;REEL/FRAME:025320/0599
|Dec 27, 2010
Effective date: 20080310
Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK APPLIANCE, INC.;REEL/FRAME:025537/0354
Owner name: NETAPP, INC., CALIFORNIA
|Jan 13, 2014
|Fee payment
Year of fee payment: 8


text:
Browser does not support script.
We use cookies on this site. By browsing our site you agree to our use of cookies. Close this message Find out more
The department offers three traditional taught courses: MA in Ancient History, MA in Classics, MA in Classical Art and Archaeology. A further taught course, the MA in Late Antique and Byzantine Studies, is offered by the History department. These courses are intercollegiate, offered jointly with King's College London and University College London. Together, they offer an unparalleled range of courses that provides for around 70 students per year.
Students choose from a menu of courses which covers not only Greek and Latin literature, the major periods of ancient history, ancient philosophy and the Greek and Latin languages, but also key technical skills such as papyrology, epigraphy, and palaeography. The courses provide ideal training for those considering further research, as well as an additional year of high level study for those seeking to add to their undergraduate qualification.
MA courses 2015-16 with details for Royal Holloway courses and links to King's College and UCL course choices.
For past course options see MA courses 2013-14 and MA courses 2014-15.
The department also runs two research masters programmes, a Masters by Research in Classical Reception and an MRes in Rhetoric, which provide unique training in specific areas of the Classical studies, and also contributes to the MA Hellenic Studies offered by the Hellenic Institute (History Department) at Royal Holloway.
Why study the Masters by Research in Classical Reception? Hear from our MA students.
Our students talk about what makes the Master of Research in Rhetoric such a rewarding postgraduate degree.
Click on the videos below to find out more. Films courtesy of PostgraduateSearch.com
Did you find the information you were looking for? Is there a broken link or content that needs updating? Let us know so we can improve the page.
Note: If you need further information or have a question that cannot be satisfied by this page, please call our switchboard on +44 (0)1784 434455.
This window will close when you submit your comment.

subset: commoncrawl


text:
Side by Side
My eyes wearily freed themselves from one of the dreadful memories I still kept. The horse's rough breath had torn me from such undeserved rest. My hands bolted back to reins that I had dropped, and I craned my neck around to see where the world had pulled me while I had embarrassingly fallen asleep.
The horse snorted as I shuffled around, mocking me for letting something so simplistic overtake me. I hung my head slightly and patted him on the neck.
"Won't happen again. I'm sorry."
The black eyes of my ride looked at me for a moment, then pulled off. For a moment, I thought I heard a shallow voice whisper in my ear.
You amuse me. It's like you still think I don't know where to go.
But this had brought up a point. I had gone one too many nights without rest. And I wanted to save myself the shame of ending up asleep yet again. The sun had fallen not long ago as I saw by the streak of red hue over the distant mountains. And we were in the vast prairies that broke the steep and snowy cliffs.
I tugged back lightly, letting our fast trot slow entirely. Something feintly sniffed behind me, and suddenly, the pair of arms on my back had closed tighter. I half heartedly tried removing her, but found that attempt to be futile. But my cold fingers and scratchy bandages obviously had irritated her to the point of waking.
She was startled to say the least. Her already pale face even whiter as she awoke suddenly and pushed away from me. But her balance couldn't be commended. Even slightly. She fell fast and hit the grassy field with little sound beside her own little grunt of pain.
I threw myself off the horse, which was trying to find a bed of moss or something worth sleeping on. Before I freed him to do so however, I waved him back so I could take the canister of ignition fluid for a small fire. Purely to ward off anything that slithered prone through the grass about.
The girl watched me warily, which wasn't a bother really. It did force out some thoughts of disdain for myself though. This whole situation was something I created without much consideration or, even worse, restraint. I hadn't considered the fact that I now cared for two. I didn't try to imagine what kind of issues I'd have if she betrayed me. And even worse-
What if she tried to make me human again.


text:
The Metairie Entertainment Line provides service on Saturdays to the Clearview Mall, Whole Foods, Lakeside Mall, Trader Joe's, and many other restaurants and stores.
Beginning August 2016, two shuttle lines with run simultaneously to serve both the uptown campus and Deming & Papillon residents.
Saturday ONLY 8:30AM - 6:30PM
Shuttles & Transportation, 6324 S. Claiborne Avenue 504–314-7433 email@example.com


text:
Budget Suites of America - Las Vegas
No prices found through our partners. Please contact the business directly or check some of our recommended alternatives.
How has this motel rated in the past?
Looking to take a helicopter trip to Las Vegas or the Grand Canyon?Helicopter Tour Experts is tailor-made to help you get the best helicopter tour experience.
Travelers also recommend:
TripAdvisor Reviews Budget Suites of America - Las Vegas
Travel Blogs from Las Vegas
Saturday Night Live ... at the Zoo?
... looking at her behind and we teased that he did not notice until we pointed Neri's asset to him.
After all that, we felt hungry so we headed to Pho Saigon 8 on Spring Mountain Blvd. to eat some Vietnamese food. We had Vietnamese fresh and fried spring rolls and had our bowls of pho and bun. This was our version of a "light snack".
We drove to the M Resort at the far end of Las Vegas to watch ...
The Land of Make believe
... br>
Friday morning Sue and I said our farewells it was quite sad to be leaving everyone as we had all such a laugh over the last 6 days but we had to continue our journey towards San Francisco. Vegas is a grown ups Disney World some of it beautiful some of it very tacky, you can go from one part where money to people seems to be like monopoly, where there is thousands being spent before your eyes.
Then there is the other side with people lazing ...
Grand American Adventures Tour
... meal. It was nice to all get dressed up and treat ourselves. We all had one last photo and said our goodbyes. It was weird to go our separate ways and felt strange it just being me and Hannah again. It felt like it was time to go back to the UK because everyone else was and seemed weird that we were carrying on. It was a good time to end our journey in America though as we had saved the best till last. For now it was time to adjust and get used to it being us two cracking on with ...
Live like a King...
... death of Kings. Unsurprisingly the kids loved it! Me and Sinead actually did also. Great family entertainment.
We headed up to the room straight (after a few more games on Jurassic park at the fun dungeon!), the kids and Sinead went to bed and I decided that I couldn't leave Vegas without at least trying my luck. I stopped in 'Dick's Last Resort' bar where its' famous for having the rudest bar tenders. I ...
Day 7 - Las Vegas
... pretzel chicken sticks. All this was washed down with the usual refills of soda. Would have been a shame to forgo the restaurants namesake dessert, so we ordered up two large portions (strawberry and Oreo!) and dived in until full.
With darkness closing in, our objective was to catch a couple of the free evening shows before we left. First was the volcano eruption at the Mirage. Getting a front row view, we enjoyed the impressive (and hot!) fiery ...


text:
My Wednesday column outlined the theory that Chinese credit conditions are among the most important indicators for Canadian resource investors. With this post, I'll use data to bring the theory down to the level of tactical advice.
The first chart on the left compares China's year-over-year money supply growth (M2, in this case) to the year-over-year returns for the domestic S&P/TSX Diversified Mining Index.Report Typo/Error
Follow @SBarlow_ROBon Twitter:


text:
New Delhi, May 22: Weather and wind speeds permitting, an almost 11-ton rocket will lift off from rocket port Sriharikota tomorrow morning -- the first time India is launching an indigenous Reusable Launch Vehicle.
In an interview, Indian Space Research Organisation Chairman Kiran Kumar explains the importance of the experimental Reusable Launch Vehicle (RLV), which is essentially an attempt by India to bring down the cost of making infrastructure in space.
Also read: ISRO sets up nozzle testing labs in VSSC
Q: What is this RLV, or the Indian space shuttle?
A: See, the RLV is a mechanism for us to bring down the cost of launch. We intend to go through a series of technology demonstration exercises, first one of it, what we call HEX-01, that is a hypersonic experiment. It is called a winged body.
Therefore, we are designing for the first time a winged body, which will come back from space. It will be carried up on a solid rocket motor.
In addition, this is the first of a series of experiments and we still have a long way to go till we reach the actual RLV, which will give us a tremendous capacity in terms of launching at a very low cost.
Q: So essentially you will be launching from Sriharikota, and the RLV will land it somewhere in the Bay of Bengal?
A: Yes, the first experiment is like that, we will be launching from Sriharikota, and the plane like winged body will land in the ocean, in the Bay of Bengal. That is the first one, but then ultimately, the objective will be this winged body will come and land on the Sriharikota island.
Q: So you will make a kind of a runway like one used to see for American space shuttles. So will we witness similar kinds of vehicles landing in Sriharikota in future?
A: Yes, ultimately, when it comes to the final stage, that is what will happen. This winged body will come back on to the land at Sriharikota.


text:
The Problem of Emancipation explores a long-neglected aspect of American slavery and the history of the Atlantic World, bridging a gap in our understanding of the American Civil War. It places the origins of the war in a transatlantic context, exploring the impact of Britain's abolition of slavery on the coming of the war, and revealing the strong influence of Britain's old Atlantic empire on the politics of the United States. This ground-breaking study examines how southern and northern American newspapers covered three slave rebellions that preceded British abolition and how American public opinion shifted radically as a result.
To view this DRM protected ebook on your desktop or laptop you will need to have Adobe Digital Editions installed. It is a free software. We also strongly recommend that you sign up for an AdobeID at the Adobe website. For more details please see FAQ 1&2. To view this ebook on an iPhone, iPad or Android mobile device you will need the Adobe Digital Editions app, or BlueFire Reader or Txtr app. These are free, too. For more details see this article.
Preview Ebook
If you find anything wrong with this product listing, perhaps the description is wrong, the author is incorrect, or it is listed in the wrong category, then please contact us. We will promptly address your feedback.
Submit 5 page Summary ← What is this?


text:
Need an Ovulation Test in Wilmington, NC? Simply order online 24/7 and get a fast, affordable Ovulation Test at a lab near you (Find More Locations):
What is an Ovulation Test?
The Ovulation Test helps check for ovulation using blood markers. The Ovulation Test is used to help guide decisions for people trying to get pregnant in Wilmington, NC.
How much does an Ovulation Test cost?
Our Ovulation Test price includes the doctor's order that you need to get tested in Wilmington, NC, all lab fees and taxes, and a pdf copy of your results. For current prices, CLICK HERE.
What does an Ovulation Test report look like?
For an Ovulation Test sample report, please CLICK HERE.
We are delighted to offer the Ovulation Test in Wilmington, NC.
Ovulation Test in other cities near Wilmington, NC:Atkinson | Bolivia | Burgaw | Carolina Beach | Castle Hayne | Currie | Delco | Hampstead | Kure Beach | Leland | Riegelwood | Rocky Point | Southport | Winnabow | Wrightsville Beach


text:
Skate on the fabulous courtyard ice rink at Somerset House — then treat yourself to a cocktail, Welsh rarebit or hot chocolate from Fortnum & Mason as the West Wing becomes the famous Piccadilly store's pop-up Christmas arcade.
At Hampton Court, stock up on seasonal specialities and pick up great tips for Christmas dinner this weekend at the BBC Good Food Festival Fayre, then try out the palace's atmospheric ice rink which has been decked out with a beautiful tree.
After Christmas, a feast fit for the court of Queen Elizabeth I will be laid out in the palace's Great Hall, with food, music and dancing typical of Good Queen Bess's era (daily, December 27 to January 3). Tickets £19.30, or £9.70 for under-16s.
Now until January 3 at Somerset House and Hampton Court Palace.


text:
One of the projects I've been so busy with this past few weeks, if not months is the redesign and re-development of the Lasallian Institute For the Environment's (LIFE) website. My first encounter with LIFE was when I joined a tree-planting activity on Mts Palay-palay/Mataas na Gulod last year as part of their ambitious and noble One Million Trees Project.
What's LIFE?
From the name itself, and its flaghsip project, LIFE is a newly created institution of the La Salle Philippines Provincialate that aims to fulfill the De La Salle Philippines' role of being God's stewards of creation.
The One Million Trees project is an initiative that aims to plant 1 Million trees by the year 2011, which is the De La Salle Philippines' centennial anniversary in the country.
A tall order
Sir Wowie, a good friend of my college mentor, Sir Yuri knew that I was quite handy with the internet and websites and thought I could be of help in the re-design of their former website, which back then was a relic from the realms of Web 1.0, it was all html, no CSS and had *shudders* tables. It was nicely designed though so kudos to Dan who built the site and later on my would be partner in this new project.
So I was introduced to Dan and Tito Ben, LIFE's founder and Executive Director who immediately put me in the project. They told me that they wanted the site to be dynamic, with regularly updated news, stories, other rich content like videos and audio clips. They also wanted the site to feature and highlight the projects and initiatives by LIFE in an interactive manner. They wanted readers to comment on their stories, news, announcements, etc. They wanted a shoutbox so that visitors could leave a message on the fly, they wanted a photo gallery, a downloads section, summarizing what they need and envisioned for the site, they simply needed a CMS or a content-management system.
There are dozens of CMS platforms out there, like Drupal, PHP-Nuke, Joomla and yes WordPress. I came clean and honest with them that my programming skills are nothing to be so proud of as I am not formally trained in web programming, let alone creating and managing databases and creating a custom CMS from scratch.
They kindly considered that fact but still held on to me for advice and eventually, actual work on the site.
The first thing I did before taking on the project was assesing their current host's specs and capabilities. I forgot who their webhost was, but it was something I was not comfortable working with. It was a Plesk-powered, Windows-run webhost account that 1) I wasn't so familiar with, 2) I do not personally prefer to work on.
This bias comes from my limited experience of dabbling with WordPress, PHP-Nuke, Drupal, Fantastico, CPanel and FTP clients this past 4 years or so of being a netizen and blogger. Aside from blogging, I took on a small hobby of fiddling with the online apps and whatchamacallits becoming a newbie webmaster only tru experienec, trial-and-error and experiments.
My recommendation to them was to switch from a Windows-based webhosting account to Linux-based one. It's a lot cheaper and allows for a certain degree of flexibility and robustness. Gladly, they agreed and decided to put me in complete control of the project.
I took on the project as a big opportunity to learn new things, work with new people much more knowledgable than me and to help out LIFE, because hey, I'm now a Lasallian, with a touch of blue of course. *ehem*
Drupal or WordPress?
I initially decided on using Drupal and customizing or extending it to suit LIFE's needs which weren't that complex. So the past 4 months or so, I spent whatever spare time I had dabbling and learning the inner workings of Drupal. It wasn't such a simple and easy task, I even made little to no progress alone. Aside from Drupal's steep learning curve for newbies like me, blogging on WordPress ate all of my time and my learning curve. Since I've been using it since, I've become so acustomed and comfortable with WP, I believe I have the basic know-how in making it work to meet LIFE's online needs.
So that custom Drupal-based prototype for LIFE was shelved and I downloaded a fresh kit of WordPress and started tweaking PHP files once more. I figured that with what LIFE has stated for their needs, a blog would be best for them at this time. A more promising assurance is the emergence of a movement that is now pushing WordPress as a full-pledged CMS and not just a blogging plaform. More on this in a later post.
LIFE 2.0 (beta)
So the result is the new LIFE site that could be seen today, which was soft-launched last August 20, 2007. It uses a tweaked Mandigo theme plus a staple of WP plugins that add more functionality to WordPress.
The custom header will be changed to a more elegant design by the month's end. The photo gallery and downloads section will follow suit. It's basically a work in progress but it's ready to serve LIFE's needs of making its presence felt in the world wide web and pushing for its mission of being God's stewards of creation.
It even has firstname.lastname@example.com mailbox system powered by Gmail for your domain, which is a component of Google Apps suite. I plan on installing ActiveCollab on its back end so that LIFE core members and staff could carry out their work, planning and other collaborative projects online.
Lastly, an online discussion board would be setup once the LIFE community gets active online. Lots more are instore for the future, things will come as LIFE itself grows into a solid and well-known Lasallian institution for the environment and human development.
Do check out the new LIFE site, subscribe to their RSS feed and if you feel like it, join in one of their projects in saving our environment and securing a better future for all of us.


text:
Need an HTLV Test in Port Angeles, WA? Simply order online 24/7 and get a fast, affordable HTLV Test at a lab near you (Find More Locations):
What is the HTLV Test?
The HTLV Test is a medical lab test for HTLV 1 and 2. People in Port Angeles, WA order the HTLV Test for general screening or when interested in being a donor.
How much does the HTLV Test cost?
The price for the HTLV Test includes the doctor's order that you need to get tested in Port Angeles, WA, all lab fees and taxes, and a pdf copy of your results. For current prices, please CLICK HERE.
We are happy to help people get the HTLV Test in Port Angeles, WA.
HTLV Test in other cities near Port Angeles, WA:Carlsborg | Deer Harbor | Friday Harbor | Joyce | Orcas | Sequim | Shaw Island | Waldron


text:
Join to find the hottest teen books, connect with your favorite YA authors and meet new friends who share your reading interests. Visit
EpicReads.com »
Read new romance book reviews, posts from yourfavorite authors, samples, exciting digital first publicationsand e-book specials. Visit AvonRomance.com »
Visit the official Harlequin book site.See the newest novels, discuss with other book lovers,buy romance books online. Visit Harlequin.com »
Discover Author
Photo by Noah Sheldon
Sarah Magid has a custom cake business based in New York City. She has worked for top fashion companies, including Tommy Hilfiger, J. Crew, Coach, Liz Claiborne, Frye, and Henri Bendel. Her cakes have been featured in magazines such as Domino, InStyle Weddings, Cookie, Brides, The Knot, New York, and Martha Stewart's The Art of Cakes, as well as numerous style and food blogs. She lives in Brooklyn, New York, with her husband and two young children.
*This is a promotional service of HarperCollins Publishers, 195 Broadway, New York, NY 10007, providing information about the products of HarperCollins and its affiliates. By submitting your email address, you understand that you will receive email communications from Bookperk and other HarperCollins services. You may unsubscribe from these email communications at any time. If you have any questions, please review our privacy policy or email us at [email protected].
See all
Thank you for signing up to receive news about Neal Stephenson and other HarperCollins authors.
Tell us more about what you like to read so we can send you the best offers and opportunities.
Do you primarily buy books in a country other than the US? Please choose from the dropdown.
Would you like to subscribe to Bookperk and receive daily e-book bargains,sneak peeks, special offers, and more–delivered straight to your inbox?
What kind of books do you like to read?
Would you like to receive any of the following newsletters?
Thank you for your interest in HarperCollins authors.An email has been sent to your parent or guardian.
You must have permission from a parent or guardian to sign up.Please provide their email address.
Sitemap · Terms of Use · Privacy Policy
Copyright © 2017 HarperCollins Publishers. All rights reserved.
Site Powered by Supadü


text:
Testing the Limits: George Armistead Smathers and Cold War America
€ 44,99
Bisher € 47,50
Lieferbar innert 2 Wochen
September 1999
BeschreibungA Floridian who served as a U.S. senator from 1950 to 1968, George Armistead Smathers is generally regarded as a playboy politician who wasted his opportunities to achieve legal and political brilliance, abandoning his constituency to represent business, industry, and other wealthy interests in Florida. This detailed chronicle of Smather's life and career reveals that his reputation was sensationalized and largely undeserved.Brian Lewis Crispell incorporates lively anecdotes and personal descriptions, in addition to details culled from research in newspapers, interviews, and the archives of Kennedy, Johnson, Truman, and Smathers himself, to bring the largely unstudied senator to life. The work traces Smather's political path from the forming of his "statewide collection of loyal men, " a gathering of supporters from the University of Florida who formed his political base, through his election to the ??? successful 1950 Senate campaign against Claude Pepper, and his senatorial career during the beginning of ??? civil rights ??? and the early Cold War. Crispell highlights the senator's moderate civil rights record, his role in the 1960 presidential election, and his international list position on aid to Latin America. This thoroughly researched account presents Smathers as the ??? "Cold Warrior" -- a man who significantly ??? his political world.
PortraitBrian Lewis Crispell teaches history and geography at the Thomas County Schools of Thomasville, Georgia. He lives in Tallahassee, Florida.
Untertitel: Sprache: Englisch.
Verlag: UNIV OF GEORGIA PR
Erscheinungsdatum: September 1999
Seitenanzahl: 234 Seiten
Format: gebunden