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