Vault

Vault Filesystem Storage: Dev Use Cases and Scale Limits in Practice

2026-04-19
NicheeLab Editorial Team

Vault lets you swap storage backends, but the current production recommendation is Integrated Storage (Raft). The Filesystem backend assumes a single node and is primarily a choice for development and verification.

This article walks through Filesystem backend configuration, practical points for development, scaling limits, and the decision criteria for operations and migration — covering both exam-likely angles and field intuition.

Where the Filesystem Backend Fits

The Filesystem backend stores Vault's encrypted data in a directory on a local disk. It has no external service dependencies and is the simplest to set up. On the other hand, it does not support HA or clustering. Its main scope is single-node development, individual verification, and short-lived PoCs.

Vault encrypts data before storing it. So even if the underlying filesystem is not encrypted, the stored objects are not plaintext. That said, permission management and disk failure protection are the responsibility of the OS and infrastructure layer.

  • HA/cluster: not supported. Multi-node operation is not possible.
  • Multi-server access over shared storage (NFS/SMB, etc.) is unsupported because locking consistency cannot be guaranteed.
  • Data is encrypted by Vault before storage, but OS permissions and disk redundancy must still be handled separately.
  • Typical use: single-node development, ephemeral CI environments, and PoCs.
  • Exam tip: Filesystem is not recommended for production. If you need HA, the default answer is Integrated Storage (Raft) or Consul.

Basic Setup and Minimal Configuration

Configuration is simple: specify the path under storage "file". For development, prepare a local directory and set appropriate ownership and permissions for the Vault execution user. TLS is mandatory in production, but for convenience it is sometimes disabled in development (on the exam, remember that TLS is required in production).

Place the directory on a stable local block device, and when using containers mount a persistent volume on the host. Avoid network shares.

  • Directory permissions: owned by vault:vault with permissions around 700 are recommended.
  • Disabling TLS in development is a temporary measure only. Always enable TLS in production.
  • When running under systemd, also review OS settings like LimitMEMLOCK.
  • Exam tip: the choice of storage is independent of the seal mechanism. Auto-unseal is a separate feature.

Minimal Vault config example (for development)

# /etc/vault.d/vault.hcl
storage "file" {
  path = "/opt/vault/data"
}

# Disable TLS for convenience in development (always enable TLS in production)
listener "tcp" {
  address     = "0.0.0.0:8200"
  tls_disable = 1
}

disable_mlock = true

# Run example:
# sudo mkdir -p /opt/vault/data && sudo chown -R vault:vault /opt/vault
# vault server -config=/etc/vault.d/vault.hcl

Development Use Cases and Practical Workflows

It suits CI integration tests and local development where you spin Vault up quickly to load and verify secrets. Unlike in-memory dev mode, data persists across process restarts, which is handy for verification that requires short-term state retention.

It can also be used to wire-test client authentication on the application side (AppRole, Kubernetes Auth, etc.). However, it is unsuitable for performance testing or availability evaluation.

  • Startup to initialization: vault operator init → unseal with the unseal keys → create policies → load secrets.
  • Reproducibility: script the initialization and loading (CLI/API). Exclude the data directory from Git.
  • Cleanup: when discarding state, stop Vault and then delete the data directory.
  • Exam tip: dev mode is in-memory. Filesystem is persistent but single-node. Distinguish the use cases.

Scale Limits and Concrete Bottlenecks

The Filesystem backend treats many small objects as files, so workloads with heavy metadata operations or synchronous writes tend to surface performance degradation. Pay particular attention to high-frequency writes, bulk list operations, and exhaustion of directory entries or inodes.

Since HA is not supported, the only way to increase throughput is scale-up. In environments with long p99 I/O latency, delays in the auth path or secret retrieval directly hit the application's SLO.

  • Typical bottlenecks: disk IOPS, metadata updates, fsync-equivalent synchronous load, and inode/directory depth.
  • Workload sensitivity: token/lease renewal workloads with frequent writes are most affected. Even read-heavy workloads slow down when list operations are abundant.
  • Anti-pattern: using shared storage to attach multiple Vault servers to the same path as an HA substitute (unsupported).
  • Rule of thumb: keep it on a single node with light development load. If you see growth, plan a migration to Raft/Consul early.
  • Exam tip: Filesystem = no HA, single node. HA via NFS sharing is not possible — the standard correct answer.

Single-node design and the unsupported shared-FS pattern

Vault Server (single node)storage = filelocal fs I/Ometadata, sync writes/opt/vault/data (ext4/xfs)shard dirs / small objsFilesystem backend (single-node configuration)
Vault AXshared NFSVault B/mnt/nfs/mnt/nfsMulti-server access over a shared FS is unsupported (unsupported for HA)

Operations: Backup, Recovery, and Monitoring Essentials

