Hello, Ryan.
Thanks for sharing the details! This is very interesting.
Looking at your configuration (eos-qdb.eos.svc.cluster.local:7777), it heavily implies that you might be running this inside a Kubernetes (k8s) environment. Is that correct?
If so, this single DNS mapping with multiple A records could indeed be the root cause. Here are a few thoughts and architectural recommendations regarding QuarkDB in k8s:
1. QuarkDB Must Be Stateful (StatefulSet + Headless Service)
QuarkDB is a Stateful service based on the Raft consensus algorithm. It should never be deployed as a stateless deployment/replica. In fact, within the entire EOS ecosystem, QuarkDB is practically the only component that must be treated as strictly stateful.
Because k8s rotates Pod IPs naturally, using a single service endpoint causes the FST to lose track of individual members during a failover or IP rotation. To fix this, you should configure QuarkDB using a StatefulSet and a Headless Service so that each individual QDB member obtains a fixed, independent hostname (e.g., qdb-0.eos..., qdb-1.eos...). Then, you should explicitly list all three hostnames in the FST configuration, separated by spaces:
Plaintext
fstofs.qdbcluster qdb-0.eos.svc...:7777 qdb-1.eos.svc...:7777 qdb-2.eos.svc...:7777
2. How to Check What QDB Knows (Cluster Status)
You mentioned you weren’t sure how to query what the cluster knows. Since QuarkDB speaks the Redis protocol, you can inspect the Raft cluster topology directly.
Find the current QuarkDB Leader node, log into it, and run the following command:
Bash
redis-cli -p 7777 raft-info
Under normal and healthy conditions, you should look for these key indicators:
-
NODE-HEALTH: Should be GREEN
-
QUORUM-SIZE: Should be 2 (for a 3-node cluster)
-
REPLICA: You should see the clear list of active follower nodes.
3. Regarding the “Yellow” Health Status
You noted that the QDB members previously reported a “yellow” health status and suspected it was due to the storage volume being 50% full.
From our experience, NODE-HEALTH usually turns YELLOW when the Leader loses communication with one of its followers. In a 3-node cluster, if the Leader cannot talk to one of the followers, the cluster reaches its minimum required quorum size and shows a YELLOW warning. As soon as they reconnect, it goes back to GREEN.
Given this, the yellow status you saw might not have been a disk capacity issue, but rather an indicator of inter-node communication issues or network flaps between the QDB instances themselves. It’s definitely worth checking the network stability and firewall/routing between those QDB nodes.
Regards,
-- Geonmo