RedHat Cluster Suite: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Zu erst wird das Metapaket installiert: aptitude install redhat-cluster-suite Dieses enthält: * cman * gfs-tools * gfs2-tools * rgmanager * clvm Zur Konfigurat…“)
 
 
(29 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
==Vorbereitungen==
 
Zu erst wird das Metapaket installiert:
 
Zu erst wird das Metapaket installiert:
 
  aptitude install redhat-cluster-suite
 
  aptitude install redhat-cluster-suite
Zeile 11: Zeile 12:
 
  aptitude install system-config-cluster
 
  aptitude install system-config-cluster
 
installieren.
 
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">
 +
<nowiki><!--</nowiki>
 +
Da <code>cman</code> 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 <code>quorum</code> 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 '''
 +
 +
<code>vi +704 /etc/init.d/cman</code>
 +
#      runwrap wait_for_quorum \
 +
#              none \
 +
#              "Waiting for quorum"
 +
Einfach auskommentieren.
 +
 +
=== corosync ===
 +
Da cman die <code>/etc/corosync/corosync.conf</code> nicht ausliest wird ein <code><totem></code> Token in der <code>/etc/cluster/cluster.conf</code> im <code>cluster</code>-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 ==
 +
* [[Heartbeat]]
 +
* [[LVM]]
 +
* [[DRBD]]

Aktuelle Version vom 13. Oktober 2010, 07:36 Uhr

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