Increased adoption of technology by businesses has led to an explosion of data. Organizations may be required to store data for various reasons. These may include business reasons, legal and compliance requirements, auditing functions, investigative purposes, etc. A retention enabled file system may allow users to apply retention settings on a file such that the file may be retained in a system for a period set by an administrator for the file.
For a better understanding of the solution, embodiments will now be described, purely by way of example, with reference to the accompanying drawings, in which:
Data retention includes storing an organization's data for various reasons. These may include business or regulatory reasons. To ensure that relevant data is stored appropriately, an organization may define a data retention policy. The policy may include various guidelines related to data archival. For instance, these may relate to which data will be retained, where data will be retained, how long data will be retained, etc.
A retention enabled file system may allow users to retain files up to a hundred years or more. The files may be retained in an immutable form wherein the files cannot be changed or renamed. Examples of immutable files may include a WORM (Write Once Read Many) file and a WORM-retained file.
Typically, when a file becomes a WORM file or a WORM-retained file, a user may not be able to modify data or meta-data of the file. This may be desirable in certain scenarios, for instance, in case of log files and audit files. It may be preferable to keep such files as WORM or WORM-retained files so that a user is unable to modify the contents. However, a WORM file or a WORM-retained file may allow data to be appended. But keeping a WORM file or a WORM-retained file in an appendable state for an undefined period of time may make file validation a challenging job since file data and meta-data may change on every append operation. Further, an administrator may be expected to maintain a list of files with appendable state enabled, so that a validation scan may skip these files. An approach to managing an appendable state of an immutable file includes removing the append capability of the file once the append requirement of the file is complete. However, such approach may require a user intervention (for example, a system administrator) who may remove the append capability of a file after it is no longer desired.
To prevent these issues, the present disclosure describes various examples for managing appendable state of an immutable file. In an example, a request may be received to append an immutable file. Upon receipt, a determination may be made whether the request is a first request to append the immutable file. In response to the determination that the request is the first request to append the immutable file, the immutable file may be modified from an original state to an appendable state, so that the immutable file is appendable during the appendable state. A time period may be defined for the immutable file to remain in the appendable state, and a determination may be made whether the immutable file is accessed during the time period. In response to the determination that the immutable file is not accessed during the time period, the immutable file may be reversed from the appendable state to the original state upon expiration of the time period.
In an example, system 100 may be a storage device or system. System 100 may be a primary storage device such as, but not limited to, random access memory (RAM), read only memory (ROM), processor cache, or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by a processor. For example, Synchronous DRAM (SDRAM), Double Data Rate (DDR), Rambus DRAM (RDRAM), Rambus RAM, etc. System 100 may be a secondary storage device such as, but not limited to, a floppy disk, a hard disk, a CD-ROM, a DVD, a pen drive, a flash memory (e.g. USB flash drives or keys), a paper tape, an Iomega Zip drive, and the like. System 100 may be a tertiary storage device such as, but not limited to, a tape library, an optical jukebox, and the like. In another example, system 100 may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a tape drive, a magnetic tape drive, a data archival storage system, or a combination of these devices.
Referring to
In an example, file system 102 may allow files to be retained for a period of time. Such period may be called as a “retention period”. In an instance, the retention period may range from a few months to multiple years. In an instance, files in file system 100 may be retained in an immutable form, which may represent a “state” of the file. Files in an immutable form cannot be changed or renamed. The immutable state of a file may be managed by the file system 102. Examples of immutable states of files may include a WORM (Write Once Read Many) state and a WORM-retained state. In a WORM (Write Once Read Many) state, file data and meta-data cannot be changed. However, a file in WORM state may be deleted. In WORM-retained state, file data and meta-data cannot be changed. Also, a file in WORM-retained state may not be deleted. In an instance, a file in an immutable form may be called as an “immutable file”. Examples of an immutable file may include a WORM (Write Once Read Many) file and a WORM-retained file. A file in a WORM state may be called as a WORM file. File data and meta-data cannot be changed in a WORM file. However, a WORM file may be deleted. A file in a WORM-retained state may be called as a WORM-retained file. File data and meta-data cannot be changed in a WORM-retained file. Further, WORM-retained file may not be deleted. A WORM-retained file may retain its designation for a defined retention period.
File system 102 may receive a request to append an immutable file (for example, a WORM file or WORM-retained file) 106. In an example, the request to append an immutable file 106 is received at a file access time. In other words, when an immutable file is being accessed by file system 100. In an instance, the request may be received from a general user or a specific user (for example, a system administrator). Upon receipt of the request, file system 102 may determine whether the request is a first request from a user to append the immutable file. In an instance, file system 102 may make the aforesaid determination from a retention profile of the user. In response to the determination that the request is the first request from the user to append the immutable file, file system 102 may modify the immutable file from an original state to an appendable state. The immutable file 106 may become appendable during the appendable state. In other words, the immutable file may allow the user to perform an append operation(s) on the file. Data may be added to the immutable file 106 when the file is in the appendable state.
In response to the determination that the request is not the first request from the user to append the immutable file, file system 102 may determine from the retention profile of the user whether the request is within a limit defined for the user to make the request to append the immutable file. In an instance, a user may be permitted to make a request to append an immutable file only up to a certain number of times. In other words, a limit may be defined for a user to request transition of an immutable file from an original state to an appendable state. In an instance, the limit may be set in the retention profile of the user. File system 102 may refer to the retention profile of a user to determine whether the user's request to append the immutable file is within the limit defined for the user. In response to the determination that the user is within the limit, file system 102 may modify the immutable file from an original state to an appendable state. On the other hand, if file system 102 determines that the user has reached the limit defined for the user, file system may decline the request from the user to modify the immutable file from an original state to an appendable state.
File system 102 may define a time period for the immutable file 106 to remain in the appendable state. The time period states a time limit during which the immutable file may be appended. In an example, the time period defined for the immutable file to remain in the appendable state may be stored as an extended file attribute of the immutable file. In another example, the time period may be stored in a retention policy module 104 (described further with reference to
If file system 102 determines that the immutable file is accessed during the time period, file system may reset the time period for the immutable file to remain in the appendable state. In an instance, the time period may be reset to previously defined time period, beginning from time the immutable file was last accessed during the time period. For example, let's assume that the time period defined for the immutable file to remain in the appendable state is seven days. In this case, if the file is accessed on the first and third day of the period, file system may reset the time period for the immutable file to remain in the appendable state to another seven days, beginning from the third day of the period when the immutable file was last accessed.
In an example, a limit may be defined on the number of processes that may simultaneously access an immutable file during the appendable state. The limit may be defined by a user. In an instance, the aforesaid limit may be stored as an extended file attribute of the immutable file. In another example, the aforesaid limit may be stored in retention policy module 104. When an immutable file is in an appendable state, file system 102 may refer to the aforesaid limit to restrict the number of processes that may simultaneously access the immutable file, for instance, to append data to the file. In response to the determination that the limit on number of processes that may simultaneously access the immutable file during the appendable state is reached, file system 102 may restrict further access to the immutable file during the appendable state.
In the example of
The term “module” may refer to a software component (machine readable instructions), a hardware component or a combination thereof. A module may include, by way of example, components, such as software components, processes, tasks, co-routines, functions, attributes, procedures, drivers, firmware, data, databases, data structures, Application Specific Integrated Circuits (ASIC) and other computing devices. A module may reside on a volatile or non-volatile storage medium and configured to interact with a processor of a computing device (e.g. 100).
Retention policy module 104 may store the retention profile of a user. The retention profile of a user defines the limit for a user to request transition of an immutable file from an original state to an appendable state. In an instance, a user may be permitted to make a request to append an immutable file only up to a certain number of times. The retention profile of a user defines that limit. When a user makes a request to append an immutable file, file system 102 may refer to the retention profile of the user in the retention policy module 104 to determine whether the user's request to append the immutable file is within the limit defined for the user.
Retention policy module 104 may store the time period defined for an immutable file to remain in an appendable state. In other words, retention policy module 104 may store the time limit during which data may be appended to an immutable file. File system 102 may refer to the retention policy module 104 to determine the time period defined for an immutable file to remain in an appendable state.
Retention policy module 104 may store the limit defined on the number of processes that may simultaneously access an immutable file during the appendable state. The limit may be defined by a user. When an immutable file is in an appendable state, file system 102 may refer to the aforesaid limit in the retention policy module to restrict the number of processes that may simultaneously access the immutable file. In response to the determination that the limit on number of processes simultaneously accessing the immutable file during the appendable state is reached, file system 102 may restrict further access to the immutable file during the appendable state.
Hash generator module 206 may generate a baseline checksum of an immutable file before an immutable file is appended in an appendable state. In other words, in a scenario where file system 102 may modify an immutable file from an original state to an appendable state, then before the immutable file is appended, hash generator module may generate a checksum of the immutable file. A checksum (hash) of an immutable file in an appendable state may be generated using a hash algorithm. In an instance, the baseline checksum may be stored in a database (example, 208). Some non-limiting examples of hash algorithms that may be used for generating a checksum of an immutable file in an appendable state may include Secure Hash Algorithm (for example, SHA and SHA-1), and Message Digest Algorithms (for example, MD2, MD4, and MD5).
Database 208 may be a repository that stores a checksum of an immutable file in an appendable state, wherein the checksum may be generated before the immutable file is appended for the first time.
Validation module 210 may be used to perform a validation scan on an immutable file once the time period defined for the immutable file to remain in an appendable state has lapsed. During such validation scan, validation module 210 may refer to the baseline checksum of the immutable file stored in database 208. Since checksum of an immutable file may change after the file is appended in the appendable state, referring to the baseline checksum of the immutable file may allow the immutable file to participate in a validation scan that may be performed to protect a retained file (for example, a WORM file or WORM-retained file).
For the purpose of simplicity of explanation, the example method of
It should be noted that the above-described examples of the present solution is for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
Number | Date | Country | Kind |
---|---|---|---|
3683/CHE/2015 | Jul 2015 | IN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/051390 | 9/22/2015 | WO | 00 |