Skip to content

Commit c33534d

Browse files
authored
Merge pull request #271 from f5devcentral/develop
push to master
2 parents cafa3d8 + 1c3ad5d commit c33534d

13 files changed

Lines changed: 33 additions & 21 deletions
162 KB
Loading
161 KB
Loading
110 KB
Loading
124 KB
Loading
110 KB
Loading
93.1 KB
Loading
35.7 KB
Loading
80.4 KB
Loading
172 KB
Loading

docs/class10/labs/lab3.rst

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ BIG-IP integrates with MinIO health endpoints to monitor quorum readiness. With
2323
- **Automatically restore writes** once quorum returns.
2424
- **Outcome**: AI workloads remain consistent and responsive even under node failures.
2525

26-
Task 1. Validate healthy write quorum
27-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26+
Task 1. Validate healthy write quorum Using Lab AIStor Cluster 2
27+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2828

2929
In **BIG-IP TMUI**:
3030

3131
- Navigate to Local **Traffic → Pools → cluster1-write-quorum**.
32-
- Confirm all 4 members are **green**.
32+
- Confirm all 4 members are **green**. Change algorithm to "Least Connections (member) and click **Update**
3333

3434
|lab400|
3535

@@ -54,39 +54,42 @@ Task 2. Run baseline workload (repesenting typical read/write load)
5454

5555
Open the MinIO Warp bench tool (**UDF -> Components -> Traffic-Gen -> Access -> Firefox**)
5656

57-
- Select the target: **BigIP-cluster-1 (healthcheck + quorum)**
58-
- Select **all** three buckets.
57+
- Select the target: **BigIP-cluster-2 (healthcheck + quorum)**
58+
- Select **only** cluster2-bucket-a
5959
- Put sliders on **Duration** of 10 mins and **Concurrency** at 20 threads
6060
- Make sure that the IP address in WARP Parameters is a new BIG-IP virtual server at **10.1.40.162:9000**
6161

6262
|lab402|
6363

6464
Click the **Run Benchmark** button to start a long, full ten minutes of high rate S3 load.
65+
The simplest way to reach the following screen in TMUI, is Local Traffic -> Pools -> Pool List and click on **cluster2-write-quorum**.
66+
Now click on the **Statistics** tab in upper right of screen.
6567

6668
|lab403|
6769

68-
We observe all members of the pool cluster-1-write-quorum are getting close to the same number of total HTTP (S3) requests.
70+
We observe all members of the pool cluster-2-write-quorum are getting close to the same number of total HTTP (S3) requests.
6971

7072
Task 3. Disable one node
7173
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7274

73-
In UDF, open **UDF -> Components -> Jump Host → Access → Web Shell** (be careful not to inadvertently use WIN-JUMP-HOST).
75+
In UDF, open **UDF -> Components -> Jump Host → Access → Web Shell**.
7476

7577
- Check the active user: #whoami
7678
- If it returns **root**, switch to user ubuntu: #su - ubuntu
7779

7880
|lab404|
7981

8082
- Change to /home/ubuntu/minio directory
81-
- run the ansible playbook $ansible-playbook cluster1-stop-one-node.yml
83+
- Run the ansible playbook $ansible-playbook cluster2-stop-one-node.yml (**double-click image to enlarge**)
84+
8285

8386
|lab405|
8487

8588

8689

8790

8891

89-
In the BIG-IP Pool being used, called cluster1-write-quorum, click on the **Members / Statistics** tab and observe 1 marked **red**, this is the expected behavor.
92+
In the BIG-IP Pool being used, called cluster2-write-quorum, click on the **Members / Statistics** tab and observe 1 marked **red**, this is the expected behavor.
9093

9194
|lab406|
9295

@@ -106,6 +109,8 @@ the entire pool will be taken out because the healthcheck no longer returns 200
106109

107110
BIG-IP marks the entire pool as **red**.
108111

112+
**The key point** : two nodes are still up and running, but they show as red and **not** available in the context of this pool as the "write quorum" health check fails. The health check, targetting a specific MinIO URL, is failing due to the total number of nodes falling below the threshold of healthy nodes.
113+
109114
|lab408|
110115

111116
Notice that all nodes are down, however a few TCP connections remain active. No new S3 traffic will be proxied to these nodes by the corresponding
@@ -116,12 +121,12 @@ Task 5. Read-only cluster & verification of failover
116121
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117122

