You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/concepts/replication/high-availability/powerstore-metro.md
+69-26Lines changed: 69 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,17 +20,38 @@ The driver on receiving the metro-related parameters in the `CreateVolume` call
20
20
21
21
The creation of volumes in metro mode doesn't involve the replication sidecar or the common replication controller, nor does it cause the creation of any replication related custom resources. It just needs the `csi-powerstore` driver that implements the `CreateVolume` gRPC endpoint with metro capability for it to work.
22
22
23
-
### Host Registration for Powerstore Metro
24
-
CSM PowerStore supports registering worker nodes as new hosts using `Metro Connectivity`. To enable this, you need to set the `metroTopology` to `Uniform` in the array's secret configuration.
25
-
26
-
To manage your setup:
27
-
28
-
Label the worker nodes: Add zone labels to the worker nodes.
29
-
#### Zone Identification:
30
-
* Nodes in the same zone as the array configuration are considered the current system.
31
-
* Nodes in different zones are considered the remote system.
32
-
33
-
23
+
### Host Registration for PowerStore Metro
24
+
> {{< message text="18" >}}
25
+
26
+
PowerStore supports optimized metro data paths by registering hosts based on their location relative to PowerStore systems.
27
+
28
+
The driver determines which optimization to use by comparing node labels against user-provided,
29
+
node selector statements specified for a Host Connectivity optimization.
30
+
31
+
**Host Connectivity options:**
32
+
-`colocatedLocal`: The worker node is located near the current PowerStore system.
33
+
-`colocatedRemote`: The worker node is located near the replication target of the current PowerStore system.
34
+
-`colocatedBoth`: The worker node is located near both the current PowerStore system and its replication pair.
35
+
36
+
To enable this feature, add labels to the cluster nodes, or make note of existing node labels, that describe the desired topology,
37
+
and use these labels to build node selector statements (`nodeSelectorTerms`) for the provided Host Connectivity options under `hostConnectivity.metro`.
38
+
If the node labels satisfy the selector terms, a host will be registered for the node using the corresponding metro optimization.
39
+
If the node labels do not satisfy the selector terms, a local host will be registered for the node without metro optimization.
40
+
41
+
`nodeSelectorTerms` follow Kubernetes' Node Affinity format -- `requiredDuringSchedulingIgnoredDuringExecution`. For more information, see
42
+
[Assigning Pods to Nodes: Node Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity), and for the full API
43
+
specification, see [Pod: NodeAffinity](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity).
44
+
45
+
> **Note:**
46
+
> For all Host Connectivity options, for each `arrays` entry, `nodeSelectorTerms` should be mutually exclusive in the set of nodes the selectors match.
47
+
> In other words, there should be no overlap in the nodes each `nodeSelectorTerms` matches.
48
+
> If a node matches more than one connectivity option as defined by `nodeSelectorTerms`,
49
+
> the driver will error and fail to register the host for the node.
50
+
51
+
_Example:_
52
+
There are two zones and two PowerStore systems, where the PowerStore systems have been configured for metro replication.
53
+
Zone-a has worker nodes co-located with array "unique1", and zone-b has worker nodes co-located with array "unique2".
54
+
Nodes in zone-a are labeled `topology.kubernetes.io/zone: zone-a`, and Nodes in zone-b are labeled `topology.kubernetes.io/zone: zone-b`.
34
55
```yaml
35
56
arrays:
36
57
- endpoint: "https://11.0.0.1/api/rest"
@@ -39,26 +60,47 @@ arrays:
39
60
password: "password"
40
61
skipCertificateValidation: true
41
62
blockProtocol: "FC"
42
-
metroTopology: Uniform
43
-
labels:
44
-
topology.kubernetes.io/zone: zone1
63
+
hostConnectivity:
64
+
metro:
65
+
colocatedLocal:
66
+
nodeSelectorTerms:
67
+
- matchExpressions:
68
+
- key: "topology.kubernetes.io/zone"
69
+
operation: "In"
70
+
values:
71
+
- "zone-a"
72
+
colocatedRemote:
73
+
nodeSelectorTerms:
74
+
- matchExpressions:
75
+
- key: "topology.kubernetes.io/zone"
76
+
operation: "In"
77
+
values:
78
+
- "zone-b"
45
79
- endpoint: "https://11.0.0.2/api/rest"
46
80
globalID: "unique2"
47
81
username: "user"
48
82
password: "password"
49
83
skipCertificateValidation: true
50
-
blockProtocol: "FC"
51
-
metroTopology: Uniform
52
-
labels:
53
-
topology.kubernetes.io/zone: zone2
84
+
blockProtocol: "FC"
85
+
hostConnectivity:
86
+
metro:
87
+
colocatedLocal:
88
+
nodeSelectorTerms:
89
+
- matchExpressions:
90
+
- key: "topology.kubernetes.io/zone"
91
+
operation: "In"
92
+
values:
93
+
- "zone-b"
94
+
colocatedRemote:
95
+
nodeSelectorTerms:
96
+
- matchExpressions:
97
+
- key: "topology.kubernetes.io/zone"
98
+
operation: "In"
99
+
values:
100
+
- "zone-a"
54
101
```
55
102
56
-
* The node that match the array's topology zone key will be registered as `Host is co-located with this system`
57
-
* The node that does not match the array's topology zone key will be registered as `Host is co-located with remote system`
58
-
* When both worker nodes have the same topology key as the array's topology zone key, then both nodes will be registered as `Co-located with both systems`
59
-
* When the node does not have any zone keys in its label, the host is registered as `Local connectivity`
60
-
61
-
### Usage
103
+
### StorageClass
62
104
The Metro replicated volumes are created just like the normal volumes, but the `StorageClass` contains some
63
105
extra parameters related to metro replication. A `StorageClass` to create metro replicated volumes may look as follows:
64
106
@@ -104,8 +146,9 @@ allowedTopologies:
104
146
values: ["true"]
105
147
```
106
148
107
-
> _**NOTE**_: Metro support for hosts with Linux operating systems was added from [PowerStoreOS 4.0](https://infohub.delltechnologies.com/en-us/l/dell-powerstore-metro-volume-1/introduction-4503/).</br>
108
-
> _**NOTE**_: Metro at volume group is not supported by the PowerStore driver.
149
+
> _**NOTE:**_
150
+
> - Metro support for hosts with Linux operating systems was added from [PowerStoreOS 4.0](https://infohub.delltechnologies.com/en-us/l/dell-powerstore-metro-volume-1/introduction-4503/).</br>
151
+
> - Metro volume groups are not supported by the PowerStore driver.
109
152
110
153
When a Metro `PV` is created, the volumeHandle will have the format `<volumeID/globalID/protocol:remote-volumeID/remote-globalID>`.
Copy file name to clipboardExpand all lines: layouts/shortcodes/message.html
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
{{ if eq (.Get "text") "1" }}
1
+
{{ if eq (.Get "text") "1" }}
2
2
Docker Hub images are discontinued. All deployments will be using images from <ahref="https://quay.io/organization/dell">quay.io</a>.
3
3
{{ else if eq (.Get "text") "2" }}
4
4
Starting with CSM 1.12, all deployments will need to use images from <ahref="https://quay.io/organization/dell">quay.io</a>. Please note that from CSM 1.14 (May 2025), upgrading with helm will fail if it attempts to use images from <ahref="https://hub.docker.com/r/dellemc/">Docker Hub</a>.
@@ -32,6 +32,8 @@
32
32
Starting from CSM version 1.15, the Karavi topology component will no longer operate as a standalone service. Instead, topology data will be directly exported to the OpenTelemetry Collector
33
33
{{ else if eq (.Get "text") "17" }}
34
34
Starting with the release of <b> Container Storage Modules v1.16.0</b>, the project will no longer be maintained as an open source project. Future development will continue under a closed source model. This change reflects our commitment to delivering even greater value to our customers by enabling faster innovation and more deeply integrated features with the Dell storage portfolio. For more information like <ahref="/csm-docs/docs/release">Release Notes</a>
35
+
{{ else if eq (.Get "text") "18" }}
36
+
Configuring optimized host registration using metroTopology and labels is deprecated and remains only for backward compatibility. Similar functionality is now provided by hostConnectivity. Continue reading for more information.
35
37
{{else}}
36
38
<p>Default text if no valid parameter is passed.</p>
0 commit comments