The backup principle is to capture a consistent snapshot. The safest approach is to stop or seal Vault, then snapshot the data directory via the filesystem's snapshot feature or at the block level. Plain file copies during operation risk partial writes.

For monitoring, prioritize disk latency and IOPS, free capacity, and inode usage. On the Vault side, continuously monitor audit log emission, HTTP 5xx increases, and lease renewal error rates.

  • Backup: stop/seal → FS snapshot or volume snapshot.
  • Recovery: restore the data directory onto a fresh Vault of the same version, unseal, and verify consistency.
  • Monitoring: disk p95/p99 latency, IOPS, capacity/inodes, and Vault's health endpoint.
  • Capacity planning: with many small files, watch for inode exhaustion. Format with enough inodes.
  • Exam tip: Filesystem has no native snapshot/replication mechanism. Consistent snapshots must come from the underlying platform.

When to Switch to Raft/Consul (Comparison and Decision Criteria)

Switch when availability requirements appear, or when throughput/latency becomes a bottleneck. Organizations that already standardize on Consul can pick the Consul backend, but the current recommendation is a self-contained cluster using Integrated Storage (Raft).

Migration typically means preparing a new cluster and, during planned downtime, re-injecting the necessary secrets via the API (some kinds cannot be exported, so an inventory beforehand is mandatory). If you have production requirements, plan the move to a Raft/Consul design early.

  • Decision criteria: availability/SLO, external dependency policy, operational standards, and future node growth.
  • Small PoC / single node: Filesystem
  • Production / medium-to-large scale: Integrated Storage (Raft)
  • If you already operate a stable Consul cluster: Consul is also a choice
  • Exam tip: current best practice puts Raft as the first choice.
ItemFilesystemIntegrated Storage (Raft)Consul
HA / LockingNot supported (single node only)Leader election and quorum via RaftHA via sessions and locks
Consistency ModelStrong consistency within the single nodeStrong consistency (Raft)Strong consistency (quorum writes)
AvailabilitySingle point of failureRedundant with 3+ nodes3+ Consul servers
DependenciesOnly the OS local filesystemNo external dependencies (built-in)Depends on an external Consul cluster
Operational ComplexityLow (minimal configuration)Medium (cluster operations)High (operating a separate product)
BackupConsistent FS/volume snapshotRaft snapshotConsul's snapshot feature

Check Your Understanding

Associate / Ops

問題 1

You want to stand up Vault on a single VM as quickly as possible for a small verification environment. Downtime is acceptable, and you do not want to add external components. Which storage choice is correct?

  1. A. Use the Filesystem backend and store data in a local directory
  2. B. Build a 3-node cluster with Integrated Storage (Raft)
  3. C. Use the Consul backend and store data across 3 Consul servers
  4. D. Share Filesystem over NFS and connect 2 Vault servers to the same path

正解: A

The requirements are single node, minimal configuration, and no external dependencies, so Filesystem is the best fit. Multi-server access over NFS (D) is unsupported. Raft/Consul would be needed if HA were required, but they are overkill here.

Frequently Asked Questions

Is the Filesystem backend safe? Is data stored in plaintext?

Vault encrypts data before storing it, so nothing is written in plaintext. That said, OS-level permission management and disk encryption/redundancy are still your responsibility. Audit logs can be plaintext depending on where they are stored, so handle them with care as well.

Can multiple Vault servers connect to the same directory over NFS or SMB?

No. The Filesystem backend provides no HA or locking mechanism, and multi-server access over a shared filesystem is unsupported. If you need multiple nodes or availability, choose Integrated Storage (Raft) or Consul.

How should I perform backup and restore?

The safest approach is to stop or seal Vault, then take a filesystem or volume snapshot of the data directory. To recover, restore the directory to the same Vault version, unseal it, and verify consistency. Avoid simple file copies while Vault is running.

Check what you learned with practice questions

Practice with certification-focused question sets

無料で問題を解いてみる
Author

NicheeLab Editorial Team

NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.


Related articles
Vault

Vault Core Concepts: Sealed/Unsealed, Auth, Secrets (2026)

Vault fundamentals — sealed/unsealed state, auth methods, se...

Vault

Vault Operations Professional (VOP-003): Complete Guide (2026)

Pass the Vault Operations Professional exam — enterprise pat...

Vault

Vault Path-Based Routing: API URL Structure (2026)

How Vault's path-based routing works — mount points, sub-pat...

Vault

Vault Tokens: Auth Token Mechanics (2026)

Token fundamentals — service vs. batch tokens, accessor, ren...

Vault

Vault Token Types: Service, Batch, Periodic (2026)

Service vs. batch tokens compared — performance, ACL behavio...

Browse all Vault articles (101)
© 2026 NicheeLab All rights reserved.