RedHat Cluster Suite

Aus xinux.net
Zur Navigation springen Zur Suche springen

Vorbereitungen

Zu erst wird das Metapaket installiert:

aptitude install redhat-cluster-suite

Dieses enthält:

  • cman
  • gfs-tools
  • gfs2-tools
  • rgmanager
  • clvm

Zur Konfiguration der cluster.conf kann man zusätzlich noch

aptitude install system-config-cluster

installieren.

Erstellen einer gfs2 Partition auf einem drbd Device

aptitude install drbd-utils

eventuel zusätzlich

aptitude install lvm2

Aufbau

2 Nodes welche ein drbd Device beheimaten auf welchem beide(!) via dual-primary Schreibzugriff haben. Daher wird ein Cluster Filesystem genutzt.

  • gfs
  • gfs2

Dieses benötigt RHCS.

Konfiguration

/etc/drbd.conf

resource  moogie-services {
  protocol C;
  handlers {
    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
    outdate-peer "/usr/sbin/drbd-peer-outdater";
  }
  startup {
    become-primary-on both;   # Für dual-primary!
  }
  disk {
    on-io-error   detach;
  }
  net {
    allow-two-primaries;      # Für dual-primary!
    after-sb-0pri disconnect;
    after-sb-1pri disconnect;
    after-sb-2pri disconnect;
    rr-conflict disconnect;
  }
  syncer {
    rate 10M;
    al-extents 257;
  }
  on crank {
    device     /dev/drbd1;
    disk       /dev/data/moogie;
    address    172.13.12.2:7789;
    meta-disk  internal;
  }
  on arilon {
    device    /dev/drbd1;
    disk      /dev/data/moogie;
    address    172.13.12.1:7789;
    meta-disk internal;
  }
}

/etc/cluster/cluster.conf

<?xml version="1.0" ?>
<cluster config_version="2" name="cluster_one">
<!--
Da cman die /etc/corosync/corosync.conf nicht ausliest wird folgendes
<totem> Token benötigt
-->
<totem consensus="6000" token="3000"/>
	<fence_daemon post_fail_delay="0" post_join_delay="3"/>
	<clusternodes>
		<clusternode name="crank" nodeid="1" votes="1">
			<fence>
				<method name="1">
					<device name="fencing-one" nodename="crank"/>
				</method>
			</fence>
		</clusternode>
		<clusternode name="arilon" nodeid="2" votes="1">
			<fence>
				<method name="1">
					<device name="fencing-two" nodename="arilon"/>
				</method>
			</fence>
		</clusternode>
	</clusternodes>
	<cman expected_votes="1" two_node="1"/>
	<fencedevices>
		<fencedevice agent="fence_manual" name="fencing-one"/>
		<fencedevice agLVMent="fence_manual" name="fencing-two"/>
	</fencedevices>
	<rm>
		<failoverdomains>
			<failoverdomain name="failover_dom" ordered="0">
				<failoverdomainnode name="crank" priority="1"/>
				<failoverdomainnode name="arilon" priority="1"/>
			</failoverdomain>
		</failoverdomains>
		<resources>
			<clusterfs device="/dev/drbd1" force_unmount="0" fsid="31587" fstype="gfs" mountpoint="/gfs-share" name="first-gfs-system"/>
		</resources>
	</rm>
</cluster>

Erstellen des Dateisystems

mkfs -t gfs2 -p lock_dlm -j 2 -t cluster_one:first-gfs-system /dev/drbd1
  • -t <Name des Clusters>:<Name der Ressource>
  • -j <Anzahl Journals>
  • -p <Name der Locktable>

Bugs

quorum

Auch bei nicht Aktiviertem quorum wartet cman bis zum timeout darauf.

Fehlermeldungen

Waiting for quorum...Timed out
NOTICE: CMM: Cluster doesn't have operational quorum yet; waiting for quorum.

Lösung

Deaktivieren von quorum

vi +704 /etc/init.d/cman

#       runwrap wait_for_quorum \
#               none \
#               "Waiting for quorum"

Einfach auskommentieren.

corosync

Da cman die /etc/corosync/corosync.conf nicht ausliest wird ein <totem> Token in der /etc/cluster/cluster.conf im cluster-Abschnitt benötigt.

Fehlermeldung

cman does not start ... corosync died

Lösung

<totem consensus="6000" token="3000"/>

in die /etc/cluster/cluster.conf im cluster-Abschnitt Einfügen.

Weiterführende Themen