Object storage (also known as object-based storage) is a
computer data storage
Computer data storage is a technology consisting of computer components and Data storage, recording media that are used to retain digital data (computing), data. It is a core function and fundamental component of computers.
The central pro ...
that manages data as objects, as opposed to other storage architectures like
file systems
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
which manages data as a file hierarchy, and
block storage
In computing (specifically data transmission and data storage), a block, sometimes called a physical record, is a sequence of bytes or bits, usually containing some whole number of records, having a maximum length; a ''block size''. Data thu ...
which manages data as blocks within sectors and tracks. Each object typically includes the data itself, a variable amount of
metadata
Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive metadata – the descriptive ...
, and a
globally unique identifier
A universally unique identifier (UUID) is a 128-bit label used for information in computer systems. The term globally unique identifier (GUID) is also used.
When generated according to the standard methods, UUIDs are, for practical purposes, un ...
. Object storage can be implemented at multiple levels, including the device level (object-storage device), the system level, and the interface level. In each case, object storage seeks to enable capabilities not addressed by other storage architectures, like interfaces that are directly programmable by the application, a namespace that can span multiple instances of physical hardware, and data-management functions like
data replication
Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility.
Terminology
Replication in comp ...
and data distribution at object-level granularity.
Object storage systems allow retention of massive amounts of
unstructured data
Unstructured data (or unstructured information) is information that either does not have a pre-defined data model or is not organized in a pre-defined manner. Unstructured information is typically text-heavy, but may contain data such as dates, num ...
in which data is written once and read once (or many times).
Object storage is used for purposes such as storing objects like videos and photos on
Facebook
Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin M ...
, songs on
Spotify
Spotify (; ) is a proprietary Swedish audio streaming and media services provider founded on 23 April 2006 by Daniel Ek and Martin Lorentzon. It is one of the largest music streaming service providers, with over 456 million monthly active us ...
, or files in online collaboration services, such as
Dropbox
Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, U.S. that offers cloud storage, file synchronization, personal cloud, and Client (computing), client software. Dropb ...
. One of the limitations with object storage is that it is not intended for
transactional data
In data management, the time scale of the data determines how it is processed and stored.
Dynamic data or transactional data is information that is periodically updated, meaning it changes asynchronously over time as new information becomes ava ...
, as object storage was not designed to replace
NAS
Nas (born 1973) is the stage name of American rapper Nasir Jones.
Nas, NaS, or NAS may also refer to:
Aviation
* Nasair, a low-cost airline carrier and subsidiary based in Eritrea
* National Air Services, an airline in Saudi Arabia
** Nas Air ( ...
file access and sharing; it does not support the locking and sharing mechanisms needed to maintain a single, accurately updated version of a file.
History
Origins
In 1995, research led by
Garth Gibson __NOTOC__
Garth Alan Gibson is a computer scientist from Carnegie Mellon University. Gibson's developed the RAID taxonomy of redundant data storage systems, along with David A. Patterson and Randy Katz.
Born in Aurora, Ontario, he holds a Ph. ...
on
Network-Attached Secure Disks
Network-attached storage (NAS) is a file-level (as opposed to block-level storage) computer data storage server connected to a computer network providing data access to a heterogeneous group of clients. The term "NAS" can refer to both the tech ...
first promoted the concept of splitting less common operations, like namespace manipulations, from common operations, like reads and writes, to optimize the performance and scale of both.
In the same year, a Belgian company - FilePool - was established to build the basis for archiving functions. Object storage was proposed at Gibson's
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
lab as a research project in 1996. Another key concept was abstracting the writes and reads of data to more flexible data containers (objects). Fine grained access control through object storage architecture was further described by one of the NASD team, Howard Gobioff, who later was one of the inventors of the
Google File System
Google File System (GFS or GoogleFS, not to be confused with the GFS Linux file system) is a proprietary distributed file system developed by Google to provide efficient, reliable access to data using large clusters of commodity hardware. Goo ...
. Other related work includes the
Coda
Coda or CODA may refer to:
Arts, entertainment, and media Films
* Movie coda, a post-credits scene
* ''Coda'' (1987 film), an Australian horror film about a serial killer, made for television
*''Coda'', a 2017 American experimental film from Na ...
filesystem project at
Carnegie Mellon
Carnegie may refer to:
People
* Carnegie (surname), including a list of people with the name
* Clan Carnegie, a lowland Scottish clan
Institutions Named for Andrew Carnegie
*Carnegie Building (Troy, New York), on the campus of Rensselaer Polyt ...
, which started in 1987, and spawned the
Lustre file system.
There is also the OceanStore project at UC Berkeley, which started in 1999 and the Logistical Networking project at the University of Tennessee Knoxville, which started in 1998. In 1999, Gibson founded
Panasas
Panasas is a data storage company that creates network-attached storage for technical computing environments.
History
Panasas is a computer data storage product company and is headquartered in San Jose, California. Panasas received seed funding ...
to commercialize the concepts developed by the NASD team.
Development
Seagate Technology
Seagate Technology Holdings plc is an American data storage company. It was incorporated in 1978 as Shugart Technology and commenced business in 1979. Since 2010, the company has been incorporated in Dublin, Ireland, with operational headquart ...
played a central role in the development of object storage. According to the
Storage Networking Industry Association
The Storage Networking Industry Association (SNIA) is a registered 501(c)(6) non-profit trade association incorporated in December 1997. SNIA has more than 185 unique members, 2,000 active contributing members and over 50,000 IT end users and sto ...
SNIA, “Object storage originated in the late 1990s: Seagate specifications from 1999 Introduced some of the first commands and how operating system effectively removed from consumption of the storage.”
A preliminary version of the “OBJECT BASED STORAGE DEVICES Command Set Proposal” dated 10/25/1999 was submitted by Seagate as edited by Seagate’s Dave Anderson and was the product of work by the National Storage Industry Consortium (NSIC) including contributions by
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
, Seagate, IBM, Quantum, and StorageTek. This paper was proposed to INCITS T-10 (
International Committee for Information Technology Standards
The InterNational Committee for Information Technology Standards (INCITS), (pronounced "insights"), is an ANSI-accredited standards development organization composed of Information technology developers. It was formerly known as the X3 and NCITS. ...
) with a goal to form a committee and design a specification based on the SCSI interface protocol. This defined objects as abstracted data, with unique identifiers and metadata, how objects related to file systems, along with many other innovative concepts. Anderson presented many of these ideas at the SNIA conference in October 1999. The presentation revealed an IP Agreement that had been signed in February 1997 between the original collaborators (with Seagate represented by Anderson and Chris Malakapalli) and covered the benefits of object storage, scalable computing, platform independence, and storage management.
Architecture
Abstraction of storage
One of the design principles of object storage is to abstract some of the lower layers of storage away from the administrators and applications. Thus, data is exposed and managed as objects instead of
blocks or (exclusively) files. Objects contain additional descriptive properties which can be used for better indexing or management. Administrators do not have to perform lower-level storage functions like constructing and managing
logical volumes to utilize disk capacity or setting
RAID
Raid, RAID or Raids may refer to:
Attack
* Raid (military), a sudden attack behind the enemy's lines without the intention of holding ground
* Corporate raid, a type of hostile takeover in business
* Panty raid, a prankish raid by male college ...
levels to deal with disk failure.
Object storage also allows the addressing and identification of individual objects by more than just file name and file path. Object storage adds a unique identifier within a bucket, or across the entire system, to support much larger namespaces and eliminate name collisions.
Inclusion of rich custom metadata within the object
Object storage explicitly separates file metadata from data to support additional capabilities.
As opposed to fixed metadata in file systems (filename, creation date, type, etc.), object storage provides for full function, custom, object-level metadata in order to:
* Capture application-specific or user-specific information for better indexing purposes
* Support data-management policies (e.g. a policy to drive object movement from one storage tier to another)
* Centralize management of storage across many individual nodes and clusters
* Optimize metadata storage (e.g. encapsulated, database or key value storage) and caching/indexing (when authoritative metadata is encapsulated with the metadata inside the object) independently from the data storage (e.g. unstructured binary storage)
Additionally, in some object-based file-system implementations:
* The file system clients only contact metadata servers once when the file is opened and then get content directly via object-storage servers (vs. block-based file systems which would require constant metadata access)
* Data objects can be configured on a per-file basis to allow adaptive stripe width, even across multiple object-storage servers, supporting optimizations in bandwidth and I/O
Object-based storage devices (OSD) as well as some software implementations (e.g., DataCore Swarm) manage metadata and data at the storage device level:
* Instead of providing a block-oriented interface that reads and writes fixed sized blocks of data, data is organized into flexible-sized data containers, called objects
* Each object has both data (an uninterpreted sequence of bytes) and metadata (an extensible set of attributes describing the object); physically encapsulating both together benefits recoverability.
* The command interface includes commands to create and delete objects, write bytes and read bytes to and from individual objects, and to set and get attributes on objects
* Security mechanisms provide per-object and per-command access control
Programmatic data management
Object storage provides programmatic interfaces to allow applications to manipulate data. At the base level, this includes Create, read, update and delete (
CRUD
In computer programming, create, read, update, and delete (CRUD) are the four basic operations of persistent storage. CRUD is also sometimes used to describe user interface conventions that facilitate viewing, searching, and changing information u ...
) functions for basic read, write and delete operations. Some object storage implementations go further, supporting additional functionality like
object/file versioning, object replication, life-cycle management and movement of objects between different tiers and types of storage. Most API implementations are
REST
Rest or REST may refer to:
Relief from activity
* Sleep
** Bed rest
* Kneeling
* Lying (position)
* Sitting
* Squatting position
Structural support
* Structural support
** Rest (cue sports)
** Armrest
** Headrest
** Footrest
Arts and entert ...
-based, allowing the use of many standard
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
calls.
Implementation
Cloud storage
The vast majority of cloud storage available in the market leverages is an object-storage architecture. Some notable examples are
Amazon Web Services S3, which debuted in March 2006,
Microsoft Azure
Microsoft Azure, often referred to as Azure ( , ), is a cloud computing platform operated by Microsoft for application management via around the world-distributed data centers. Microsoft Azure has multiple capabilities such as software as a ...
Blob Storage,
Rackspace
Rackspace Technology, Inc. is an American cloud computing company based in Windcrest, Texas, an inner suburb of San Antonio, Texas. The company also has offices in Blacksburg, Virginia, and Austin, Texas, as well as in Australia, Canada, United ...
Files (whose code was donated in 2010 to Openstack project and released as
OpenStack Swift
OpenStack is a free software, free, open-source software, open standard cloud computing platform. It is mostly deployed as Cloud computing#Infrastructure as a service (IaaS), infrastructure-as-a-service (IaaS) in both public and private clouds w ...
), and
Google Cloud Storage
Google Cloud Storage is a RESTful online file storage web service for storing and accessing data on Google Cloud Platform infrastructure. The service combines the performance and scalability of Google's cloud with advanced security and sharing ...
released in May 2010.
Object-based file systems
Some distributed file systems use an object-based architecture, where file metadata is stored in metadata servers and file data is stored in object storage servers. File system client software interacts with the distinct servers, and abstracts them to present a full file system to users and applications.
Object-storage systems
Some early incarnations of object storage were used for archiving, as implementations were optimized for data services like immutability, not performance.
EMC Centera and Hitachi HCP (formerly known as HCAP) are two commonly cited object storage products for archiving. Another example is
Quantum
In physics, a quantum (plural quanta) is the minimum amount of any physical entity (physical property) involved in an interaction. The fundamental notion that a physical property can be "quantized" is referred to as "the hypothesis of quantizati ...
ActiveScale Object Storage Platform.
More general-purpose object-storage systems came to market around 2008. Lured by the incredible growth of "captive" storage systems within web applications like Yahoo Mail and the early success of cloud storage, object-storage systems promised the scale and capabilities of cloud storage, with the ability to deploy the system within an enterprise, or at an aspiring cloud-storage service provider.
Unified file and object storage
A few object-storage systems support Unified File and Object storage, allowing clients to store objects on a storage system while simultaneously other clients store files on the same storage system.
Other vendors in the area of
Hybrid cloud storage Hybrid cloud storage, in Computer data storage, data storage, is a term for a storage infrastructure that uses a combination of on-premises storage resources with a public cloud storage provider. The on-premises storage is usually managed by the org ...
are using
Cloud storage gateways to provide a file access layer over object storage, implementing file access protocols such as SMB and NFS.
"Captive" object storage
Some large Internet companies developed their own software when object-storage products were not commercially available or use cases were very specific. Facebook famously invented their own object-storage software, code-named Haystack, to address their particular massive-scale photo management needs efficiently.
Object-based storage devices
Object storage at the protocol and device layer was proposed 20 years ago and approved for the
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, electrical, optical and logical interface ...
command set nearly 10 years ago as "Object-based Storage Device Commands" (OSD), however, it had not been put into production until the development of the Seagate Kinetic Open Storage platform. The
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, electrical, optical and logical interface ...
command set for Object Storage Devices was developed by a working group of the SNIA for the T10 committee of the
International Committee for Information Technology Standards
The InterNational Committee for Information Technology Standards (INCITS), (pronounced "insights"), is an ANSI-accredited standards development organization composed of Information technology developers. It was formerly known as the X3 and NCITS. ...
(INCITS). T10 is responsible for all SCSI standards.
Market adoption
One of the first object-storage products, Lustre, is used in 70% of the Top 100 supercomputers and ~50% of the
Top 500. As of June 16, 2013, this includes 7 of the top 10, including the current fourth fastest system on the list - China's Tianhe-2 and the seventh fastest, the
Titan supercomputer at the
Oak Ridge National Laboratory
Oak Ridge National Laboratory (ORNL) is a U.S. multiprogram science and technology national laboratory sponsored by the U.S. Department of Energy (DOE) and administered, managed, and operated by UT–Battelle as a federally funded research and ...
.
Object-storage systems had good adoption in the early 2000s as an archive platform, particularly in the wake of compliance laws like
Sarbanes-Oxley. After five years in the market, EMC's Centera product claimed over 3,500 customers and 150
petabytes
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
shipped by 2007. Hitachi's HCP product also claims many
petabyte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
-scale customers. Newer object storage systems have also gotten some traction, particularly around very large custom applications like eBay's auction site, where EMC Atmos is used to manage over 500 million objects a day. As of March 3, 2014, EMC claims to have sold over 1.5 exabytes of Atmos storage. On July 1, 2014,
Los Alamos National Lab
Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, in ...
chose the
Scality RING as the basis for a 500-petabyte storage environment, which would be among the largest ever.
"Captive" object storage systems like Facebook's Haystack have scaled impressively. In April 2009, Haystack was managing 60 billion photos and 1.5 petabytes of storage, adding 220 million photos and 25 terabytes a week.
Facebook more recently stated that they were adding 350 million photos a day and were storing 240 billion photos. This could equal as much as 357 petabytes.
Cloud storage has become pervasive as many new web and mobile applications choose it as a common way to store
binary data
Binary data is data whose unit can take on only two possible states. These are often labelled as 0 and 1 in accordance with the binary numeral system and Boolean algebra.
Binary data occurs in many different technical and scientific fields, wher ...
. As the storage back-end to many popular applications like
Smugmug
SmugMug is a paid image sharing, image hosting service, and online video platform on which users can upload photos and videos. The company also facilitates the sale of digital and print media for amateur and professional photographers. On Apri ...
and
Dropbox
Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, U.S. that offers cloud storage, file synchronization, personal cloud, and Client (computing), client software. Dropb ...
,
Amazon S3
Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its e- ...
has grown to massive scale, citing over 2-trillion objects stored in April 2013. Two months later, Microsoft claimed that they stored even more objects in Azure at 8.5 trillion. By April 2014, Azure claimed over 20-trillion objects stored. Windows Azure Storage manages Blobs (user files), Tables (structured storage), and Queues (message delivery) and counts them all as objects.
Market analysis
IDC has begun to assess the object-based-storage market annually using its MarketScape methodology. IDC describes the MarketScape as: "...a quantitative and qualitative assessment of the characteristics that assess a vendor's current and future success in the said market or market segment and provide a measure of their ascendancy to become a Leader or maintain a leadership. IDC MarketScape assessments are particularly helpful in emerging markets that are often fragmented, have several players, and lack clear leaders."
In 2019, IDC rated
Dell EMC
Dell EMC (EMC Corporation until 2016) is an American multinational corporation headquartered in Hopkinton, Massachusetts and Round Rock, Texas, United States. Dell EMC sells data storage, information security, virtualization, analytics, cloud c ...
,
Hitachi Data Systems
Hitachi Data Systems (HDS) was a provider of modular mid-range and high-end computer data storage systems, software and services. Its operations are now a part of Hitachi Vantara.
It was a wholly owned subsidiary of Hitachi Ltd. and part of th ...
,
IBM,
NetApp
NetApp, Inc. is an American hybrid cloud data services and data management company headquartered in San Jose, California. It has ranked in the Fortune 500 from 2012–2021. Founded in 1992 with an IPO in 1995, NetApp offers cloud data services ...
, and
Scality as leaders.
Standards
Object-based storage device standards
OSD version 1
In the first version of the OSD standard, objects are specified with a 64-bit partition ID and a 64-bit object ID. Partitions are created and deleted within an OSD, and objects are created and deleted within partitions. There are no fixed sizes associated with partitions or objects; they are allowed to grow subject to physical size limitations of the device or logical quota constraints on a partition.
An extensible set of attributes describe objects. Some attributes are implemented directly by the OSD, such as the number of bytes in an object and the modification time of an object. There is a special policy tag attribute that is part of the security mechanism. Other attributes are uninterpreted by the OSD. These are set on objects by the higher-level storage systems that use the OSD for persistent storage. For example, attributes might be used to classify objects, or to capture relationships among different objects stored on different OSDs.
A list command returns a list of identifiers for objects within a partition, optionally filtered by matches against their attribute values. A list command can also return selected attributes of the listed objects.
Read and write commands can be combined, or piggy-backed, with commands to get and set attributes. This ability reduces the number of times a high-level storage system has to cross the interface to the OSD, which can improve overall efficiency.
OSD version 2
A second generation of the SCSI command set, "Object-Based Storage Devices - 2" (OSD-2) added support for snapshots, collections of objects, and improved error handling.
A
snapshot
Snapshot, snapshots or snap shot may refer to:
* Snapshot (photography), a photograph taken without preparation
Computing
* Snapshot (computer storage), the state of a system at a particular point in time
* Snapshot (file format) or SNP, a file ...
is a point-in-time copy of all the objects in a partition into a new partition. The OSD can implement a space-efficient copy using
copy-on-write
Copy-on-write (COW), sometimes referred to as implicit sharing or shadowing, is a resource-management technique used in computer programming to efficiently implement a "duplicate" or "copy" operation on modifiable resources. If a resource is dupl ...
techniques so that the two partitions share objects that are unchanged between the snapshots, or the OSD might physically copy the data to the new partition. The standard defines clones, which are writeable, and snapshots, which are read-only.
A collection is a special kind of object that contains the identifiers of other objects. There are operations to add and delete from collections, and there are operations to get or set attributes for all the objects in a collection. Collections are also used for error reporting. If an object becomes damaged by the occurrence of a media defect (i.e., a bad spot on the disk) or by a software error within the OSD implementation, its identifier is put into a special error collection. The higher-level storage system that uses the OSD can query this collection and take corrective action as necessary.
Differences between key-value and object stores
The border between an object store and a
key-value store is blurred, with key-value stores being sometimes loosely referred to as object stores.
A traditional block storage interface uses a series of fixed size blocks which are numbered starting at 0. Data must be that exact fixed size and can be stored in a particular block which is identified by its logical block number (LBN). Later, one can retrieve that block of data by specifying its unique LBN.
With a key-value store, data is identified by a key rather than a LBN. A key might be "cat" or "olive" or "42". It can be an arbitrary sequence of bytes of arbitrary length. Data (called a value in this parlance) does not need to be a fixed size and also can be an arbitrary sequence of bytes of arbitrary length. One stores data by presenting the key and data (value) to the data store and can later retrieve the data by presenting the key. This concept is seen in programming languages. Python calls them dictionaries, Perl calls them hashes, Java and C++ call them maps, etc. Several data stores also implement key-value stores such as Memcached, Redis and CouchDB.
Object stores are similar to key-value stores in two respects. First, the object identifier or
URL (the equivalent of the key) can be an arbitrary string.
Second, data may be of an arbitrary size.
There are, however, a few key differences between key-value stores and object stores. First, object stores also allow one to associate a limited set of attributes (metadata) with each piece of data. The combination of a key, value, and set of attributes is referred to as an object. Second, object stores are optimized for large amounts of data (hundreds of megabytes or even gigabytes), whereas for key-value stores the value is expected to be relatively small (kilobytes). Finally, object stores usually offer weaker consistency guarantees such as
eventual consistency
Eventual consistency is a consistency model used in distributed computing to achieve high availability that informally guarantees that, if no new updates are made to a given data item, eventually all accesses to that item will return the last upd ...
, whereas key-value stores offer
strong consistency
Strong consistency is one of the consistency models used in the domain of concurrent programming (e.g., in distributed shared memory, distributed transactions).
The protocol is said to support strong consistency if:
# All accesses are seen by all ...
.
See also
*
Block storage
In computing (specifically data transmission and data storage), a block, sometimes called a physical record, is a sequence of bytes or bits, usually containing some whole number of records, having a maximum length; a ''block size''. Data thu ...
*
File storage
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
*
Cloud storage
Cloud storage is a model of computer data storage in which the digital data is stored in logical pools, said to be on "the cloud". The physical storage spans multiple servers (sometimes in multiple locations), and the physical environment is t ...
*
Clustered file system
*
Object access method
Object access method (OAM) is an access method
An access method is a function of a mainframe operating system that enables access to data on disk, tape or other external devices. Access methods were present in several mainframe operating syst ...
References
{{Reflist, 30em
Computer file systems
Computer data storage
Data management
Data management software
*