Abstract:
Systems and methods for inode use are presented. In one embodiment; an inode reuse method includes: receiving an indication of an operation that involves access to file related information; assigning an inode to the access; identifying one of a plurality of inode reuse scenarios for the inode; and making the inode available for reuse in accordance with the one of the plurality of inode reuse scenarios. In one embodiment, the one of the plurality of inode reuse scenarios is a relatively expedited reuse scenario. In one exemplary implementation, the relatively expedited inode reuse scenario is utilized if the inode is not required for further processing associated with the operation. The inode can be reused for another immediately subsequent operation. In one embodiment, a first one of the plurality of inode reuse scenarios includes placing the inode at a head queue position of a use queue and a second one of the plurality of inode reuse scenarios includes placing the inode in a tail queue position of the use queue. Association of the inode to the inode reuse scenario can be tracked. The tracking can include flagging the inode for relatively expedited reuse.
Abstract:
A computer-implemented method may include identifying a file that includes one or more data blocks stored within a storage device. The computer-implemented method may also include determining that the file has been accessed more frequently than one or more other files stored within the storage device and then tracking the number of times that at least one data block associated with the file is accessed in the storage device. The computer-implemented method may further include determining that the number of times that the data block associated with the file has been accessed in the storage device is above a predetermined threshold. In addition, the computer-implemented method may include caching the data block associated with the file in a caching mechanism to decrease the amount of time required to access the data block. Various other methods, systems, and computer-readable media are also disclosed.
Abstract:
A method for fast incremental replication of a file system. The method includes, at a data storage level, tracking file system status for a plurality of files by using a data structure inside respective inodes for the plurality of files, and at a file system level, tracking file system status for a plurality of files by using a file system mask structure. For all files present in a backup, a catalogue of the file path name and inode number is maintained on a source file system. During incremental backup, a source file system data structure enumerating a plurality of modified inodes is consulted. For inodes that have not been marked as removed or created, the file system mask structure that tracks modified portions is consulted to obtain a file incremental change and inodes. The method further includes performing incremental backup using the inodes that have been modified and appended.
Abstract:
Techniques for optimizing data migration are disclosed. In one particular embodiment, the techniques may be realized as a method for optimizing data migration may comprise receiving a request for initiating a data migration application and migrating, via at least one computer processor, at least one data file from a migration list during the data migration application. The method for optimizing data migration may also comprise monitoring the migration of the at least one data file and determining whether the at least one data file is active during the migration of the at least one data file. The method for optimizing data migration may further comprise deferring the migration of the at least one data file based at least in part on a determination that the at least one data file is active and recording information associated with the at least one data file if the at least one data file is active.
Abstract:
Various computer-implemented methods for selective defragmentation are disclosed. In one example, an exemplary method for performing such a task may include: 1) identifying a file system, 2) tracking changes to files in the file system, 3) creating a list of changed files, and then 4) selectively defragmenting files in the list of changed files. Various other methods, systems, and computer-readable media are also disclosed.
Abstract:
A system and method for efficiently performing simultaneous access of files in a clustered file system. A cluster of nodes is coupled to a data storage medium. A first node executes a first thread with write operations for a given file. A second node executes a second thread with read operations for the given file. The first thread is appending the given file. In response, the first node requests a write lock range between an end-of-file for the given file to a highest possible endpoint. If a prediction determines the second thread may request read locks after the range it is currently reading, then the method enables the locks to be efficiently transferred from the first node to the second node before they are required on the second node, allowing the reading second node to proceed with fewer delays.
Abstract:
A computer-implemented method for copying database files may include (1) identifying a request to copy a database file to a target location, and in response to identifying the request to copy the database file to the target location, (2) identifying a preallocated but unused portion of the database file, (3) transmitting a used portion of the database file to the target location, and (4) transmitting a metadata representation of the unused portion of the database file to the target location, the metadata representation being smaller than the unused portion. Various other methods and systems are also disclosed.
Abstract:
A computer-implemented method for migrating virtual machines may include: 1) identifying a request to migrate a virtual machine from a primary site to a secondary site, the primary site including a primary storage device used by the virtual machine and configured for asynchronous replication to a secondary storage device at the secondary site, 2) identifying a difference map that reflects differences between data on the primary storage device and the secondary storage device, 3) initiating the virtual machine at the secondary site, 4) intercepting an input/output attempt from the virtual machine at the secondary site to the secondary storage device, 5) determining, based on the difference map, that a region of the input/output attempt has not been synchronized from the primary storage device, and 6) retrieving the region from the primary storage device before allowing the input/output attempt to proceed. Various other methods, systems, and computer-readable media are disclosed.
Abstract:
A method for file lock recovery in a distributed computer system. The method includes executing a distributed computer system having a plurality of nodes comprising a cluster, and initiating a network file system server migration from one node of the cluster to a different node of the cluster. A migration count is incremented, wherein the migration count is stored at each of the nodes comprising the cluster. File lock services are paused at each of the nodes comprising the cluster. The network file system server migration is completed at the different node of the cluster. The migration count is then decremented in response to the completion. File lock services are then resumed at each of the nodes comprising cluster.
Abstract:
A method of partitioning directory. Accesses, e.g., shared/exclusive, and/or waiting requests, e.g., shared/exclusive, to access one or more files with a directory are monitored, e.g., incrementing/decrementing respective counters. The waiting requests are queued to be granted at a later time. The directory is determined to be primed for partitioning if a number of waiting requests to access the directory is greater than a threshold value of a plurality of heuristics and optionally further based on satisfying the condition for at least a programmable time threshold period. A trigger signal is automatically generated if the directory is primed for partitioning. The trigger signal causes a file system to partition the directory. It is appreciated that the plurality of heuristics is user programmable.