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: docs/guides/ha-cluster/readme.md
+43-19Lines changed: 43 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ NNF software supports provisioning of Red Hat GFS2 (Global File System 2) storag
15
15
-[Quorum Configuration](#quorum-configuration)
16
16
-[Why the Rabbit Needs 17 Votes](#why-the-rabbit-needs-17-votes)
17
17
-[Configuring Quorum Votes](#configuring-quorum-votes)
18
-
-[Fencing with fence_recorder](#fencing-with-fence_recorder)
18
+
-[Fencing with fence_dummy](#fencing-with-fence_dummy)
19
19
-[How It Works](#how-it-works)
20
20
-[Installation](#installation)
21
21
-[STONITH Configuration](#stonith-configuration)
@@ -169,9 +169,9 @@ corosync-quorumtool
169
169
170
170
The output should show the Rabbit with 17 votes and each compute with 1 vote, for a total of 33 votes and quorum at 17.
171
171
172
-
## Fencing with fence_recorder
172
+
## Fencing with fence_dummy
173
173
174
-
The `fence_recorder` agent coordinates fencing with external NNF software using a request/response file pattern. When Pacemaker decides to fence a compute node, `fence_recorder`:
174
+
The [`fence_dummy`](https://github.com/ClusterLabs/fence-agents/tree/main/agents/dummy) agent coordinates fencing with external NNF software using a request/response file pattern. When Pacemaker decides to fence a compute node, `fence_dummy`:
175
175
176
176
1. Writes a fence request file
177
177
2. Waits for the NNF software to process the request and write a response
@@ -188,10 +188,10 @@ This allows the NNF software to perform storage cleanup (detaching NVMe namespac
|`pcmk_host_list`| (required) | Node this STONITH resource can fence |
276
-
|`request_dir`|`/var/run/fence_recorder/requests`| Directory for fence request files |
277
-
|`response_dir`|`/var/run/fence_recorder/responses`| Directory for fence response files |
276
+
|`request_dir`|`/var/run/fence_dummy/requests`| Directory for fence request files |
277
+
|`response_dir`|`/var/run/fence_dummy/responses`| Directory for fence response files |
278
278
|`log_dir`|`/var/log/cluster`| Directory for log files |
279
279
280
+
### NNF Software Configuration
281
+
282
+
The nnf-node-manager DaemonSet must be configured with the **same** request and response directories used by the `fence_dummy` agent. These are controlled by environment variables in the pod spec:
283
+
284
+
| Environment Variable | Default | Description |
285
+
|---------------------|---------|-------------|
286
+
|`NNF_FENCE_REQUEST_DIR`|`/localdisk/fence-recorder/requests`| Directory where fence agents write JSON request files |
287
+
|`NNF_FENCE_RESPONSE_DIR`|`/localdisk/fence-recorder/responses`| Directory where nnf-sos writes JSON response files |
288
+
289
+
These variables are set in the nnf-node-manager DaemonSet manifest (`config/manager/manager.yaml`):
290
+
291
+
```yaml
292
+
env:
293
+
- name: NNF_FENCE_REQUEST_DIR
294
+
value: "/localdisk/fence-recorder/requests"
295
+
- name: NNF_FENCE_RESPONSE_DIR
296
+
value: "/localdisk/fence-recorder/responses"
297
+
```
298
+
299
+
When unset or empty, the defaults shown above are used. The nnf-node-manager creates the directories automatically if they do not exist.
300
+
301
+
!!! important
302
+
The `request_dir` and `response_dir` values in the STONITH resource configuration **must match** the `NNF_FENCE_REQUEST_DIR` and `NNF_FENCE_RESPONSE_DIR` environment variables in the nnf-node-manager pod. If they differ, fence requests will not be detected.
303
+
280
304
### Verifying Configuration
281
305
282
306
```bash
@@ -286,15 +310,15 @@ pcs stonith status
286
310
# View STONITH configuration
287
311
pcs stonith config
288
312
289
-
# Test that fence_recorder can generate metadata
290
-
fence_recorder --action metadata
313
+
# Test that fence_dummy can generate metadata
314
+
fence_dummy --action metadata
291
315
```
292
316
293
317
## Request/Response Protocol
294
318
295
319
### Request File Format
296
320
297
-
When a fence operation is triggered, `fence_recorder` writes a JSON request file:
321
+
When a fence operation is triggered, `fence_dummy` writes a JSON request file:
0 commit comments