Object storage architecture

The object storage infrastructure consists of the following entities: object servers (OS), name servers (NS), S3 gateways (GW), and the block-level backend.

These entities run as services on the Virtuozzo Hybrid Infrastructure nodes. Each service should be deployed on multiple Virtuozzo Hybrid Infrastructure nodes for high availability.

By default, there are 10 instances of NS and OS per each node in the S3 cluster. The services are highly available: the system automatically keeps them online if at least one machine in the S3 cluster is up and running. If an NS or OS service fails, the whole S3 cluster cannot operate normally.

  • An object server stores actual object data received from an S3 gateway. The data is packed into special containers to achieve high performance. The containers are redundant, which means you can specify the redundancy mode while configuring object storage. An object server also stores its own data in block storage with built-in high availability.
  • A name server stores object metadata received from an S3 gateway. Metadata includes object name, size, ACL (access control list), location, owner, and similar. A name server (NS) also stores its own data in block storage with built-in high availability.
  • An S3 gateway is a data proxy between object storage services and end users. It receives and handles Amazon S3 protocol requests, and S3 user authentication and ACL checks. The S3 gateway uses the NGINX web server for external connections and has no data of its own (that is, it is stateless).
  • The block-level backend is block storage with high availability of services and data. Since all object storage services run on hosts, no virtual environments (and hence licenses) are required for object storage.