Planning object storage

Use this topic to estimate the storage capacity required for S3-compatible object storage deployments. Object storage requirements depend on usable capacity requirements, redundancy policy, storage media, expected throughput, and projected growth. For predefined deployment architectures, see the S3-only and HCI compute with S3 scenarios. Disk and network requirements are listed in the technical requirements reference.

Object storage prerequisites

  • Run production object storage on physical servers.
  • Plan additional space for S3 metadata. Object metadata usually requires 0.5-1 percent of the space used by S3 data and can require more when most objects are smaller than 100 KB or users add custom object metadata.
  • Since version 4.6, Virtuozzo Infrastructure also keeps object metadata backups. These backups add about 0.5 percent to metadata size, use automatic retention, and follow the same redundancy scheme as the S3 cluster.

The S3 services

S3 object storage includes three service types distributed across the storage nodes:

  • Object service (OS): stores object data.
  • Name service (NS): stores the object namespace and metadata.
  • Gateway (GW): terminates S3 client requests; scale the number of gateways with client throughput.

Capacity planning

Usable capacity is raw capacity minus the erasure-coding overhead and the free-space reserve:

usable = raw × [ M ÷ (M+N) ] × (1 − free_reserve)
raw needed = target_usable ÷ [ M ÷ (M+N) ] ÷ (1 − free_reserve)
  • EC efficiency is M ÷ (M+N). For example, 7+2 is about 78 percent, 4+2 is about 67 percent, and 3+2 is about 60 percent. Wider schemes use raw space more efficiently.
  • Keep at least 20 percent free per tier for rebuild and write headroom.

Redundancy and tiers

Choose the EC scheme according to the number of nodes. Wide schemes, such as 7+2 on 10 or more nodes, provide low overhead while surviving two failures. Serve different storage classes from separate tiers, such as high-performance NVMe, balanced fast-HDD, and cold SMR tiers.

Sizing S3 services (CPU and RAM)

S3 service reservations are usually small compared with capacity and throughput requirements. Each S3 node runs four S3 gateways, up to 10 object services, and up to 10 name services. The entire S3 cluster cannot host more than 24 object services and 16 name services. The first five S3 nodes run the configd daemon, and all S3 nodes run the hostd daemon.

The reserved RAM size on an S3 node is calculated by using the following formula:

(CONFIGD × 256 MB) + (HOSTD × 256 MB) + (4 × S3GW × 512 MB) + (total_OS × 256 MB + total_NS × 512 MB) ÷ (S3_nodes − nodes_that_can_fail)

The reserved CPU cores on an S3 node are calculated by using the following formula:

(4 × S3GW × 0.5 cores) + (total_OS × 0.1 cores + total_NS × 0.2 cores) ÷ (S3_nodes − nodes_that_can_fail)

Per node, add these values to the system and storage reservations. If EC is used in the storage cluster, also add the storage-client reservation on every node: 5 percent of the node's total RAM plus 2 GiB. In many deployments, a storage/S3 node requires 24-48 GB RAM and 8-16 physical cores, depending on disk count and node role.

Reservation examples

The following examples show how S3 service reservations are added to the system and storage reservations.

3 nodes for an S3 cluster with 3 replicas
Service Management nodes
System 4.5 GB RAM, 1 core
Storage services 5 storage disks and 1 metadata service on the system disk: 3 GB RAM, 1.2 cores
S3 9.7 GB RAM, 4.8 cores
Service reservations 17.2 GB RAM, 7 cores
Minimum hardware configuration 24 GB RAM, 8 cores
Recommended hardware configuration 32 GB RAM, 16 cores
5 nodes for an S3 cluster with 3+2 erasure coding
Service Management nodes (nodes 1-3) Secondary nodes (nodes 4-5)
System 4.5 GB RAM, 1 core 1.5 GB RAM, 1 core
Storage services 10 storage disks, 1 metadata service on the system disk, and 1 cache disk: 6 GB RAM, 2.4 cores 10 storage disks, 1 metadata service on the system disk, and 1 cache disk: 6 GB RAM, 2.4 cores
S3 6.2 GB RAM, 3.4 cores 6.2 GB RAM, 3.4 cores
EC storage client About 3.2 GiB RAM on a 24 GB node About 3.2 GiB RAM on a 24 GB node
Service reservations 19.9 GB RAM, 6.8 cores 16.9 GB RAM, 6.8 cores
Minimum hardware configuration 24 GB RAM, 8 cores 24 GB RAM, 8 cores
Recommended hardware configuration 48 GB RAM, 16 cores 48 GB RAM, 16 cores

Performance

S3 throughput is usually limited by the disks and the backend network, not by CPU or RAM. Size the backend NICs according to the expected aggregate object throughput. For capacity at scale, 2 × 25 GbE (LACP) on the backend network is a typical baseline.

Worked example

Target: 1 PB usable, 7+2 erasure coding, 12 nodes.

  • Raw capacity: 1 PB ÷ 0.78 ÷ 0.8 gives about 1.6 PB, or about 134 TB per node across 12 nodes. With 18 TB HDDs, plan about eight storage disks per node plus one SSD cache per 4-12 HDDs.
  • CPU and RAM: plan 24-48 GB RAM and 8-16 physical cores per node. Include the EC storage-client reservation; on 24-48 GB nodes, it adds about 3.2-4.4 GiB per node. S3 service reservations have limited impact on this estimate.
  • Network: use 2 × 25 GbE (LACP) on the backend network to carry the aggregate object throughput.

This example is a planning estimate. Adjust it according to the selected redundancy mode, free-space reserve, disk size, metadata growth, and throughput target.