<@U0A71G31CDV> Is the recommendation to use `ext4`...
# questions-and-troubleshooting
s
@Rocky Is the recommendation to use
ext4
Linux filesystem still current for the BE/FE storage volumes ? Should we consider for example
xfs
instead ?
r
Yes, the recommendation to use
xfs
over
ext4
is now the preferred approach for StarRocks BE and FE storage volumes, especially in production environments where performance is a priority. While the documentation still lists both
ext4
and
xfs
as supported journaling filesystems, the official stance has shifted toward
xfs
because StarRocks typically performs better with it, specifically in terms of QPS (Queries Per Second) and high-concurrency write scenarios. Why
xfs
is considered superior for StarRocks:
* Parallel I/O & Scalability:
xfs
was designed for high-performance parallel I/O. It handles concurrent reads and writes much better than
ext4
by using "Allocation Groups," which reduce lock contention during data allocation. This is critical for BE nodes that handle multiple concurrent data ingestion and query tasks. * Large File Handling: StarRocks BEs store data in large, immutable files (segments).
xfs
is optimized for these workloads, offering better throughput and less fragmentation over time for large-file operations. * Dynamic Inode Allocation: Unlike
ext4
, which pre-allocates a fixed number of inodes at creation time (potentially leading to "out of space" errors even when disk space is available),
xfs
allocates inodes dynamically as needed. Recommendations for FE (Frontend) For FE nodes, which store metadata using BDB JE (Berkeley DB Java Edition),
xfs
is also recommended. Metadata operations often involve frequent, small, synchronous writes to the journal and image files.
xfs
provides stable performance for these metadata-heavy operations. Additional Storage Tuning Regardless of the filesystem you choose, StarRocks recommends tuning the I/O scheduler at the OS level to match your hardware: * For SSD/NVMe: Use the
kyber
or
none
(noop) scheduler. * For SATA (HDD): Use the
mq-deadline
scheduler. You can check your current scheduler with:
Copy code
bash
cat /sys/block/${disk}/queue/scheduler
Summary Table Feature |
ext4
|
xfs
| Recommendation Performance | Good (General Purpose) | Better (High QPS) |
xfs
Large Files | Good | Excellent |
xfs
Scalability | Standard | High Parallelism |
xfs
Resizing | Can grow/shrink | Can only grow |
ext4
(if shrinking is needed) Conclusion: If you are setting up a new cluster or adding new volumes,
xfs
is the current best-practice recommendation for StarRocks. Referencesfaq/operation_maintenance_faq.mddeployment/environment_configurations.mdadministration/management/FE_configuration.mdfaq/Others.md