# US 2017/0286707 A1 · Unified file and object storage architecture for clustered file systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286707 A1
- Document ID: US20170286707A1
- Status: Published application
- Kind: A1
- Application number: 15/085,367
- Filed: 2016-03-30
- Published: 2017-10-05
- Earliest claimed: 2016-03-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Sasikanth Eda; Dean Hildebrand; Ashutosh V. Mate; Varun Mittal; William W. Owen; Sandeep R. Patil; Smita J. Raut
- Web page: https://patentgrep.com/patent/US20170286707A1

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/182: Distributed file systems
- G06F 16/1827: {Management specifically adapted to NAS (management of storage area networks [SAN] G06F3/067)}
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/205: {involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved (negotiation of communication capabilities H04L69/24)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A processor may identify a first directory in the UFO storage system. The first directory may include one or more subdirectories in one or more levels under the first directory. The one or more subdirectories may include a second directory that has includes one or more objects. The first directory may be associated with a first inode, and the second directory may be associated with a second inode. The processor may perform a stat call on the second directory to determine metadata attributes for the one or more objects that are stored in the second directory. The metadata attributes for the one or more objects may be stored in the second inode. The processor may add the metadata attributes for the one or more objects to the first inode.

## Claims

### Claim 1

A computer implemented method comprising:
identifying, by a processor, a first directory in a unified file and object (UFO) storage system, the first directory having one or more subdirectories in one or more levels under the first directory, the one or more subdirectories including a second directory, the second directory having one or more objects, the first directory being associated with a first inode and the second directory being associated with a second inode;
performing a stat call on the second directory to determine metadata attributes for the one or more objects, the metadata attributes for the one or more objects being stored in the second inode; and
adding the metadata attributes for the one or more objects to the first inode.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising:
determining metadata attributes for a first object that is in the first directory; and
populating the first inode with at least the metadata attributes for the first object.

### Claim 3 (depends on 1)

The method of claim 1, wherein the adding the metadata attributes for the one or more objects to the first inode comprises:
determining that the first inode includes one or more entries;
determining that the one or more entries do not include an entry for the one or more objects;
generating a new entry in the first inode for each of the one or more objects; and
populating each new entry with the metadata attributes for one of the one or more objects such that each of the one or more objects has an associated entry in the first inode.

### Claim 4 (depends on 2)

The method of claim 2, the method further comprising:
identifying one or more metadata parameters for objects in the UFO storage system, the UFO storage system having a UFO namespace where data can be accessed as an object and as a file, the one or more metadata parameters being parameters that are generated for objects stored in the UFO storage system;
determining that a second object has been updated using a file storage interface;
generating, by the processor and in response to determining that the second object has been updated using the file storage interface, metadata for the second object, the generated metadata including values for the one or more metadata parameters; and
appending the metadata to the second object.

### Claim 5 (depends on 4)

The method of claim 4, wherein the determining that the second object has been updated using the file storage interface comprises:
receiving, by the processor, a file system event notification.

### Claim 6 (depends on 5)

The method of claim 5, wherein the file system event notification is selected from a group consisting of a file update notification, a close call, a save call, a file creation notification, and a file deletion notification.

### Claim 7 (depends on 4)

The method of claim 4, wherein the one or more metadata parameters are configurable by a user during a creation of the UFO namespace.

### Claim 8 (depends on 4)

The method of claim 4, the method further comprising:
identifying a third directory, the third directory being a directory in the file storage system that contains the second object;
updating a third inode for the third directory, the third inode storing the metadata attributes for the second object, wherein the updating includes updating the metadata attributes of the second object;
determining that the third directory is not a top-level directory;
passing, in response to determining that the third directory is not the top-level directory, the metadata attributes for the second object to a fourth directory, the fourth directory being a parent directory of the third directory; and
updating a fourth inode using the metadata attributes for the second object, the fourth inode being associated with the fourth directory.

### Claim 9 (depends on 4)

The method of claim 4, the method further comprising:
updating a first container database file, the first container database file storing a list of objects in a first container and associated object statistics for the objects in the first container, the objects in the first container including the second object; and
updating a first account database file, the first account database file storing a list of one or more containers and associated container statistics for the one or more containers, the one or more containers including the first container.

### Claim 10 (depends on 1)

The method of claim 1, wherein the one or more objects includes a first object, the method further comprising;
determining that the first object has been modified;
determining updated metadata attributes for the first object;
updating the second inode with the updated metadata attributes for the first object;
passing the updated metadata attributes for the first object to the first directory; and
updating the metadata attributes for the first object in the first inode.

### Claim 11 (depends on 10)

The method of claim 10, wherein the determining that the first object has been modified comprises:
receiving, by the processor, a file system event notification for the first object, the file system event notification indicating that the first object has been modified.

### Claim 12 (depends on 2)

The method of claim 2, the method further comprising:
identifying, by an Information Lifecycle Management (ILM) policy engine, a first rule;
determining, by analyzing the first inode using the first rule, a second object in the UFO storage system, the second object being an object that needs to be migrated to a new storage device; and
migrating the second object to the new storage device.

### Claim 13 (depends on 2)

The method of claim 2, the method further comprising:
determining that a user has modified an access control list setting for a second object that is stored in a third directory;
comparing the modified access control list setting for the second object to a container access control list setting for a first container by analyzing an inode associated with the third directory, the first container including the second object; and
determining whether the modified access control list setting for the second object matches the container access control list setting.

### Claim 14 (depends on 13)

The method of claim 13, the method further comprising:
notifying, in response to determining that the modified access control list setting for the second object does not match the container access control list setting, the user of the mismatch;
prompting the user to approve the modified access control list setting for the second object; and
updating, in response to the user approving the modified access control list setting, the inode associated with the third directory.

### Claim 15

A computer implemented method comprising:
identifying a first directory in a unified file and object (UFO) storage system, the first directory being a root directory having a tree structure with one or more subdirectories organized in one or more levels, the first directory and each of the one or more subdirectories having an associated inode that stores metadata;
identifying a leaf directory, the leaf directory being a subdirectory of the first directory, the leaf directory having no child directory;
determining metadata attributes for the leaf directory;
storing the metadata attributes for the leaf directory in the inode for the leaf directory;
passing the metadata attributes for the leaf directory to a first parent directory, the first parent directory being the parent directory of the leaf directory;
accumulating the metadata attributes for the leaf directory in the inode for the first parent directory; and
determining whether the first parent directory is the first directory.

### Claim 16 (depends on 15)

The method of claim 15, the method further comprising:
determining, in response to determining that the first parent directory is not the first directory, that the first parent directory is an intermediate directory;
determining metadata attributes for the first parent directory;
storing the metadata attributes for the first parent directory and the metadata attributes for the leaf directory in the inode for the first parent directory, the inode for the first parent directory having an extended inode space;
passing the metadata attributes for the leaf directory and the metadata attributes for the first parent directory to a second parent directory, the second parent directory being the parent directory of the first parent directory;
accumulating the metadata attributes for the leaf directory and the first parent directory in the inode for the second parent directory; and
determining whether the second parent directory is the first directory.

### Claim 17 (depends on 15)

The method of claim 15, the method further comprising:
determining, in response to determining that the first parent directory is the first directory, metadata attributes for the first directory; and
storing the metadata attributes for the first directory and the metadata attributes for the leaf directory in the inode for the first directory, the inode for the first directory having an extended inode space.

### Claim 18

A system comprising:
a memory;
a processor in communication with the memory, the processor being configured to perform a method comprising:
identifying a first directory in a unified file and object (UFO) storage system, the first directory having one or more subdirectories in one or more levels under the first directory, the one or more subdirectories including a second directory, the second directory having one or more objects, the first directory being associated with a first inode and the second directory being associated with a second inode;
performing a stat call on the second directory to determine metadata attributes for the one or more objects, the metadata attributes for the one or more objects being stored in the second inode; and
adding the metadata attributes for the one or more objects to the first inode.

### Claim 19 (depends on 18)

The system of claim 18, wherein the method performed by the processor further comprises:
identifying one or more metadata parameters for objects in the UFO storage system, the UFO storage system having a UFO namespace where data can be accessed as an object and as a file, the one or more metadata parameters being parameters that are generated for objects stored in the UFO storage system;
determining that a second object has been updated using a file storage interface;
generating, by the processor and in response to determining that the second object has been updated using the file storage interface, metadata for the second object, the generated metadata including values for the one or more metadata parameters; and
appending the metadata to the second object.

### Claim 20 (depends on 18)

The system of claim 18, wherein the one or more objects includes a first object, the method performed by the processor further comprising;
determining that the first object has been modified;
determining updated metadata attributes for the first object;
updating the second inode with the updated metadata attributes for the first object;
passing the updated metadata attributes for the first object to the first directory; and
updating the metadata attributes for the first object in the first inode.

### Claim 21 (depends on 18)

The system of claim 18, wherein the method performed by the processor further comprises:
determining that a user has modified an access control list setting for a second object that is stored in a third directory;
comparing the modified access control list setting for the second object to a container access control list setting for a first container by analyzing an inode associated with the third directory, the first container including the second object;
determining whether the modified access control list setting for the second object matches the container access control list setting;
notifying, in response to determining that the modified access control list setting for the second object does not match the container access control list setting, the user of the mismatch;
prompting the user to approve the modified access control list setting for the second object; and
updating, in response to the user approving the modified access control list setting, the inode associated with the third directory.

### Claim 22

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:
identifying, by the processor, a first directory in a unified file and object (UFO) storage system, the first directory having one or more subdirectories in one or more levels under the first directory, the one or more subdirectories including a second directory, the second directory having one or more objects, the first directory being associated with a first inode and the second directory being associated with a second inode;
performing a stat call on the second directory to determine metadata attributes for the one or more objects, the metadata attributes for the one or more objects being stored in the second inode; and
adding the metadata attributes for the one or more objects to the first inode.

### Claim 23 (depends on 22)

The computer program product of claim 22, wherein the method performed by the processor further comprises:
identifying one or more metadata parameters for objects in the UFO storage system, the UFO storage system having a UFO namespace where data can be accessed as an object and as a file, the one or more metadata parameters being parameters that are generated for objects stored in the UFO storage system;
determining that a second object has been updated using a file storage interface;
generating, by the processor and in response to determining that the second object has been updated using the file storage interface, metadata for the second object, the generated metadata including values for the one or more metadata parameters; and
appending the metadata to the second object.

### Claim 24 (depends on 22)

The computer program product of claim 22, wherein the one or more objects includes a first object, the method performed by the processor further comprising;
determining that the first object has been modified;
determining updated metadata attributes for the first object;
updating the second inode with the updated metadata attributes for the first object;
passing the updated metadata attributes for the first object to the first directory; and
updating the metadata attributes for the first object in the first inode.

### Claim 25 (depends on 22)

The computer program product of claim 22, wherein the method performed by the processor further comprises:
determining that a user has modified an access control list setting for a second object that is stored in a third directory;
comparing the modified access control list setting for the second object to a container access control list setting for a first container by analyzing an inode associated with the third directory, the first container including the second object;
determining whether the modified access control list setting for the second object matches the container access control list setting;
notifying, in response to determining that the modified access control list setting for the second object does not match the container access control list setting, the user of the mismatch;
prompting the user to approve the modified access control list setting for the second object; and
updating, in response to the user approving the modified access control list setting, the inode associated with the third directory.
