Skip to content

Commit 8477773

Browse files
Merge pull request #288488 from pjw711/pjw/volume-limits
Document volume size limits for nexus-volume and nexus-shared
2 parents d237a30 + 35c18f7 commit 8477773

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

articles/operator-nexus/concepts-storage.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ status:
5353

5454
### StorageClass: nexus-shared
5555

56-
In situations where a shared file system is required, the *nexus-shared* storage class is available. This storage class provides a highly available shared storage solution by enabling multiple pods in the same Nexus Kubernetes cluster to concurrently access and share the same volume. The *nexus-shared* storage class is backed by a highly available NFS storage service. This NFS storage service (storage pool currently limited to a maximum size of 1TiB) is available per Cloud Service Network (CSN). The NFS storage service is deployed automatically on creation of a CSN resource. Any Nexus Kubernetes cluster attached to the CSN can provision persistent volumes from this shared storage pool. Nexus-shared supports both Read Write Once (RWO) and Read Write Many (RWX) access modes. What that means is that the workload applications can make use of either of these access modes to access the shared storage.
56+
In situations where a shared file system is required, the *nexus-shared* storage class is available. This storage class provides a highly available shared storage solution by enabling multiple pods in the same Nexus Kubernetes cluster to concurrently access and share the same volume. The *nexus-shared* storage class is backed by a highly available NFS storage service. This NFS storage service (storage pool currently limited to a maximum size of 1 TiB) is available per Cloud Service Network (CSN). The NFS storage service is deployed automatically on creation of a CSN resource. Any Nexus Kubernetes cluster attached to the CSN can provision persistent volumes from this shared storage pool. Nexus-shared supports both Read Write Once (RWO) and Read Write Many (RWX) access modes. What that means is that the workload applications can make use of either of these access modes to access the shared storage.
5757

5858
<!--- IMG ![Nexus Shared Volume](Docs/media/nexus-shared-volume.png) IMG --->
5959
:::image type="content" source="media/nexus-shared-volume.png" alt-text="Diagram depicting how nexus-shared provisions a volume for a workload in Nexus Kubernetes Cluster":::
@@ -64,7 +64,7 @@ Although the performance and availability of *nexus-shared* are sufficient for m
6464

6565
#### Read Write Once (RWO)
6666

67-
In Read Write Once (RWO) mode, the nexus-shared volume can be mounted by only one node or claimant at a time. ReadWriteOnce access mode still allows multiple pods to access the volume when the pods are running on the same node.
67+
In Read Write Once (RWO) mode, only one node or claimant can mount the nexus-shared volume at a time. ReadWriteOnce access mode still allows multiple pods to access the volume when the pods are running on the same node.
6868
```
6969
apiVersion: v1
7070
items:
@@ -92,7 +92,7 @@ items:
9292

9393
#### Read Write Many (RWX)
9494

95-
In Read Write Many (RWX) mode, the nexus-shared volume can be mounted by multiple nodes or claimants at the same time.
95+
In the Read Write Many (RWX) mode, multiple nodes or claimants can mount the nexus-shared volume at the same time.
9696
```
9797
apiVersion: v1
9898
items:
@@ -119,7 +119,7 @@ items:
119119
```
120120
### Examples
121121
#### Read Write Once (RWO) with nexus-volume storage class
122-
The below manifest creates a StatefulSet with PersistentVolumeClaimTemplate using nexus-volume storage class in ReadWriteOnce mode.
122+
This example manifest creates a StatefulSet with PersistentVolumeClaimTemplate using nexus-volume storage class in ReadWriteOnce mode.
123123
```
124124
apiVersion: apps/v1
125125
kind: StatefulSet
@@ -158,7 +158,7 @@ spec:
158158
storage: 10Gi
159159
storageClassName: nexus-volume
160160
```
161-
Each pod of the StatefulSet will have one PersistentVolumeClaim created.
161+
Each pod of the StatefulSet has one PersistentVolumeClaim created.
162162
```
163163
# kubectl get pvc
164164
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
@@ -247,7 +247,7 @@ spec:
247247
claimName: test-volume-rwx
248248
...
249249
```
250-
Once applied, there will be three replicas of the deployment sharing the same PVC.
250+
Once applied, there are three replicas of the deployment sharing the same PVC.
251251
```
252252
# kubectl get pvc
253253
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
@@ -281,6 +281,25 @@ Thu Nov 9 21:51:41 UTC 2023 -- test-deploy-rwx-fdb8f49c-wdgw7
281281
Thu Nov 9 21:51:42 UTC 2023 -- test-deploy-rwx-fdb8f49c-86pv4
282282
```
283283

284+
## Volume size limits and capacity management
285+
286+
PVCs created using the nexus-volume and nexus-shared have minimum and maximum claim sizes.
287+
288+
| Storage Class | Minimum PVC Size | Maximum PVC Size |
289+
|---------------|------------------|------------------|
290+
| nexus-volume | 1 MiB | 12 TiB |
291+
| nexus-shared | None | 1 TiB |
292+
293+
> [!IMPORTANT]
294+
> Volumes that reach their consumption limit will cause out of disk space errors on the workloads that consume them. You must make sure that you provision suitable volume sizes for your workload requirements. You must monitor both the storage appliance and all NFS servers for their percentage storage consumption. You can do this using the metrics documented in the [list of available metrics](./list-of-metrics-collected.md).
295+
296+
- Both nexus-volume and nexus-shared PVCs have their requested storage capacity enforced as a consumption limit. A volume can't consume more storage than the associated PVC request.
297+
- All physical volumes are thin-provisioned. You must monitor the total storage consumption on your storage appliance and perform maintenance operations to free up storage space if necessary.
298+
- A nexus-volume PVC provisioning request fails if the requested size is less than the minimum or more than the maximum supported volume size.
299+
- Nexus-shared volumes are logically thin-provisioned on the backing NFS server. This NFS server has a fixed capacity of 1 TiB.
300+
- A nexus-shared PVC can be provisioned despite requesting more than 1 TiB of storage, however, only 1 TiB can be consumed.
301+
- It is possible to provision a set of PVCs where the sum of capacity requests is greater than 1 TiB. However, the consumption limit of 1 TiB applies; the set of associated PVs may not consume more than 1 TiB of storage.
302+
284303
## Storage appliance status
285304

286305
The following properties reflect the operational state of a storage appliance:

0 commit comments

Comments
 (0)