Skip to content

Production Environment Hardware Configuration Guide ​

1. Deployment Planning Factor Analysis ​

Before formally deploying RustFS, it's recommended to conduct 2-3 weeks of business research, focusing on evaluating the following dimensions:

  1. Data Scale Analysis
  • Initial Data Volume: Accurately calculate effective data volume at production startup (recommended in TiB units), considering hot/cold data ratios
  • Growth Trend Prediction: Estimate data increments for the next 24 months based on business development plans (recommended quarterly growth rate model)
  • Object Scale: Calculate total object count based on average object size (recommended 128 KB-1 MB range), note special optimization needed when exceeding 100 million objects
  1. Business Characteristic Assessment
  • Access Patterns: Distinguish read-intensive (such as content distribution) from write-intensive (such as log collection) scenarios
  • Compliance Requirements: Data retention cycles must comply with industry regulatory requirements (e.g., financial industry must retain for at least 5 years)
  • Multi-site Deployment: Cross-regional deployment requires network latency assessment (recommended controlled within 50ms) and bandwidth cost evaluation
  1. Storage Architecture Design
  • Bucket Planning: Divide storage buckets by business units, single cluster recommended not exceeding 500 active buckets
  • Disaster Recovery Strategy: Choose dual-active architecture (recommended) or asynchronous replication based on data importance

2. Hardware Configuration Matrix ​

Baseline configuration solutions based on stress test results:

ComponentBasic EnvironmentProduction Standard ConfigurationHigh-Performance Configuration
Node Count4 nodes8 nodes16+ nodes
Storage Media4× NVMe SSD8×NVMe SSD12×NVMe SSD
Network ArchitectureDual 25GbE (link aggregation)Dual 100GbE200GbE
CPU2×Intel Silver 4310 (16 cores)2×AMD EPYC 7313 (32 cores)2×Intel Platinum 8461Y (48 cores)
Memory64 GB DDR4-3200 ECC256 GB DDR5-4800 ECC512 GB DDR5-5600 ECC
Storage ControllerHBA 9500-8iHBA 9600-16iDual controller redundant architecture

Important Deployment Principles:

  1. Adopt "server farm" mode, ensuring all nodes use identical hardware batches and firmware versions
  2. Network architecture must meet: leaf-spine topology + physically isolated storage network + dual uplink paths
  3. Recommend using 2U server models, single node recommended configuration of 12+ disk bays (based on actual hard disk count)

3. Performance Critical Path Optimization ​

1. Network Topology Optimization (Highest Priority) ​

  • Bandwidth Calculation: Reserve 0.5 Gbps bandwidth per TB of effective data (e.g., 100 TB data needs 50 Gbps dedicated bandwidth)
  • Latency Requirements:
  • Inter-node P99 latency ≤ 2ms
  • Cross-rack latency ≤ 5ms

2. Storage Subsystem Tuning ​

  • Controller Configuration:
  • Enable read-ahead cache (recommended 256 MB+)
  • Disable all RAID functions, use pass-through mode
  • Regularly check BBU battery health status
  • SSD Parameters:
  • Reserve 20% OP space to improve durability
  • Enable atomic write features (requires hardware support)

3. Memory Management Strategy ​

  • Allocation Ratios:
  • Metadata cache: 60% of total memory
  • Read/write buffers: 30%
  • System reserve: 10%

4. Network Design Reference Model ​

Bandwidth and Disk Ratio Relationship ​

Network TypeTheoretical ThroughputSuitable Disk TypesMaximum Disk Support
10GbE1.25 GB/s7.2K HDD (180 MB/s)8 disks
25GbE3.125 GB/sSATA SSD (550 MB/s)6 disks
100GbE12.5 GB/sNVMe Gen4 (7 GB/s)2 disks full-speed read/write

Best Practice Case: A video platform uses 16-node cluster, each node configured with:

  • 8×7.68 TB NVMe SSD
  • Dual 100GbE CX5 network cards
  • Achieves aggregate throughput of 38 GB/s

5. Memory Configuration Calculator ​

Dynamic algorithm based on disk capacity and business characteristics:

python
# Memory calculation formula (unit: GB)
def calc_memory(data_tb, access_pattern):
 base = 32 # Base memory
 if access_pattern == "read_heavy":
 return base + data_tb * 0.8
 elif access_pattern == "write_heavy":
 return base + data_tb * 1.2
 else: # mixed
 return base + data_tb * 1.0

Reference Configuration Table:

Data ScaleRead-IntensiveWrite-IntensiveMixed
10 TB40 GB44 GB42 GB
100 TB112 GB152 GB132 GB
500 TB432 GB632 GB532 GB

6. Storage Deployment Standards ​

1. Media Selection Criteria ​

MetricHDD Suitable ScenariosSSD Suitable ScenariosNVMe Mandatory Scenarios
Latency Requirements>50ms1 to 10ms< 1ms
Throughput Requirements< 500 MB/s500 MB-3 GB/s> 3 GB/s
Typical Use CasesArchive storageHot data cacheReal-time analysis

2. File System Configuration ​

bash
# XFS formatting example
mkfs.xfs -f -L rustfs_disk1 -d su=256k,sw=10 /dev/sdb

# Recommended mount parameters
UUID=xxxx /mnt/disk1 xfs defaults,noatime,nodiratime,logbsize=256k 0 0

7. High Availability Assurance Measures ​

  1. Power Supply:
  • Adopt dual power supply architecture
  • Each PDU connects to different substations
  • Equip UPS (at least 30 minutes runtime)
  1. Cooling Requirements:
  • Cabinet power density ≤ 15kW/cabinet
  • Inlet/outlet temperature difference controlled within 8℃
  1. Firmware Management:
  • Establish hardware compatibility matrix
  • Use unified firmware versions

Implementation Recommendations: Recommend conducting 72-hour stress testing before formal deployment, simulating the following scenarios:

  1. Node failover testing
  2. Network partition drills
  3. Burst write pressure testing (recommended reaching 120% of theoretical value)

This guide is based on the latest RustFS development version. For actual deployment, please combine with specific hardware vendor white papers for parameter fine-tuning. Or contact RustFS official recommendations for quarterly hardware health assessments to ensure continuous stable operation of storage clusters.

Released under the Apache License 2.0.