RedHat Cluster Suite: Unterschied zwischen den Versionen
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…“) |
Pascal (Diskussion | Beiträge) |
||
| (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.