Docs Storage
RustFS Backend
Running NoKV against a local RustFS deployment through the S3-compatible object backend, from server start to benchmark runs.
NoKV can store file bodies in RustFS through the S3-compatible object backend. RustFS supports single-node single-disk, single-node multi-disk, and multi-node multi-disk deployment modes. The single-node single-disk mode is useful for local testing and small non-critical deployments; it is not a high-availability production layout.
Start RustFS
Install the RustFS binary with Homebrew:
brew tap rustfs/homebrew-tap
brew install rustfs
rustfs --version
Start a single-node local RustFS process:
mkdir -p /tmp/rustfs-data
RUSTFS_ACCESS_KEY=rustfsadmin \
RUSTFS_SECRET_KEY=rustfsadmin \
rustfs server \
--address 127.0.0.1:9000 \
--console-enable \
--console-address 127.0.0.1:9001 \
--buffer-profile AiTraining \
/tmp/rustfs-data
Create the default NoKV bucket with an S3-compatible client:
AWS_ACCESS_KEY_ID=rustfsadmin \
AWS_SECRET_ACCESS_KEY=rustfsadmin \
aws --endpoint-url http://127.0.0.1:9000 \
s3api create-bucket --bucket nokv
For local end-to-end testing, the repository script can do these steps for a temporary RustFS directory and then run the NoKV benchmark harness:
scripts/run-rustfs-e2e.sh
Use NOKV_E2E_PROFILE, NOKV_E2E_WORKLOAD, and
NOKV_E2E_OBJECT_CONCURRENCY to change the benchmark shape without editing the
script.
Use RustFS With NoKV
cargo run --release -p nokv --bin nokv -- \
init
Those are the CLI defaults for the RustFS backend: bucket nokv, endpoint
http://127.0.0.1:9000, access key rustfsadmin, and secret key
rustfsadmin.
The same object flags work for artifact publish, cat, and FUSE mount:
cargo run --release -p nokv --bin nokv -- \
--object-backend rustfs \
--s3-bucket nokv \
--s3-endpoint http://127.0.0.1:9000 \
--s3-access-key-id rustfsadmin \
--s3-secret-access-key rustfsadmin \
put-artifact /runs/1/checkpoint.bin ./checkpoint.bin
Benchmark Against RustFS
cargo run --release -p nokv-bench --bin nokv-bench -- \
--profile smoke \
--workload checkpoint-publish \
--object-backend rustfs \
--object-concurrency 4 \
--checkpoint-bytes 1048576 \
--s3-bucket nokv \
--s3-endpoint http://127.0.0.1:9000 \
--s3-access-key-id rustfsadmin \
--s3-secret-access-key rustfsadmin
mdtest-easy and mdtest-hard are metadata-only and do not exercise object
storage. checkpoint-publish and training-read are the useful object-backed
workloads for RustFS. The benchmark harness uses the deployable single-node
metad service boundary by default. Use --block-cache off as a control run
when measuring object backend latency instead of NoKV cache reuse.
References: