Chapter 18. Managing Unified File and Object Storage

Unified File and Object Storage unifies NAS and object storage technology. It provides a system for data storage that enables users to access the same data, both as an object and as a file, thus simplifying management and controlling storage costs.
Red Hat Storage is based on glusterFS, an open source distributed file system. Unified File and Object Storage is built upon OpenStack's Object Storage Swift. OpenStack Object Storage allows users to store and retrieve files and content through a simple Web Service REST (Representational State Transfer) interface as objects and glusterFS, allows users to store and retrieve files using Native FUSE and NFS mounts. It uses glusterFS as a back-end file system for OpenStack Swift. It also leverages on OpenStack Swift's web interface for storing and retrieving files over the web combined with glusterFS features like scalability and high availability, replication, elastic volume management for data management at disk level.
Unified File and Object Storage technology enables enterprises to adopt and deploy cloud storage solutions. It allows users to access and modify data as objects from a REST interface along with the ability to access and modify files from NAS interfaces including NFS and SMB. In addition to decreasing cost and making it faster and easier to access object data, it also delivers massive scalability, high availability and replication of object storage. Infrastructure as a Service (IaaS) providers can utilize Red Hat Storage Unified File and Object Storage technology to enable their own cloud storage service. Enterprises can use this technology to accelerate the process of preparing file-based applications for the cloud and simplify new application development for cloud computing environments.
OpenStack Object Storage is an open source software for creating redundant, scalable object storage using clusters of standardized servers to store petabytes of accessible data. It is not a file system or real-time data storage system, but rather a long-term storage system for a more permanent type of static data that can be retrieved, leveraged, and updated.
Unified File and Object Storage Architecture

Figure 18.1. Unified File and Object Storage Architecture


When you install Red Hat Storage 2.0, Unified File and Object Storage is automatically installed, by default.

18.1. Components of Object Storage

The major components of Object Storage are:
Proxy Server
All REST requests to the Unified File and Object Storage are routed through the Proxy Server.
Objects and Containers
An object is the basic storage entity and any optional metadata that represents the data you store. When you upload data, the data is stored as-is (with no compression or encryption).
A container is a storage compartment for your data and provides a way for you to organize your data. Containers can be visualized as directories in a Linux system. Data must be stored in a container and hence objects are created within a container.
It implements objects as files and directories under the container. The object name is a '/' separated path and Unified File and Object Storage maps it to directories until the last name in the path, which is marked as a file. With this approach, objects can be accessed as files and directories from native glusterFS (FUSE) or NFS mounts by providing the '/' separated path.
Accounts and Account Servers
The OpenStack Object Storage system is designed to be used by many different storage consumers. Each user is associated with one or more accounts and must identify themselves using an authentication system. While authenticating, users must provide the name of the account for which the authentication is requested.
Unified File and Object Storage implements accounts as Red Hat Storage volumes. So, when a user is granted read/write permission on an account, it means that the user has access to all the data available on that Red Hat Storage volume.
Authentication and Access Permissions
You must authenticate against an authentication service to receive OpenStack Object Storage connection parameters and an authentication token. The token must be passed in for all subsequent container or object operations. One authentication service that you can use as a middleware example is called tempauth.
By default, each user has their own storage account and has full access to that account. Users must authenticate with their credentials as described above, but once authenticated they can manage containers and objects within that account. If a user wants to access the content from another account, they must have API access key or a session token provided by their authentication system.