\select@language {english} \contentsline {chapter}{\numberline {1}Abstract}{3}{chapter.1} \contentsline {chapter}{\numberline {2}Table of Contents}{5}{chapter.2} \contentsline {section}{\numberline {2.1}Introduction}{5}{section.2.1} \contentsline {subsection}{\numberline {2.1.1}The Scope of This Document}{5}{subsection.2.1.1} \contentsline {subsection}{\numberline {2.1.2}What Is Pacemaker?}{5}{subsection.2.1.2} \contentsline {subsubsection}{Cluster Architecture}{6}{subsubsection*.3} \contentsline {subsubsection}{Pacemaker Architecture}{7}{subsubsection*.4} \contentsline {subsubsection}{Node Redundancy Designs}{9}{subsubsection*.5} \contentsline {section}{\numberline {2.2}Installation}{12}{section.2.2} \contentsline {subsection}{\numberline {2.2.1}Install AlmaLinux 9}{12}{subsection.2.2.1} \contentsline {subsubsection}{Boot the Install Image}{12}{subsubsection*.6} \contentsline {subsubsection}{Installation Options}{12}{subsubsection*.7} \contentsline {subsubsection}{Configure Network}{16}{subsubsection*.8} \contentsline {subsubsection}{Configure Disk}{17}{subsubsection*.9} \contentsline {subsubsection}{Configure Time Synchronization}{20}{subsubsection*.10} \contentsline {subsubsection}{Root Password}{20}{subsubsection*.11} \contentsline {subsubsection}{Finish Install}{23}{subsubsection*.12} \contentsline {subsection}{\numberline {2.2.2}Configure the OS}{23}{subsection.2.2.2} \contentsline {subsubsection}{Verify Networking}{23}{subsubsection*.13} \contentsline {subsubsection}{Login Remotely}{25}{subsubsection*.14} \contentsline {subsubsection}{Apply Updates}{25}{subsubsection*.15} \contentsline {subsubsection}{Use Short Node Names}{25}{subsubsection*.16} \contentsline {subsection}{\numberline {2.2.3}Repeat for Second Node}{25}{subsection.2.2.3} \contentsline {subsection}{\numberline {2.2.4}Configure Communication Between Nodes}{26}{subsection.2.2.4} \contentsline {subsubsection}{Configure Host Name Resolution}{26}{subsubsection*.17} \contentsline {subsubsection}{Configure SSH}{26}{subsubsection*.18} \contentsline {section}{\numberline {2.3}Set up a Cluster}{28}{section.2.3} \contentsline {subsection}{\numberline {2.3.1}Simplify Administration With a Cluster Shell}{28}{subsection.2.3.1} \contentsline {subsection}{\numberline {2.3.2}Install the Cluster Software}{28}{subsection.2.3.2} \contentsline {subsection}{\numberline {2.3.3}Configure the Cluster Software}{28}{subsection.2.3.3} \contentsline {subsubsection}{Allow cluster services through firewall}{28}{subsubsection*.19} \contentsline {subsubsection}{Enable \sphinxstyleliteralintitle {\sphinxupquote {pcs}} Daemon}{29}{subsubsection*.20} \contentsline {subsubsection}{Configure Corosync}{29}{subsubsection*.21} \contentsline {subsection}{\numberline {2.3.4}Explore pcs}{30}{subsection.2.3.4} \contentsline {section}{\numberline {2.4}Start and Verify Cluster}{32}{section.2.4} \contentsline {subsection}{\numberline {2.4.1}Start the Cluster}{32}{subsection.2.4.1} \contentsline {subsection}{\numberline {2.4.2}Verify Corosync Installation}{33}{subsection.2.4.2} \contentsline {subsection}{\numberline {2.4.3}Verify Pacemaker Installation}{34}{subsection.2.4.3} \contentsline {subsection}{\numberline {2.4.4}Explore the Existing Configuration}{35}{subsection.2.4.4} \contentsline {section}{\numberline {2.5}Configure Fencing}{36}{section.2.5} \contentsline {subsection}{\numberline {2.5.1}What is Fencing?}{36}{subsection.2.5.1} \contentsline {subsection}{\numberline {2.5.2}Choose a Fence Device}{36}{subsection.2.5.2} \contentsline {subsection}{\numberline {2.5.3}Configure the Cluster for Fencing}{37}{subsection.2.5.3} \contentsline {subsection}{\numberline {2.5.4}Example}{37}{subsection.2.5.4} \contentsline {section}{\numberline {2.6}Create an Active/Passive Cluster}{40}{section.2.6} \contentsline {subsection}{\numberline {2.6.1}Add a Resource}{40}{subsection.2.6.1} \contentsline {subsection}{\numberline {2.6.2}Perform a Failover}{41}{subsection.2.6.2} \contentsline {subsection}{\numberline {2.6.3}Prevent Resources from Moving after Recovery}{43}{subsection.2.6.3} \contentsline {section}{\numberline {2.7}Add Apache HTTP Server as a Cluster Service}{44}{section.2.7} \contentsline {subsection}{\numberline {2.7.1}Install Apache}{44}{subsection.2.7.1} \contentsline {subsection}{\numberline {2.7.2}Create Website Documents}{44}{subsection.2.7.2} \contentsline {subsection}{\numberline {2.7.3}Enable the Apache Status URL}{45}{subsection.2.7.3} \contentsline {subsection}{\numberline {2.7.4}Configure the Cluster}{45}{subsection.2.7.4} \contentsline {subsection}{\numberline {2.7.5}Ensure Resources Run on the Same Host}{46}{subsection.2.7.5} \contentsline {subsection}{\numberline {2.7.6}Ensure Resources Start and Stop in Order}{47}{subsection.2.7.6} \contentsline {subsection}{\numberline {2.7.7}Prefer One Node Over Another}{48}{subsection.2.7.7} \contentsline {subsection}{\numberline {2.7.8}Move Resources Manually}{49}{subsection.2.7.8} \contentsline {section}{\numberline {2.8}Replicate Storage Using DRBD}{50}{section.2.8} \contentsline {subsection}{\numberline {2.8.1}Install the DRBD Packages}{50}{subsection.2.8.1} \contentsline {subsection}{\numberline {2.8.2}Allocate a Disk Volume for DRBD}{51}{subsection.2.8.2} \contentsline {subsection}{\numberline {2.8.3}Configure DRBD}{52}{subsection.2.8.3} \contentsline {subsection}{\numberline {2.8.4}Initialize DRBD}{53}{subsection.2.8.4} \contentsline {subsection}{\numberline {2.8.5}Populate the DRBD Disk}{55}{subsection.2.8.5} \contentsline {subsection}{\numberline {2.8.6}Configure the Cluster for the DRBD device}{55}{subsection.2.8.6} \contentsline {subsection}{\numberline {2.8.7}Configure the Cluster for the Filesystem}{57}{subsection.2.8.7} \contentsline {subsection}{\numberline {2.8.8}Test Cluster Failover}{58}{subsection.2.8.8} \contentsline {section}{\numberline {2.9}Convert Storage to Active/Active}{60}{section.2.9} \contentsline {subsection}{\numberline {2.9.1}Install Cluster Filesystem Software}{60}{subsection.2.9.1} \contentsline {subsection}{\numberline {2.9.2}Configure the Cluster for the DLM}{60}{subsection.2.9.2} \contentsline {subsection}{\numberline {2.9.3}Create and Populate GFS2 Filesystem}{61}{subsection.2.9.3} \contentsline {subsection}{\numberline {2.9.4}Reconfigure the Cluster for GFS2}{63}{subsection.2.9.4} \contentsline {subsection}{\numberline {2.9.5}Clone the Filesystem Resource}{64}{subsection.2.9.5} \contentsline {subsection}{\numberline {2.9.6}Test Failover}{65}{subsection.2.9.6} \contentsline {section}{\numberline {2.10}Configuration Recap}{65}{section.2.10} \contentsline {subsection}{\numberline {2.10.1}Final Cluster Configuration}{65}{subsection.2.10.1} \contentsline {subsection}{\numberline {2.10.2}Node List}{68}{subsection.2.10.2} \contentsline {subsection}{\numberline {2.10.3}Cluster Options}{68}{subsection.2.10.3} \contentsline {subsection}{\numberline {2.10.4}Resources}{69}{subsection.2.10.4} \contentsline {subsubsection}{Default Options}{69}{subsubsection*.22} \contentsline {subsubsection}{Fencing}{69}{subsubsection*.23} \contentsline {subsubsection}{Service Address}{69}{subsubsection*.24} \contentsline {subsubsection}{DRBD - Shared Storage}{69}{subsubsection*.25} \contentsline {subsubsection}{Cluster Filesystem}{70}{subsubsection*.26} \contentsline {subsubsection}{Apache}{70}{subsubsection*.27} \contentsline {section}{\numberline {2.11}Sample Corosync Configuration}{71}{section.2.11} \contentsline {section}{\numberline {2.12}Further Reading}{71}{section.2.12} \contentsline {chapter}{\numberline {3}Index}{73}{chapter.3} \contentsline {chapter}{Index}{75}{section*.28}