RedHat Cluster Suite: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Pascal (Diskussion | Beiträge) |
||
| (26 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 12: | 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> | <code>vi +704 /etc/init.d/cman</code> | ||
# runwrap wait_for_quorum \ | # runwrap wait_for_quorum \ | ||
# none \ | # none \ | ||
# "Waiting for quorum" | # "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.