Install dependencies
Use a Linux host or VM with FUSE 3 and SMART tooling. Some compatibility tests need elevated privileges.
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libfuse3-dev fuse3 smartmontoolsGet started
ArgosFS is a Rust project with a management CLI, FUSE mount frontend, validation scripts, retained artifact data, and experiments for recovery, placement, compatibility, and rootfs behavior.
Use a Linux host or VM with FUSE 3 and SMART tooling. Some compatibility tests need elevated privileges.
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libfuse3-dev fuse3 smartmontoolsStart with normal Rust checks before mounting a volume.
cargo build --release
cargo test
cargo clippy --all-targets --all-features -- -D warningsCreate a small local test volume with multiple logical disks and an erasure-coded layout.
target/release/argosfs mkfs /var/lib/argosfs/root \
--disks 6 --k 4 --m 2 --compression zstdMount in foreground while testing, then inspect health and planner output before enabling mutation.
target/release/argosfs mount /var/lib/argosfs/root /mnt/argos-root --foreground
target/release/argosfs health /var/lib/argosfs/root --json
target/release/argosfs autopilot /var/lib/argosfs/root --dry-run --explain --jsonSuggested workflow
The safest path is to build confidence in layers: compile, run unit/integration tests, create a throwaway volume, mount it, run smoke tests, inspect health output, then run autopilot in dry-run mode before any maintenance action.
Create files, rename paths, test xattrs, sync writes, and unmount cleanly before running deeper experiments.
Use JSON health output to confirm device discovery, capacity accounting, SMART refresh state, and stale telemetry markers.
Planner explanations show selected actions and rejected alternatives without mutating the volume.
After simulated failures, run fsck, journal verification, and shard recovery before trusting the mount again.
Common commands
The CLI is meant for both operation and research. Most commands can be used manually, scripted in experiments, or captured as artifacts.
health --json: disk health, capacity, parser status, and risk signals.autopilot --dry-run --explain --json: planned maintenance without mutation.fsck --repair: metadata, orphan, and consistency repair checks.verify-journal: journal snapshot and hash-chain validation.export / import: rootfs and metadata roundtrip testing.metrics: Prometheus-oriented observability output for experiments.Experiment mode
For paper-style evaluation, use the experiment scripts so results include raw records, summaries, and manifests.
scripts/compat/run_fuse_smoke.sh
scripts/compat/run_deep_roundtrip.sh /mnt/argos-root
scripts/experiments/run_all.sh --quick --output paper-data/runs/ae-quick
python3 scripts/experiments/summarize_results.py \
paper-data/runs/ae-quick/raw \
paper-data/runs/ae-quickRepository