Disk Pools Overview
Disk pools provide storage for the virtual machines running on your Gallium Cluster. In a cluster a disk pool is distributed storage spread across the servers in your cluster, providing redundancy and high availability.
For background on how the distributed storage stack fits together, see Distributed Storage in the Planning section.
How Disk Pools Work
A disk pool is a logical grouping of physical disks across the cluster that defines where virtual disk copies are placed. When you create a virtual disk for a VM and assign it to a pool, the cluster stores synchronized copies of that disk on physical disks in the pool, each copy on a separate server.
Grouping drives into pools lets you separate storage by performance or purpose; for example, keeping fast NVMe storage in one pool and higher-capacity HDD storage in another.
- All disks within a pool should be of the same type (e.g., all SSD or all NVMe). This is recommended for consistent performance.
- Identical disk sizes are recommended but not required, this is to ensure that capacity can be efficiently allocated.
- Each physical disk can belong to only one pool.
Physical Disk Status
Each physical disk in a pool reports two statuses:
Enabled — Controls whether the disk is used to write new copies. An enabled disk can receive new virtual disk copies as they are provisioned. A disabled disk continues to serve the copies already stored on it, but the cluster will not place any new copies on it. Disabling a disk is useful when you want to stop new writes to it; for example, ahead of removing or replacing the disk, without disrupting the copies it currently holds.
Healthy — Indicates that the disk is online and working. A healthy disk is present and operating normally; an unhealthy disk signals a problem that may need attention.
Copy Count
When you create a disk pool, you choose a Copy Count; the number of synchronized copies (1, 2, or 3) the pool keeps of each virtual disk. Every copy lives on a physical disk on a different server, so the copy count determines how many server or disk failures the pool can tolerate without losing data.
The Copy Count is a property of the pool, not the individual virtual disk. Every virtual disk placed in the pool is provisioned with that number of copies. It is also fixed when the pool is created and cannot be changed afterward, so choose it carefully. To use a different copy count, create another pool.
Because each copy must reside on a separate server, a pool needs disks on at least as many servers as its Copy Count before it can fully provision a virtual disk — a 3-copy pool needs disks on 3 servers, a 2-copy pool on 2.
Choose a copy count that reflects the level of redundancy you want and the topology of your cluster:
| Copy Count | Redundancy | Typical use |
|---|---|---|
| 1 | None — a single disk or server failure loses data | Scratch or rebuildable data only |
| 2 | Tolerates one failure | 4-node clusters where capacity efficiency matters |
| 3 | Tolerates two failures | 3-node clusters (the common default) |
A common rule of thumb is 3 copies on a 3-node cluster, or 2 copies on a 4-node cluster. The right choice balances redundancy against the usable capacity and write overhead of maintaining additional copies.
A copy count of 1 provides no redundancy. If the disk or server holding the only copy fails, any virtual disks in that pool are lost. Use a single copy only for data you can afford to lose or can easily rebuild.
System Pool
A System Pool is automatically created on each server's installation disk during cluster installation. This pool is used for the cluster's internal data. This pool always has a copy count of 3.
The System Pool can also store virtual machines, but this is not recommended — keeping VM storage on dedicated pools separates it from Gallium's internal data and gives you full control over the copy count and disk selection. For production workloads, create additional disk pools for your virtual machines.
Default Pool and Template Pool
Each cluster has two special disk pool designations:
Default Disk Pool — When creating a virtual disk, copies are placed in the default pool unless you select a different pool. You can change which pool is the default at any time.
Template Disk Pool — Downloaded VM templates are stored in this pool. Only one pool can serve as the template pool at a time.
See Managing Disk Pools for instructions on creating pools and setting these designations.