Book of Storage Services
Objects (Object Services)
The Nutanix Objects feature provides highly scalable and durable object services via an S3 compliant API (More Information on S3: LINK). Given Nutanix Objects is deployed on top of the Nuatnix platform, it can take advantage of AOS features like deduplication, compression, replication and more. Objects was introduced in AOS 5.11.
The solution is applicable to the configurations below (list may be incomplete, refer to documentation for a fully supported list):
Core Use Case(s):
- Big data/analytics
- Prism Central (PC)
- N/A - Runs on Nutanix MSP (Dependent on MSP supported Hypervisors)
- S3 (version 4)
Nutanix Microservices Platform (MSP)
Nutanix Objects leverages the Nutanix Microservices Platform (MSP) and is one of the first core services to do so.
Nutanix MSP provides a common framework and services to deploy the Objects component's associated containers and platform services like Identity and Access Management (IAM) and Load Balancing (LB).
The following key terms are used throughout this section and defined in the following:
- An organization unit exposed to users and contains the objects (think share to a file on a file server). A deployment can, and typically will, have multiple buckets (e.g. departmental, compartmental, etc.)
- The actual unit (blob) of storage and item interfaced with via the API (GET/PUT).
- The term used to describe the original object service Amazon Web Services (AWS) introduced. Now is used synonomysously for an object service. S3 also is used to define the object API which is highly leveraged throughout projects.
The figure shows the high-level mapping of the conceptual structure:
Objects - Hierarchy
This feature is composed of a few high-level constructs:
- Load Balancer
- The load balancer is part of the Nutanix MSP and serves as a proxy for service and data requests. This ensures high-availability for the service and load balancing among the Objects containers.
- Service Manager
- The service manager serves as the endpoint for all UI requests and manages object store instances. It is also responsible for collecting stats from instances.
- Metadata Server
- The metadata server is responsible to containing all the meta information around a Nutanix Objects deployment (e.g. buckets, objects, etc.). Leverages ChakrDB which is a RocksDB based Key-Value store developed by Nutanix. ChakrDB uses Nutanix ABS for storage.
- Object Controller
- The Object Controller is responsible for managing object data and coordinates metadata updates with the Metadata Server. It interfaces with Stargate via the Storage Proxy API.
- Region Manager
- The Region Manager is responsible to managing all of the object storage information (e.g. Region) on DSF.
- A region provides the high-level mapping between an object and the corresponding locations on Nutanix vDisk(s). Similar to a vDisk ID, offset and length.
- Atlas Service
- The Atlas Service is responsible for object lifecycle policy enforcement and performing garbage collection.
The figure shows a detailed view of the Objects service architecture:
Objects - Architecture
The Objects specific components are highlighted in Nutanix Green. With objects there’s no concept of an “overwrite” hence the CxxD vs. CRUD (Create/Replace/Update/Delete). The commonly employed method for an object “overwrite” is to create a new revision or create a new object and point to the new object.
Object Storage and I/O
An object is stored in logical constructs called regions. A region is a fixed segment of space on a vDisk.
The figure shows an example of the relationship between a vDisk and region:
Objects - vDisk Region
Smaller objects may fit in a chunk of a single region (region id, offset, length), whereas larger objects may get striped across regions. When a large object is striped across multiple regions these regions can be hosted on multiple vDisks allowing multiple Stargates to be leveraged concurrently.
The figure shows an example of the relationship between a object, chunk and region:
Objects - Object Chunk
The object services feature follows the same methodology for distribution as the Nutanix platform to ensure availability and scale. A minimum of 3 object VMs will be deployed as part of the Objects deployment.