Object storage is used to store photos on Facebook, songs on Spotify or files on Dropbox and Google Cloud. In simple language, object storage is a type of cloud storage. Object storage systems enable the retention of massive amounts of unstructured data.
Object storage is a data storage system which handles data as objects. In the case of computer file systems, data is handled as a hierarchy of files, whereas in block storage, data is handled as blocks within sectors. In the case of object storage, each object includes data, metadata, and a unique global identifier. Object storage can be implemented at multiple levels, including the device level, the system level, and the interface layer. Seagate Technology played a central role in the development of object storage in the 90s.
Implementation of Object Storage
Most cloud storage available on the market makes use of an object storage architecture. Some notable examples are Dropbox, Amazon Web Services S3, Rackspace Cloud Files/OpenStack Swift and Google Cloud Storage.
Some of the distributed file systems use an object-based architecture. Some implementations of object storage were used for object archiving, as implementations were optimized for data services such as data immutability.
A few object storage systems support Unified File and Object (UFO) storage, allowing some clients to store objects on one storage system while other clients store files on the same storage system at the same time. Although the term hybrid storage is not widely used due to confusion with hybrid disk and flash storage. Examples of such include Ceph, GlusterFS, Cloudian, and IBM Spectrum Scale.
Some large Internet companies developed their software when object storage products were not yet commercially available or the use cases were very specific.
In addition to object storage systems that own the managed files, some systems provide object abstraction over one or more traditional file system-based solutions. These solutions do not have the underlying raw storage, but actively mirror the file system changes and replicate them in their object browser, along with any metadata that can be automatically extracted from the files. Users can then add additional metadata through the object virtual store APIs. Typically, a global namespace and replication capabilities are supported both within and between file systems. Also, Protocol and device-level object storage is implemented nearly 10 years ago.
Below is an example illustration by IBM on how we should use object storage.
Limitations of Object Storage
On Linux servers, we commonly use sed, echo etc tools to edit a line. In the case of object storage, we need to read and write an entire object at once. Object storage does not allow us to alter a piece of a data blob. If a log file is on the object storage, we can not just edit one line of it. That limits the use case of object storage in server administration.
Operating systems are not designed to mount an object store, unlike a normal disk. Using an object store is not as simple as with a file browser. We can not use object storage to back a traditional database in real-time. Of course, we can save a database backup, for example, an SQL file on object storage.
It is not easy for hackers to exploit an API to get unauthorized access to object storage. Also, the process is slow and time-consuming. Hence it is safer than an FTP server. However, it is suggested to encrypt the data before uploading it to object storage.
Object storage is not ideal for data that changes very frequently. It is commonly used as secondary backup storage. The advantage of object storage is searchability, scalability, resiliency and cost efficiency. With a proper automated multi-cloud replication setup, a device backup is unlikely to get lost forever.