118123
An F5 iRule or policy could be configured to shift traffic from a pool that is no longer available to another. In
119-
our configuration, the cluster1-write-quorum automatically fails over to the cluster1-read-quorum pool. The iRule used can be seen on the Resources
124+
our configuration, the cluster2-write-quorum automatically fails over to the cluster2-read-quorum pool. The iRule used can be seen on the Resources
120125
tab of the virtual server named **minio-cluster-healthcheck**.
121126

122127
Let's look at the pool that the iRule will now be directing S3 traffic towards.
123128

124-
In **BIG-IP TMUI** open (Traffic -> Pools -> Pool List -> *cluster1-read-quorum* -> Members)
129+
In **BIG-IP TMUI** open (Traffic -> Pools -> Pool List -> *cluster2-read-quorum* -> Members)
125130

126131
Two nodes are shown as down (nodes 2 and 4), however there are **two healthy nodes** (nodes 1 and 3), which is sufficient to satisfy the
127132
read quorum, hence the pool can still operate and fully accept read operations.
@@ -132,7 +137,7 @@ We see in the following screen, the two healthy nodes continue to handle transac
132137

133138
Open UDF -> AST -> Access -> Grafana; Select **Device Pools**.
134139

135-
Enlarge the Active Pool Connections chart, and select **only** pools cluster1-write-quarum and cluster1-read-quarum.
140+
Enlarge the Active Pool Connections chart, and select **only** pools cluster2-write-quarum and cluster2-read-quarum.
136141

137142
If the WARP ten minute load generator was active when the ansible disater simulation playbook ran, taking down two nodes, one will be able
138143
to see this moment.
@@ -165,7 +170,7 @@ In the following, one can see the original Ansible disaster simulation script be
165170
|lab411|
166171

167172
**Expectation:** Without any operator intervention, or requirements on the part of S3 client configuration, the entire S3 storage solution has recovered.
168-
Traffic destined for the **write-quarum pool** has automatically resumed handling reads and writes.
173+
Traffic destined for the **write-quarum pool** has automatically resumed successfully handling reads and writes.
169174

170175

171176
Troubleshooting
@@ -228,25 +233,25 @@ What You Learned - BIG-IP and AIStor Impact
228233
:width: 800px
229234
.. |lab313| image:: ../_static/lab3-appworld2025-waf-block-message.png
230235
:width: 800px
231-
.. |lab400| image:: ../_static/c_write_quorom_pool.png
236+
.. |lab400| image:: ../_static/cluster_2_write_quorum.png
232237
:width: 800px
233238
.. |lab401| image:: ../_static/c_health_monitor.png
234239
:width: 800px
235-
.. |lab402| image:: ../_static/c_warp_params.png
240+
.. |lab402| image:: ../_static/warp_clsuter2_write_quorum.png
236241
:width: 800px
237-
.. |lab403| image:: ../_static/c_traffic_to_all_nodes.png
242+
.. |lab403| image:: ../_static/cluster_2_even_traffic_write_quorum.png
238243
:width: 800px
239244
.. |lab404| image:: ../_static/c_connect_to_linux_host.png
240245
:width: 800px
241-
.. |lab405| image:: ../_static/c_ansible_take_one_node_down_2.png
246+
.. |lab405| image:: ../_static/cluster_2_updated_ansible_playbook.png
242247
:width: 800px
243-
.. |lab406| image:: ../_static/c_one_node_down.png
248+
.. |lab406| image:: ../_static/cluster_2_one_node_failed.png
244249
:width: 800px
245250
.. |lab407| image:: ../_static/c_take_down_second_node.png
246251
:width: 800px
247-
.. |lab408| image:: ../_static/c_all_nodes_down.png
252+
.. |lab408| image:: ../_static/cluster2_2failed_nodes.png
248253
:width: 800px
249-
.. |lab409| image:: ../_static/c_2_healthy_nodes.png
254+
.. |lab409| image:: ../_static/cluster_2_read_quorum_still_okay.png
250255
:width: 800px
251256
.. |lab410| image:: ../_static/c_trans_write_to_read_quorum.png
252257
:width: 800px

0 commit comments

Comments
 (0)