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.
The NS and OS 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.
By default, each S3 node runs 4 S3 gateways and can run up to 10 NS and 10 OS instances, but the entire S3 cluster cannot host more than 24 OS and 16 NS instances. For example:
- A single-node S3 cluster hosts 4 GW, 10 OS, and 10 NS services.
- A two-node S3 cluster hosts 8 GW, 20 OS, and 16 NS services.
- A three-node S3 cluster hosts 12 GW, 24 OS, and 16 NS services.
The number of OS and NS services is defined during the initial S3 cluster setup. Adding more nodes to the S3 cluster does not affect it.
- 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.