|
905 | 905 | </span> |
906 | 906 | </a> |
907 | 907 |
|
| 908 | +</li> |
| 909 | + |
| 910 | + <li class="md-nav__item"> |
| 911 | + <a href="#dynamic-cluster-lifecycle" class="md-nav__link"> |
| 912 | + <span class="md-ellipsis"> |
| 913 | + |
| 914 | + Dynamic Cluster Lifecycle |
| 915 | + |
| 916 | + </span> |
| 917 | + </a> |
| 918 | + |
| 919 | + <nav class="md-nav" aria-label="Dynamic Cluster Lifecycle"> |
| 920 | + <ul class="md-nav__list"> |
| 921 | + |
| 922 | + <li class="md-nav__item"> |
| 923 | + <a href="#when-cluster-services-start-on-compute-nodes" class="md-nav__link"> |
| 924 | + <span class="md-ellipsis"> |
| 925 | + |
| 926 | + When Cluster Services Start on Compute Nodes |
| 927 | + |
| 928 | + </span> |
| 929 | + </a> |
| 930 | + |
| 931 | +</li> |
| 932 | + |
| 933 | + <li class="md-nav__item"> |
| 934 | + <a href="#when-cluster-services-stop-on-compute-nodes" class="md-nav__link"> |
| 935 | + <span class="md-ellipsis"> |
| 936 | + |
| 937 | + When Cluster Services Stop on Compute Nodes |
| 938 | + |
| 939 | + </span> |
| 940 | + </a> |
| 941 | + |
| 942 | +</li> |
| 943 | + |
| 944 | + </ul> |
| 945 | + </nav> |
| 946 | + |
908 | 947 | </li> |
909 | 948 |
|
910 | 949 | <li class="md-nav__item"> |
|
1796 | 1835 | </span> |
1797 | 1836 | </a> |
1798 | 1837 |
|
| 1838 | +</li> |
| 1839 | + |
| 1840 | + <li class="md-nav__item"> |
| 1841 | + <a href="#dynamic-cluster-lifecycle" class="md-nav__link"> |
| 1842 | + <span class="md-ellipsis"> |
| 1843 | + |
| 1844 | + Dynamic Cluster Lifecycle |
| 1845 | + |
| 1846 | + </span> |
| 1847 | + </a> |
| 1848 | + |
| 1849 | + <nav class="md-nav" aria-label="Dynamic Cluster Lifecycle"> |
| 1850 | + <ul class="md-nav__list"> |
| 1851 | + |
| 1852 | + <li class="md-nav__item"> |
| 1853 | + <a href="#when-cluster-services-start-on-compute-nodes" class="md-nav__link"> |
| 1854 | + <span class="md-ellipsis"> |
| 1855 | + |
| 1856 | + When Cluster Services Start on Compute Nodes |
| 1857 | + |
| 1858 | + </span> |
| 1859 | + </a> |
| 1860 | + |
| 1861 | +</li> |
| 1862 | + |
| 1863 | + <li class="md-nav__item"> |
| 1864 | + <a href="#when-cluster-services-stop-on-compute-nodes" class="md-nav__link"> |
| 1865 | + <span class="md-ellipsis"> |
| 1866 | + |
| 1867 | + When Cluster Services Stop on Compute Nodes |
| 1868 | + |
| 1869 | + </span> |
| 1870 | + </a> |
| 1871 | + |
| 1872 | +</li> |
| 1873 | + |
| 1874 | + </ul> |
| 1875 | + </nav> |
| 1876 | + |
1799 | 1877 | </li> |
1800 | 1878 |
|
1801 | 1879 | <li class="md-nav__item"> |
@@ -1855,6 +1933,7 @@ <h2 id="table-of-contents">Table of Contents</h2> |
1855 | 1933 | <li><a href="#common-issues">Common Issues</a></li> |
1856 | 1934 | <li><a href="#testing-fence-operations">Testing Fence Operations</a></li> |
1857 | 1935 | <li><a href="#gfs2-file-system-configuration">GFS2 File System Configuration</a></li> |
| 1936 | +<li><a href="#dynamic-cluster-lifecycle">Dynamic Cluster Lifecycle</a></li> |
1858 | 1937 | <li><a href="#references">References</a></li> |
1859 | 1938 | </ul> |
1860 | 1939 | <h2 id="background-pacemaker-and-corosync">Background: Pacemaker and Corosync</h2> |
@@ -2232,6 +2311,40 @@ <h2 id="gfs2-file-system-configuration">GFS2 File System Configuration</h2> |
2232 | 2311 | <ul> |
2233 | 2312 | <li><a href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_high_availability_clusters/assembly_configuring-gfs2-in-a-cluster-configuring-and-managing-high-availability-clusters">Configuring a GFS2 File System in a Cluster</a></li> |
2234 | 2313 | </ul> |
| 2314 | +<h2 id="dynamic-cluster-lifecycle">Dynamic Cluster Lifecycle</h2> |
| 2315 | +<p>Unlike traditional HA clusters that run continuously on all nodes, NNF manages Pacemaker cluster services dynamically on compute nodes based on workflow requirements. Cluster services run <strong>continuously on the Rabbit</strong> but are <strong>started and stopped dynamically on compute nodes</strong>.</p> |
| 2316 | +<h3 id="when-cluster-services-start-on-compute-nodes">When Cluster Services Start on Compute Nodes</h3> |
| 2317 | +<p>NNF software starts Pacemaker/Corosync cluster services on compute nodes when:</p> |
| 2318 | +<ol> |
| 2319 | +<li>A workflow requests GFS2 storage</li> |
| 2320 | +<li>The NNF software provisions the GFS2 file system</li> |
| 2321 | +<li>Compute nodes need to mount the shared storage</li> |
| 2322 | +</ol> |
| 2323 | +<p>At this point, cluster services are started on participating compute nodes, they join the Rabbit's cluster, fencing is enabled, and the GFS2 file system is mounted.</p> |
| 2324 | +<blockquote> |
| 2325 | +<p>See <a href="https://nearnodeflash.github.io/latest/guides/storage-profiles/readme/">Storage Profiles</a> for more information about how to start cluster services using the <code>PreActivate</code> command.</p> |
| 2326 | +</blockquote> |
| 2327 | +<h3 id="when-cluster-services-stop-on-compute-nodes">When Cluster Services Stop on Compute Nodes</h3> |
| 2328 | +<p>When the GFS2 workflow completes:</p> |
| 2329 | +<ol> |
| 2330 | +<li>The GFS2 file system is unmounted from all compute nodes</li> |
| 2331 | +<li>Storage resources are cleaned up</li> |
| 2332 | +<li>Pacemaker/Corosync cluster services are stopped on compute nodes</li> |
| 2333 | +<li>The Rabbit continues running cluster services</li> |
| 2334 | +</ol> |
| 2335 | +<blockquote> |
| 2336 | +<p>See <a href="https://nearnodeflash.github.io/latest/guides/storage-profiles/readme/">Storage Profiles</a> for more information about how to stop cluster services using the <code>PostDeactivate</code> command.</p> |
| 2337 | +</blockquote> |
| 2338 | +<p>This dynamic lifecycle means:</p> |
| 2339 | +<ul> |
| 2340 | +<li><strong>Rabbit runs cluster services continuously</strong>: Always ready to accept compute nodes</li> |
| 2341 | +<li><strong>Compute node services are transient</strong>: They run only for the duration of GFS2 workflows</li> |
| 2342 | +<li><strong>Resource efficiency</strong>: Cluster overhead on compute nodes is incurred only when needed</li> |
| 2343 | +<li><strong>Reduced complexity</strong>: No long-running cluster services to maintain on compute nodes between jobs</li> |
| 2344 | +</ul> |
| 2345 | +<blockquote> |
| 2346 | +<p><strong>Note:</strong> The cluster configuration (node membership, quorum votes, STONITH resources) is set up during system provisioning and persists on all nodes. Only the cluster <em>services</em> on compute nodes are started and stopped dynamically.</p> |
| 2347 | +</blockquote> |
2235 | 2348 | <h2 id="references">References</h2> |
2236 | 2349 | <ul> |
2237 | 2350 | <li><a href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_high_availability_clusters/">Red Hat: Configuring and Managing High Availability Clusters</a></li> |
|
0 commit comments