Inhaltsverzeichnis
Hochverfügbarkeit GFS2
Das GFS2-Dateisystem ist ein Cluster-Dateisystem, das es mehreren Rechnern ermöglicht, gleichzeitig auf gemeinsamen Speicher zuzugreifen und das die Konsistenz der gespeicherten Daten gewährleistet.
Vorbereitung
Nachfolgende vorbereitende Schritte sind notwendig, um ein GFS2-Dateisystem zu betreiben.
- Eintragung der beteiligten Server bzw. Knoten in die Namensauflösung DNS, bzw.
/etc/hosts
. - Freischaltung der benötigten Paketfilter-Regeln, hier
iptables
.
um anschließend die
- Installation der benötigten Software-Komponenten.
- Einrichten von
Mount-Points
auf den nutzenden Clients.
durchführen zu können.
/etc/hosts
In der nachfolgend gezeigten Installation eines GFS2-Dateisystems, werden zusätzlich zu möglichen Eintragungen im DNS, nachfolgende Eintragungen in allen beteiligten Servern Knoten, durchgeführt:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.200 ha-manager ha-manager.intra.tachtler.net 192.168.1.201 ha-node-01 ha-node-01.intra.tachtler.net 192.168.1.202 ha-node-02 ha-node-02.intra.tachtler.net
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.200 ha-manager ha-manager.intra.tachtler.net 192.168.1.201 ha-node-01 ha-node-01.intra.tachtler.net 192.168.1.202 ha-node-02 ha-node-02.intra.tachtler.net
/etc/sysconfig/iptables-save
Damit die Server/Knoten auch erreichbar sind und nicht die Kommunikation vom Paketfilter iptables
blockiert wird, müssen nachfolgende Regel zum iptables
-Regelwerk auf allen Servern hinzugefügt werden.
Um die aktuellen iptables
-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 23732 6343K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 12 693 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 6 360 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 86 2752 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 22420 packets, 17M bytes) num pkts bytes target prot opt in out source destination
Nachfolgende Befehle, fügen folgende iptables
-Regeln dem iptables
-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:
-A INPUT -m state --state NEW -m udp -p udp --dport 5404 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5405 -j ACCEPT
und hier die Befehle:
# iptables -I INPUT 6 -m state --state NEW -m udp -p udp --dport 5404 -j ACCEPT # iptables -I INPUT 6 -m state --state NEW -m udp -p udp --dport 5405 -j ACCEPT
Ein erneute Abfrage des iptables
-Regelwerks, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 119 9860 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5404 6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5405 7 1 32 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 6 packets, 936 bytes) num pkts bytes target prot opt in out source destination
Die neuen Zeilen sind an Position 5 und Position 6 zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):
... 5 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5404 6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:5405 ...
Um diese iptables
-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables
-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Installation
HINWEIS - Die Installation erfolgt NUR auf BEIDEN Server/Knoten (ha-node-01 und ha-node-02) !!!
Die Installation der benötigten Pakete kann hier über die Funktion: Gruppen-Installation durchgeführt werden. Die benötigte Gruppe lautet:
Resilient Storage
Mit nachfolgendem Befehl, kann ein Blick auf den Inhalt der rpm
-Paket-Gruppe Resilient Storage
geworfen werden:
# yum groupinfo "Resilient Storage" Loaded plugins: fastestmirror, priorities Setting up Group Process Loading mirror speeds from cached hostfile Group: Resilient Storage Description: Clustered storage, including the GFS2 filesystem. Mandatory Packages: gfs2-utils lvm2-cluster Default Packages: ccs Optional Packages: cluster-glue-libs-devel clusterlib-devel cmirror corosynclib-devel ctdb ctdb-devel fence-virtd-checkpoint libesmtp-devel openaislib-devel pacemaker-libs-devel
Die Installation kann mit nachfolgendem Befehl durchgeführt werden:
# yum groupinstall "Resilient Storage" Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile Setting up Group Process Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package ccs.x86_64 0:0.16.2-55.el6 will be installed ---> Package gfs2-utils.x86_64 0:3.0.12.1-32.el6_3.1 will be installed ---> Package lvm2-cluster.x86_64 0:2.02.95-10.el6 will be installed --> Processing Dependency: corosync >= 1.2.0-1 for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: cman >= 3.0.6-1 for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: clusterlib >= 3.0.6-1 for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: libconfdb.so.4(COROSYNC_CONFDB_1.0)(64bit) for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: libdlm.so.3()(64bit) for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: libconfdb.so.4()(64bit) for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Processing Dependency: libcman.so.3()(64bit) for package: lvm2-cluster-2.02.95-10.el6.x86_64 --> Running transaction check ---> Package clusterlib.x86_64 0:3.0.12.1-32.el6_3.1 will be installed ---> Package cman.x86_64 0:3.0.12.1-32.el6_3.1 will be installed --> Processing Dependency: ricci >= 0.15.0-4 for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: openais >= 1.1.1-1 for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: modcluster >= 0.15.0-3 for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: fence-virt >= 0.2.3-1 for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: fence-agents >= 3.1.5-1 for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: libSaCkpt.so.3(OPENAIS_CKPT_B.01.01)(64bit) for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: /usr/bin/xsltproc for package: cman-3.0.12.1-32.el6_3.1.x86_64 --> Processing Dependency: libSaCkpt.so.3()(64bit) for package: cman-3.0.12.1-32.el6_3.1.x86_64 ---> Package corosync.x86_64 0:1.4.1-7.el6_3.1 will be installed --> Processing Dependency: libnetsnmp.so.20()(64bit) for package: corosync-1.4.1-7.el6_3.1.x86_64 ---> Package corosynclib.x86_64 0:1.4.1-7.el6_3.1 will be installed --> Processing Dependency: librdmacm.so.1(RDMACM_1.0)(64bit) for package: corosynclib-1.4.1-7.el6_3.1.x86_64 --> Processing Dependency: libibverbs.so.1(IBVERBS_1.1)(64bit) for package: corosynclib-1.4.1-7.el6_3.1.x86_64 --> Processing Dependency: libibverbs.so.1(IBVERBS_1.0)(64bit) for package: corosynclib-1.4.1-7.el6_3.1.x86_64 --> Processing Dependency: librdmacm.so.1()(64bit) for package: corosynclib-1.4.1-7.el6_3.1.x86_64 --> Processing Dependency: libibverbs.so.1()(64bit) for package: corosynclib-1.4.1-7.el6_3.1.x86_64 --> Running transaction check ---> Package fence-agents.x86_64 0:3.1.5-17.el6 will be installed --> Processing Dependency: telnet for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: sg3_utils for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: python-suds for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: pyOpenSSL for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: pexpect for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: perl-Net-Telnet for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: perl(Net::Telnet) for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: net-snmp-utils for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: /usr/bin/virsh for package: fence-agents-3.1.5-17.el6.x86_64 --> Processing Dependency: /usr/bin/ipmitool for package: fence-agents-3.1.5-17.el6.x86_64 ---> Package fence-virt.x86_64 0:0.2.3-9.el6 will be installed ---> Package libibverbs.x86_64 0:1.1.6-4.el6 will be installed ---> Package librdmacm.x86_64 0:1.0.15-2.el6 will be installed ---> Package libxslt.x86_64 0:1.1.26-2.el6 will be installed ---> Package modcluster.x86_64 0:0.16.2-18.el6 will be installed --> Processing Dependency: oddjob for package: modcluster-0.16.2-18.el6.x86_64 --> Processing Dependency: dbus for package: modcluster-0.16.2-18.el6.x86_64 ---> Package net-snmp-libs.x86_64 1:5.5-41.el6_3.1 will be installed --> Processing Dependency: libsensors.so.4()(64bit) for package: 1:net-snmp-libs-5.5-41.el6_3.1.x86_64 ---> Package openais.x86_64 0:1.1.1-7.el6 will be installed ---> Package openaislib.x86_64 0:1.1.1-7.el6 will be installed ---> Package ricci.x86_64 0:0.16.2-55.el6 will be installed --> Processing Dependency: parted for package: ricci-0.16.2-55.el6.x86_64 --> Running transaction check ---> Package dbus.x86_64 1:1.2.24-5.el6_1 will be installed ---> Package ipmitool.x86_64 0:1.8.11-13.el6.1 will be installed ---> Package libvirt-client.x86_64 0:0.9.10-21.el6_3.4 will be installed --> Processing Dependency: pm-utils for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: nc for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnuma.so.1(libnuma_1.2)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnuma.so.1(libnuma_1.1)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnetcf.so.1(NETCF_1.4.0)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnetcf.so.1(NETCF_1.3.0)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnetcf.so.1(NETCF_1.2.0)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnetcf.so.1(NETCF_1.0.0)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libgnutls.so.26(GNUTLS_1_4)(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: gnutls-utils for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: gettext for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: cyrus-sasl-md5 for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libyajl.so.1()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libpcap.so.1()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnuma.so.1()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnl.so.1()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libnetcf.so.1()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libgnutls.so.26()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libavahi-common.so.3()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 --> Processing Dependency: libavahi-client.so.3()(64bit) for package: libvirt-client-0.9.10-21.el6_3.4.x86_64 ---> Package lm_sensors-libs.x86_64 0:3.1.1-10.el6 will be installed ---> Package net-snmp-utils.x86_64 1:5.5-41.el6_3.1 will be installed ---> Package oddjob.x86_64 0:0.30-5.el6 will be installed ---> Package parted.x86_64 0:2.1-18.el6 will be installed ---> Package perl-Net-Telnet.noarch 0:3.03-11.el6 will be installed ---> Package pexpect.noarch 0:2.3-6.el6 will be installed ---> Package pyOpenSSL.x86_64 0:0.10-2.el6 will be installed ---> Package python-suds.noarch 0:0.4.1-3.el6 will be installed ---> Package sg3_utils.x86_64 0:1.28-4.el6 will be installed --> Processing Dependency: sg3_utils-libs = 1.28-4.el6 for package: sg3_utils-1.28-4.el6.x86_64 --> Processing Dependency: libsgutils2.so.2()(64bit) for package: sg3_utils-1.28-4.el6.x86_64 ---> Package telnet.x86_64 1:0.17-47.el6 will be installed --> Running transaction check ---> Package avahi-libs.x86_64 0:0.6.25-11.el6 will be installed ---> Package cyrus-sasl-md5.x86_64 0:2.1.23-13.el6 will be installed ---> Package gettext.x86_64 0:0.17-16.el6 will be installed --> Processing Dependency: libgomp.so.1(GOMP_1.0)(64bit) for package: gettext-0.17-16.el6.x86_64 --> Processing Dependency: cvs for package: gettext-0.17-16.el6.x86_64 --> Processing Dependency: libgomp.so.1()(64bit) for package: gettext-0.17-16.el6.x86_64 ---> Package gnutls.x86_64 0:2.8.5-4.el6_2.2 will be installed --> Processing Dependency: libtasn1.so.3(LIBTASN1_0_3)(64bit) for package: gnutls-2.8.5-4.el6_2.2.x86_64 --> Processing Dependency: libtasn1.so.3()(64bit) for package: gnutls-2.8.5-4.el6_2.2.x86_64 ---> Package gnutls-utils.x86_64 0:2.8.5-4.el6_2.2 will be installed ---> Package libnl.x86_64 0:1.1-14.el6 will be installed ---> Package libpcap.x86_64 14:1.0.0-6.20091201git117cb5.el6 will be installed ---> Package nc.x86_64 0:1.84-22.el6 will be installed ---> Package netcf-libs.x86_64 0:0.1.9-2.el6 will be installed --> Processing Dependency: libaugeas.so.0(AUGEAS_0.8.0)(64bit) for package: netcf-libs-0.1.9-2.el6.x86_64 --> Processing Dependency: libaugeas.so.0(AUGEAS_0.1.0)(64bit) for package: netcf-libs-0.1.9-2.el6.x86_64 --> Processing Dependency: libaugeas.so.0()(64bit) for package: netcf-libs-0.1.9-2.el6.x86_64 ---> Package numactl.x86_64 0:2.0.7-3.el6 will be installed ---> Package pm-utils.x86_64 0:1.2.5-9.el6 will be installed --> Processing Dependency: hdparm for package: pm-utils-1.2.5-9.el6.x86_64 --> Processing Dependency: hal for package: pm-utils-1.2.5-9.el6.x86_64 ---> Package sg3_utils-libs.x86_64 0:1.28-4.el6 will be installed ---> Package yajl.x86_64 0:1.0.7-3.el6 will be installed --> Running transaction check ---> Package augeas-libs.x86_64 0:0.9.0-4.el6 will be installed ---> Package cvs.x86_64 0:1.11.23-11.el6_2.1 will be installed ---> Package hal.x86_64 0:0.5.14-11.el6 will be installed --> Processing Dependency: hal-libs = 0.5.14-11.el6 for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: dmidecode >= 2.7 for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: cryptsetup-luks >= 1.0.1-2 for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: ConsoleKit >= 0.2.0 for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: hal-info for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: libhal.so.1()(64bit) for package: hal-0.5.14-11.el6.x86_64 --> Processing Dependency: libhal-storage.so.1()(64bit) for package: hal-0.5.14-11.el6.x86_64 ---> Package hdparm.x86_64 0:9.16-3.4.el6 will be installed ---> Package libgomp.x86_64 0:4.4.6-4.el6 will be installed ---> Package libtasn1.x86_64 0:2.3-3.el6_2.1 will be installed --> Running transaction check ---> Package ConsoleKit.x86_64 0:0.4.1-3.el6 will be installed --> Processing Dependency: libpolkit-gobject-1.so.0()(64bit) for package: ConsoleKit-0.4.1-3.el6.x86_64 --> Processing Dependency: libck-connector.so.0()(64bit) for package: ConsoleKit-0.4.1-3.el6.x86_64 ---> Package cryptsetup-luks.x86_64 0:1.2.0-7.el6 will be installed --> Processing Dependency: cryptsetup-luks-libs = 1.2.0-7.el6 for package: cryptsetup-luks-1.2.0-7.el6.x86_64 --> Processing Dependency: libcryptsetup.so.1(CRYPTSETUP_1.0)(64bit) for package: cryptsetup-luks-1.2.0-7.el6.x86_64 --> Processing Dependency: libcryptsetup.so.1()(64bit) for package: cryptsetup-luks-1.2.0-7.el6.x86_64 ---> Package dmidecode.x86_64 1:2.11-2.el6 will be installed ---> Package hal-info.noarch 0:20090716-3.1.el6 will be installed ---> Package hal-libs.x86_64 0:0.5.14-11.el6 will be installed --> Running transaction check ---> Package ConsoleKit-libs.x86_64 0:0.4.1-3.el6 will be installed ---> Package cryptsetup-luks-libs.x86_64 0:1.2.0-7.el6 will be installed ---> Package polkit.x86_64 0:0.96-2.el6_0.1 will be installed --> Processing Dependency: libeggdbus-1.so.0()(64bit) for package: polkit-0.96-2.el6_0.1.x86_64 --> Running transaction check ---> Package eggdbus.x86_64 0:0.6-3.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================== Package Arch Version Repository Size ========================================================================================== Installing: ccs x86_64 0.16.2-55.el6 base 47 k gfs2-utils x86_64 3.0.12.1-32.el6_3.1 updates 281 k lvm2-cluster x86_64 2.02.95-10.el6 base 345 k Installing for dependencies: ConsoleKit x86_64 0.4.1-3.el6 base 82 k ConsoleKit-libs x86_64 0.4.1-3.el6 base 17 k augeas-libs x86_64 0.9.0-4.el6 base 317 k avahi-libs x86_64 0.6.25-11.el6 base 54 k clusterlib x86_64 3.0.12.1-32.el6_3.1 updates 96 k cman x86_64 3.0.12.1-32.el6_3.1 updates 435 k corosync x86_64 1.4.1-7.el6_3.1 updates 189 k corosynclib x86_64 1.4.1-7.el6_3.1 updates 173 k cryptsetup-luks x86_64 1.2.0-7.el6 base 95 k cryptsetup-luks-libs x86_64 1.2.0-7.el6 base 51 k cvs x86_64 1.11.23-11.el6_2.1 base 712 k cyrus-sasl-md5 x86_64 2.1.23-13.el6 base 47 k dbus x86_64 1:1.2.24-5.el6_1 base 207 k dmidecode x86_64 1:2.11-2.el6 base 71 k eggdbus x86_64 0.6-3.el6 base 91 k fence-agents x86_64 3.1.5-17.el6 base 150 k fence-virt x86_64 0.2.3-9.el6 base 36 k gettext x86_64 0.17-16.el6 base 1.8 M gnutls x86_64 2.8.5-4.el6_2.2 base 342 k gnutls-utils x86_64 2.8.5-4.el6_2.2 base 99 k hal x86_64 0.5.14-11.el6 base 375 k hal-info noarch 20090716-3.1.el6 base 56 k hal-libs x86_64 0.5.14-11.el6 base 69 k hdparm x86_64 9.16-3.4.el6 base 72 k ipmitool x86_64 1.8.11-13.el6.1 updates 328 k libgomp x86_64 4.4.6-4.el6 base 117 k libibverbs x86_64 1.1.6-4.el6 base 45 k libnl x86_64 1.1-14.el6 base 121 k libpcap x86_64 14:1.0.0-6.20091201git117cb5.el6 base 126 k librdmacm x86_64 1.0.15-2.el6 base 29 k libtasn1 x86_64 2.3-3.el6_2.1 base 238 k libvirt-client x86_64 0.9.10-21.el6_3.4 updates 3.2 M libxslt x86_64 1.1.26-2.el6 base 450 k lm_sensors-libs x86_64 3.1.1-10.el6 base 37 k modcluster x86_64 0.16.2-18.el6 base 191 k nc x86_64 1.84-22.el6 base 57 k net-snmp-libs x86_64 1:5.5-41.el6_3.1 updates 1.5 M net-snmp-utils x86_64 1:5.5-41.el6_3.1 updates 170 k netcf-libs x86_64 0.1.9-2.el6 base 51 k numactl x86_64 2.0.7-3.el6 base 59 k oddjob x86_64 0.30-5.el6 base 60 k openais x86_64 1.1.1-7.el6 base 192 k openaislib x86_64 1.1.1-7.el6 base 82 k parted x86_64 2.1-18.el6 base 605 k perl-Net-Telnet noarch 3.03-11.el6 base 56 k pexpect noarch 2.3-6.el6 base 147 k pm-utils x86_64 1.2.5-9.el6 base 108 k polkit x86_64 0.96-2.el6_0.1 base 158 k pyOpenSSL x86_64 0.10-2.el6 base 212 k python-suds noarch 0.4.1-3.el6 base 218 k ricci x86_64 0.16.2-55.el6 base 624 k sg3_utils x86_64 1.28-4.el6 base 471 k sg3_utils-libs x86_64 1.28-4.el6 base 51 k telnet x86_64 1:0.17-47.el6 base 58 k yajl x86_64 1.0.7-3.el6 base 27 k Transaction Summary ========================================================================================== Install 58 Package(s) Total download size: 16 M Installed size: 51 M Is this ok [y/N]: y Downloading Packages: (1/58): ConsoleKit-0.4.1-3.el6.x86_64.rpm | 82 kB 00:00 (2/58): ConsoleKit-libs-0.4.1-3.el6.x86_64.rpm | 17 kB 00:00 (3/58): augeas-libs-0.9.0-4.el6.x86_64.rpm | 317 kB 00:00 (4/58): avahi-libs-0.6.25-11.el6.x86_64.rpm | 54 kB 00:00 (5/58): ccs-0.16.2-55.el6.x86_64.rpm | 47 kB 00:00 (6/58): clusterlib-3.0.12.1-32.el6_3.1.x86_64.rpm | 96 kB 00:00 (7/58): cman-3.0.12.1-32.el6_3.1.x86_64.rpm | 435 kB 00:00 (8/58): corosync-1.4.1-7.el6_3.1.x86_64.rpm | 189 kB 00:00 (9/58): corosynclib-1.4.1-7.el6_3.1.x86_64.rpm | 173 kB 00:00 (10/58): cryptsetup-luks-1.2.0-7.el6.x86_64.rpm | 95 kB 00:00 (11/58): cryptsetup-luks-libs-1.2.0-7.el6.x86_64.rpm | 51 kB 00:00 (12/58): cvs-1.11.23-11.el6_2.1.x86_64.rpm | 712 kB 00:00 (13/58): cyrus-sasl-md5-2.1.23-13.el6.x86_64.rpm | 47 kB 00:00 (14/58): dbus-1.2.24-5.el6_1.x86_64.rpm | 207 kB 00:00 (15/58): dmidecode-2.11-2.el6.x86_64.rpm | 71 kB 00:00 (16/58): eggdbus-0.6-3.el6.x86_64.rpm | 91 kB 00:00 (17/58): fence-agents-3.1.5-17.el6.x86_64.rpm | 150 kB 00:00 (18/58): fence-virt-0.2.3-9.el6.x86_64.rpm | 36 kB 00:00 (19/58): gettext-0.17-16.el6.x86_64.rpm | 1.8 MB 00:00 (20/58): gfs2-utils-3.0.12.1-32.el6_3.1.x86_64.rpm | 281 kB 00:00 (21/58): gnutls-2.8.5-4.el6_2.2.x86_64.rpm | 342 kB 00:00 (22/58): gnutls-utils-2.8.5-4.el6_2.2.x86_64.rpm | 99 kB 00:00 (23/58): hal-0.5.14-11.el6.x86_64.rpm | 375 kB 00:00 (24/58): hal-info-20090716-3.1.el6.noarch.rpm | 56 kB 00:00 (25/58): hal-libs-0.5.14-11.el6.x86_64.rpm | 69 kB 00:00 (26/58): hdparm-9.16-3.4.el6.x86_64.rpm | 72 kB 00:00 (27/58): ipmitool-1.8.11-13.el6.1.x86_64.rpm | 328 kB 00:00 (28/58): libgomp-4.4.6-4.el6.x86_64.rpm | 117 kB 00:00 (29/58): libibverbs-1.1.6-4.el6.x86_64.rpm | 45 kB 00:00 (30/58): libnl-1.1-14.el6.x86_64.rpm | 121 kB 00:00 (31/58): libpcap-1.0.0-6.20091201git117cb5.el6.x86_64.rpm | 126 kB 00:00 (32/58): librdmacm-1.0.15-2.el6.x86_64.rpm | 29 kB 00:00 (33/58): libtasn1-2.3-3.el6_2.1.x86_64.rpm | 238 kB 00:00 (34/58): libvirt-client-0.9.10-21.el6_3.4.x86_64.rpm | 3.2 MB 00:00 (35/58): libxslt-1.1.26-2.el6.x86_64.rpm | 450 kB 00:00 (36/58): lm_sensors-libs-3.1.1-10.el6.x86_64.rpm | 37 kB 00:00 (37/58): lvm2-cluster-2.02.95-10.el6.x86_64.rpm | 345 kB 00:00 (38/58): modcluster-0.16.2-18.el6.x86_64.rpm | 191 kB 00:00 (39/58): nc-1.84-22.el6.x86_64.rpm | 57 kB 00:00 (40/58): net-snmp-libs-5.5-41.el6_3.1.x86_64.rpm | 1.5 MB 00:00 (41/58): net-snmp-utils-5.5-41.el6_3.1.x86_64.rpm | 170 kB 00:00 (42/58): netcf-libs-0.1.9-2.el6.x86_64.rpm | 51 kB 00:00 (43/58): numactl-2.0.7-3.el6.x86_64.rpm | 59 kB 00:00 (44/58): oddjob-0.30-5.el6.x86_64.rpm | 60 kB 00:00 (45/58): openais-1.1.1-7.el6.x86_64.rpm | 192 kB 00:00 (46/58): openaislib-1.1.1-7.el6.x86_64.rpm | 82 kB 00:00 (47/58): parted-2.1-18.el6.x86_64.rpm | 605 kB 00:00 (48/58): perl-Net-Telnet-3.03-11.el6.noarch.rpm | 56 kB 00:00 (49/58): pexpect-2.3-6.el6.noarch.rpm | 147 kB 00:00 (50/58): pm-utils-1.2.5-9.el6.x86_64.rpm | 108 kB 00:00 (51/58): polkit-0.96-2.el6_0.1.x86_64.rpm | 158 kB 00:00 (52/58): pyOpenSSL-0.10-2.el6.x86_64.rpm | 212 kB 00:00 (53/58): python-suds-0.4.1-3.el6.noarch.rpm | 218 kB 00:00 (54/58): ricci-0.16.2-55.el6.x86_64.rpm | 624 kB 00:00 (55/58): sg3_utils-1.28-4.el6.x86_64.rpm | 471 kB 00:00 (56/58): sg3_utils-libs-1.28-4.el6.x86_64.rpm | 51 kB 00:00 (57/58): telnet-0.17-47.el6.x86_64.rpm | 58 kB 00:00 (58/58): yajl-1.0.7-3.el6.x86_64.rpm | 27 kB 00:00 ------------------------------------------------------------------------------------------ Total 7.0 MB/s | 16 MB 00:02 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : 1:dbus-1.2.24-5.el6_1.x86_64 1/58 Installing : libibverbs-1.1.6-4.el6.x86_64 2/58 Installing : libtasn1-2.3-3.el6_2.1.x86_64 3/58 Installing : gnutls-2.8.5-4.el6_2.2.x86_64 4/58 Installing : libnl-1.1-14.el6.x86_64 5/58 Installing : libxslt-1.1.26-2.el6.x86_64 6/58 Installing : oddjob-0.30-5.el6.x86_64 7/58 dbus-daemon: no process killed Installing : gnutls-utils-2.8.5-4.el6_2.2.x86_64 8/58 Installing : librdmacm-1.0.15-2.el6.x86_64 9/58 Installing : hal-libs-0.5.14-11.el6.x86_64 10/58 Installing : ConsoleKit-libs-0.4.1-3.el6.x86_64 11/58 Installing : cvs-1.11.23-11.el6_2.1.x86_64 12/58 Installing : 1:dmidecode-2.11-2.el6.x86_64 13/58 Installing : yajl-1.0.7-3.el6.x86_64 14/58 Installing : pyOpenSSL-0.10-2.el6.x86_64 15/58 Installing : pexpect-2.3-6.el6.noarch 16/58 Installing : 1:telnet-0.17-47.el6.x86_64 17/58 Installing : nc-1.84-22.el6.x86_64 18/58 Installing : cryptsetup-luks-libs-1.2.0-7.el6.x86_64 19/58 Installing : cryptsetup-luks-1.2.0-7.el6.x86_64 20/58 Installing : perl-Net-Telnet-3.03-11.el6.noarch 21/58 Installing : ipmitool-1.8.11-13.el6.1.x86_64 22/58 Installing : parted-2.1-18.el6.x86_64 23/58 Installing : hdparm-9.16-3.4.el6.x86_64 24/58 Installing : numactl-2.0.7-3.el6.x86_64 25/58 Installing : eggdbus-0.6-3.el6.x86_64 26/58 Installing : polkit-0.96-2.el6_0.1.x86_64 27/58 Installing : ConsoleKit-0.4.1-3.el6.x86_64 28/58 Installing : hal-info-20090716-3.1.el6.noarch 29/58 Installing : pm-utils-1.2.5-9.el6.x86_64 30/58 Installing : hal-0.5.14-11.el6.x86_64 31/58 Installing : 14:libpcap-1.0.0-6.20091201git117cb5.el6.x86_64 32/58 Installing : python-suds-0.4.1-3.el6.noarch 33/58 Installing : sg3_utils-libs-1.28-4.el6.x86_64 34/58 Installing : sg3_utils-1.28-4.el6.x86_64 35/58 Installing : avahi-libs-0.6.25-11.el6.x86_64 36/58 Installing : cyrus-sasl-md5-2.1.23-13.el6.x86_64 37/58 Installing : augeas-libs-0.9.0-4.el6.x86_64 38/58 Installing : netcf-libs-0.1.9-2.el6.x86_64 39/58 Installing : fence-virt-0.2.3-9.el6.x86_64 40/58 Installing : libgomp-4.4.6-4.el6.x86_64 41/58 Installing : gettext-0.17-16.el6.x86_64 42/58 Installing : libvirt-client-0.9.10-21.el6_3.4.x86_64 43/58 Installing : lm_sensors-libs-3.1.1-10.el6.x86_64 44/58 Installing : 1:net-snmp-libs-5.5-41.el6_3.1.x86_64 45/58 Installing : corosynclib-1.4.1-7.el6_3.1.x86_64 46/58 Installing : corosync-1.4.1-7.el6_3.1.x86_64 47/58 Installing : clusterlib-3.0.12.1-32.el6_3.1.x86_64 48/58 Installing : modcluster-0.16.2-18.el6.x86_64 49/58 Installing : openaislib-1.1.1-7.el6.x86_64 50/58 Installing : openais-1.1.1-7.el6.x86_64 51/58 Installing : ricci-0.16.2-55.el6.x86_64 52/58 Installing : 1:net-snmp-utils-5.5-41.el6_3.1.x86_64 53/58 Installing : fence-agents-3.1.5-17.el6.x86_64 54/58 Installing : cman-3.0.12.1-32.el6_3.1.x86_64 55/58 Installing : lvm2-cluster-2.02.95-10.el6.x86_64 56/58 Installing : gfs2-utils-3.0.12.1-32.el6_3.1.x86_64 57/58 Installing : ccs-0.16.2-55.el6.x86_64 58/58 Verifying : modcluster-0.16.2-18.el6.x86_64 1/58 Verifying : oddjob-0.30-5.el6.x86_64 2/58 Verifying : corosync-1.4.1-7.el6_3.1.x86_64 3/58 Verifying : lm_sensors-libs-3.1.1-10.el6.x86_64 4/58 Verifying : libxslt-1.1.26-2.el6.x86_64 5/58 Verifying : clusterlib-3.0.12.1-32.el6_3.1.x86_64 6/58 Verifying : netcf-libs-0.1.9-2.el6.x86_64 7/58 Verifying : libgomp-4.4.6-4.el6.x86_64 8/58 Verifying : libvirt-client-0.9.10-21.el6_3.4.x86_64 9/58 Verifying : lvm2-cluster-2.02.95-10.el6.x86_64 10/58 Verifying : sg3_utils-1.28-4.el6.x86_64 11/58 Verifying : fence-virt-0.2.3-9.el6.x86_64 12/58 Verifying : augeas-libs-0.9.0-4.el6.x86_64 13/58 Verifying : cyrus-sasl-md5-2.1.23-13.el6.x86_64 14/58 Verifying : libnl-1.1-14.el6.x86_64 15/58 Verifying : avahi-libs-0.6.25-11.el6.x86_64 16/58 Verifying : sg3_utils-libs-1.28-4.el6.x86_64 17/58 Verifying : ccs-0.16.2-55.el6.x86_64 18/58 Verifying : libtasn1-2.3-3.el6_2.1.x86_64 19/58 Verifying : ConsoleKit-0.4.1-3.el6.x86_64 20/58 Verifying : corosynclib-1.4.1-7.el6_3.1.x86_64 21/58 Verifying : python-suds-0.4.1-3.el6.noarch 22/58 Verifying : hal-libs-0.5.14-11.el6.x86_64 23/58 Verifying : 14:libpcap-1.0.0-6.20091201git117cb5.el6.x86_64 24/58 Verifying : eggdbus-0.6-3.el6.x86_64 25/58 Verifying : hal-info-20090716-3.1.el6.noarch 26/58 Verifying : openais-1.1.1-7.el6.x86_64 27/58 Verifying : numactl-2.0.7-3.el6.x86_64 28/58 Verifying : hdparm-9.16-3.4.el6.x86_64 29/58 Verifying : parted-2.1-18.el6.x86_64 30/58 Verifying : openaislib-1.1.1-7.el6.x86_64 31/58 Verifying : ConsoleKit-libs-0.4.1-3.el6.x86_64 32/58 Verifying : hal-0.5.14-11.el6.x86_64 33/58 Verifying : ipmitool-1.8.11-13.el6.1.x86_64 34/58 Verifying : 1:net-snmp-libs-5.5-41.el6_3.1.x86_64 35/58 Verifying : perl-Net-Telnet-3.03-11.el6.noarch 36/58 Verifying : cryptsetup-luks-libs-1.2.0-7.el6.x86_64 37/58 Verifying : nc-1.84-22.el6.x86_64 38/58 Verifying : gfs2-utils-3.0.12.1-32.el6_3.1.x86_64 39/58 Verifying : cryptsetup-luks-1.2.0-7.el6.x86_64 40/58 Verifying : 1:net-snmp-utils-5.5-41.el6_3.1.x86_64 41/58 Verifying : 1:telnet-0.17-47.el6.x86_64 42/58 Verifying : libibverbs-1.1.6-4.el6.x86_64 43/58 Verifying : pexpect-2.3-6.el6.noarch 44/58 Verifying : gnutls-utils-2.8.5-4.el6_2.2.x86_64 45/58 Verifying : pyOpenSSL-0.10-2.el6.x86_64 46/58 Verifying : polkit-0.96-2.el6_0.1.x86_64 47/58 Verifying : yajl-1.0.7-3.el6.x86_64 48/58 Verifying : fence-agents-3.1.5-17.el6.x86_64 49/58 Verifying : gnutls-2.8.5-4.el6_2.2.x86_64 50/58 Verifying : 1:dbus-1.2.24-5.el6_1.x86_64 51/58 Verifying : gettext-0.17-16.el6.x86_64 52/58 Verifying : librdmacm-1.0.15-2.el6.x86_64 53/58 Verifying : 1:dmidecode-2.11-2.el6.x86_64 54/58 Verifying : ricci-0.16.2-55.el6.x86_64 55/58 Verifying : cvs-1.11.23-11.el6_2.1.x86_64 56/58 Verifying : pm-utils-1.2.5-9.el6.x86_64 57/58 Verifying : cman-3.0.12.1-32.el6_3.1.x86_64 58/58 Installed: ccs.x86_64 0:0.16.2-55.el6 gfs2-utils.x86_64 0:3.0.12.1-32.el6_3.1 lvm2-cluster.x86_64 0:2.02.95-10.el6 Dependency Installed: ConsoleKit.x86_64 0:0.4.1-3.el6 ConsoleKit-libs.x86_64 0:0.4.1-3.el6 augeas-libs.x86_64 0:0.9.0-4.el6 avahi-libs.x86_64 0:0.6.25-11.el6 clusterlib.x86_64 0:3.0.12.1-32.el6_3.1 cman.x86_64 0:3.0.12.1-32.el6_3.1 corosync.x86_64 0:1.4.1-7.el6_3.1 corosynclib.x86_64 0:1.4.1-7.el6_3.1 cryptsetup-luks.x86_64 0:1.2.0-7.el6 cryptsetup-luks-libs.x86_64 0:1.2.0-7.el6 cvs.x86_64 0:1.11.23-11.el6_2.1 cyrus-sasl-md5.x86_64 0:2.1.23-13.el6 dbus.x86_64 1:1.2.24-5.el6_1 dmidecode.x86_64 1:2.11-2.el6 eggdbus.x86_64 0:0.6-3.el6 fence-agents.x86_64 0:3.1.5-17.el6 fence-virt.x86_64 0:0.2.3-9.el6 gettext.x86_64 0:0.17-16.el6 gnutls.x86_64 0:2.8.5-4.el6_2.2 gnutls-utils.x86_64 0:2.8.5-4.el6_2.2 hal.x86_64 0:0.5.14-11.el6 hal-info.noarch 0:20090716-3.1.el6 hal-libs.x86_64 0:0.5.14-11.el6 hdparm.x86_64 0:9.16-3.4.el6 ipmitool.x86_64 0:1.8.11-13.el6.1 libgomp.x86_64 0:4.4.6-4.el6 libibverbs.x86_64 0:1.1.6-4.el6 libnl.x86_64 0:1.1-14.el6 libpcap.x86_64 14:1.0.0-6.20091201git117cb5.el6 librdmacm.x86_64 0:1.0.15-2.el6 libtasn1.x86_64 0:2.3-3.el6_2.1 libvirt-client.x86_64 0:0.9.10-21.el6_3.4 libxslt.x86_64 0:1.1.26-2.el6 lm_sensors-libs.x86_64 0:3.1.1-10.el6 modcluster.x86_64 0:0.16.2-18.el6 nc.x86_64 0:1.84-22.el6 net-snmp-libs.x86_64 1:5.5-41.el6_3.1 net-snmp-utils.x86_64 1:5.5-41.el6_3.1 netcf-libs.x86_64 0:0.1.9-2.el6 numactl.x86_64 0:2.0.7-3.el6 oddjob.x86_64 0:0.30-5.el6 openais.x86_64 0:1.1.1-7.el6 openaislib.x86_64 0:1.1.1-7.el6 parted.x86_64 0:2.1-18.el6 perl-Net-Telnet.noarch 0:3.03-11.el6 pexpect.noarch 0:2.3-6.el6 pm-utils.x86_64 0:1.2.5-9.el6 polkit.x86_64 0:0.96-2.el6_0.1 pyOpenSSL.x86_64 0:0.10-2.el6 python-suds.noarch 0:0.4.1-3.el6 ricci.x86_64 0:0.16.2-55.el6 sg3_utils.x86_64 0:1.28-4.el6 sg3_utils-libs.x86_64 0:1.28-4.el6 telnet.x86_64 1:0.17-47.el6 yajl.x86_64 0:1.0.7-3.el6 Complete!
Damit das GFS2-Dateisystem auch nach einem Neustart (restart) des Servers/Knoten zur Verfügung steht, sollten nachfolgende Schritte durchgeführt werden.
Nachfolgender Befehl, fügt das Start-Skript
/etc/init.d/cman
der automatischen Ausführung (Start) beim Start oder Neustart des Servers/Knotens hinzu:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# chkconfig cman on
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# chkconfig cman on
Ein Überprüfung, ob dies erfolgreich war, kann mit nachfolgendem Befehl durchgeführt werden:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# chkconfig --list | grep cman cman 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# chkconfig --list | grep cman cman 0:off 1:off 2:on 3:on 4:on 5:on 6:off
/ect/cluster/cluster.conf
Um die weitere Konfiguration eines Clusters durchführen zu können, ist nachfolgende minimale Konfigurationsdatei für den Dienst/Daemon
cman
erforderlich:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
<cluster name="mycluster" config_version="3"> <cman two_node="1" expected_votes="1"/> <clusternodes> <clusternode name="ha-node-01.intra.tachtler.net" nodeid="1"> </clusternode> <clusternode name="ha-node-02.intra.tachtler.net" nodeid="2"> </clusternode> </clusternodes> </cluster>
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
<cluster name="mycluster" config_version="3"> <cman two_node="1" expected_votes="1"/> <clusternodes> <clusternode name="ha-node-01.intra.tachtler.net" nodeid="1"> </clusternode> <clusternode name="ha-node-02.intra.tachtler.net" nodeid="2"> </clusternode> </clusternodes> </cluster>
Starten der Komponenten
Nachfolgender Befehl startet den Dienst/Daemon cman
:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# service cman start Starting cluster: Checking if cluster has been disabled at boot... [ OK ] Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Starting gfs_controld... [ OK ] Unfencing self... [ OK ] Joining fence domain... [ OK ]
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# service cman start Starting cluster: Checking if cluster has been disabled at boot... [ OK ] Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Starting gfs_controld... [ OK ] Unfencing self... [ OK ] Joining fence domain... [ OK ]
Konfiguration
Zur Konfiguration sind nachfolgende Schritte notwendig:
- Partitionierung innerhalb eines LVM
- Formatierung der Partition
- Mount (einhängen) des gerade erstellten GFS2-Dateisystems
Partitionierung
Um die nachfolgend gezeigte Partitionierung durchführen zu können, ist es erforderlich, dass freier, verfügbarer Speicher z.B. innerhalb einer bestehenden VolumeGroup, besteht.
Nachfolgender Befehl zeigt Informationen über die Speicherauslastung einer z.B. hier bestehenden VolumeGroup:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# lvm vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 4.51 GiB PE Size 4.00 MiB Total PE 1154 Alloc PE / Size 1000 / 3.91 GiB Free PE / Size 154 / 616.00 MiB VG UUID q16Qb7-c2KG-1Jz8-cKya-JiyS-pYZM-uLEXTG
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
--- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 4.51 GiB PE Size 4.00 MiB Total PE 1154 Alloc PE / Size 1000 / 3.91 GiB Free PE / Size 154 / 616.00 MiB VG UUID zGHmIM-O8OV-1uui-sM3N-sKOL-t55t-EQMX7y
Entscheidend, in oben gezeigten Abfragen, ist nachfolgende Zeile:
... Free PE / Size 154 / 616.00 MiB ...
*Hier stehen noch 616 MegaByte freier Speicherplatz zur Verfügung
Der noch freie Speicher, kann nun mit nachfolgendem Befehl, durch ein logisches Volume belegt werden:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# lvcreate -L +616M -n LogVolGFS VolGroup Logical volume "LogVolGFS" created
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# lvcreate -L +616M -n LogVolGFS VolGroup Logical volume "LogVolGFS" created
Zur Überprüfung, ob die Partitionierung erfolgreich war, kann nachfolgender Befehl genutzt werden (nur relevanter Ausschnitt):
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# lvm lvdisplay ... --- Logical volume --- LV Path /dev/VolGroup/LogVolGFS LV Name LogVolGFS VG Name VolGroup LV UUID V8yfU4-Km4L-rESD-Iyl3-bOH4-JW47-cqD5Yf LV Write Access read/write LV Creation host, time localhost.localdomain, 2012-09-12 11:00:23 +0200 LV Status available # open 0 LV Size 616.00 MiB Current LE 154 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# lvm lvdisplay --- Logical volume --- LV Path /dev/VolGroup/LogVolGFS LV Name LogVolGFS VG Name VolGroup LV UUID MPum2x-3YHz-wBgl-DauR-2Pkc-1TKs-kMqAdP LV Write Access read/write LV Creation host, time localhost.localdomain, 2012-09-12 11:08:01 +0200 LV Status available # open 0 LV Size 616.00 MiB Current LE 154 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
Formatierung
Nachdem die entsprechende Partition innerhalb eines LVM erstellt wurde, kann die Formatierung mit dem GFS2-Dateisystem, mit nachfolgendem Befehl durchgeführt werden:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# mkfs.gfs2 -p lock_dlm -t MyStorage:storage -j 4 /dev/mapper/VolGroup-LogVolGFS This will destroy any data on /dev/mapper/VolGroup-LogVolGFS. It appears to contain: symbolic link to `../dm-2' Are you sure you want to proceed? [y/n] y Device: /dev/mapper/VolGroup-LogVolGFS Blocksize: 4096 Device Size 0.60 GB (157696 blocks) Filesystem Size: 0.60 GB (157693 blocks) Journals: 4 Resource Groups: 3 Locking Protocol: "lock_dlm" Lock Table: "MyStorage:storage" UUID: aef2f106-a892-95de-2c42-827f8ed4e8f4
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# mkfs.gfs2 -p lock_dlm -t MyStorage:storage -j 4 /dev/mapper/VolGroup-LogVolGFS This will destroy any data on /dev/mapper/VolGroup-LogVolGFS. It appears to contain: symbolic link to `../dm-2' Are you sure you want to proceed? [y/n] y Device: /dev/mapper/VolGroup-LogVolGFS Blocksize: 4096 Device Size 0.60 GB (157696 blocks) Filesystem Size: 0.60 GB (157693 blocks) Journals: 4 Resource Groups: 3 Locking Protocol: "lock_dlm" Lock Table: "MyStorage:storage" UUID: 87e8e74e-c1f9-2ebf-d701-2f3b45d52ac9
HINWEIS - Je nach Festplattengeschwindigkeit und Partitionsgröße kann dies einige Minuten in Anspruch nehmen.
Mount
Damit auch nach einem Start bzw. Neustart des Servers das Verzeichnis automatisch gemounted (eingehängt) wird, sollte nachfolgende Änderung an der Konfigurationsdatei
/etc/fstab
durchgeführt werden (nur relevanter Ausschnitt):
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
... /dev/VolGroup/LogVolGFS /mnt gfs2 defaults 0 0 ...
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
... /dev/VolGroup/LogVolGFS /mnt gfs2 defaults 0 0 ...
Dies bewirkt das mounten (einhängen) des durch GFS2 erstellte Volume in das Dateisystem, via gfs2:
Um den soeben durchgeführten Eintrag in der Konfigurationsdatei /etc/fstab
auch zu aktivieren und den mount (einhängen) sofort nutzbar zu machen, kann nachfolgender Befehl genutzt werden, welcher das mounten (einhängen) aller in der Konfigurationsdatei /etc/fstab
definierten Einträge durchführt:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# mount -a
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# mount -a
Ob das mounten (einhängen) auch tatsächlich funktioniert hat, kann mit nachfolgendem Befehl dann abschließend überprüft werden:
Server/Knoten 1 - IP-Adresse: 192.168.1.201:
# df -h | grep /mnt -1 /dev/mapper/VolGroup-LogVolGFS 616M 518M 99M 84% /mnt
Server/Knoten 2 - IP-Adresse: 192.168.1.202:
# df -h | grep /mnt -1 /dev/mapper/VolGroup-LogVolGFS 616M 518M 99M 84% /mnt
WICHTIG - Falls es gewünscht sein sollte, die BEIDEN Server/Konten und deren GFS2-Dateisystem synchron zu halten, kann nachfolgender interner Link aus diesem DokuWiki weiterhelfen:
WICHTIG - Auch eine darunterligendes DRBD kann eine Lösung zur Synchronisation sein