# Installation GFS-6.0 auf CentOS-3 x86_64

# Bauen und Installation der RPM's (aktuelle Versionen zu finden unter
# http://ftp.redhat.com/pub/redhat/linux/enterprise/3/en/RHGFS/i386/ 
SRPMS/
# )
rpmbuild --rebuild GFS-6.0.2-25.src.rpm --target=x86_64
rpm -Uvh perl-Net-Telnet-3.03-2.noarch.rpm GFS-6.0.2-25.x86_64.rpm  
GFS-devel-6.0.2-25.x86_64.rpm GFS-modules-smp-6.0.2-25.x86_64.rpm

# Laden der Module
depmod -a
modprobe gfs
modprobe lock_gulm
modprobe pool
modprobe lock_harness
modprobe lock_nolock
modprobe gnbd
modprobe gnbd_serv

# Erstellen der Pool-Konfigurations-Dateien pool0.cfg (CCA Device)  
und pool1.cfg
# pool0.cfg:
poolname pool0
minor 0 subpools 1
subpool 0 128 2 gfs_data
pooldevice 0 0 /dev/sdc1
pooldevice 0 1 /dev/sdg1

# pool1.cfg:
poolname pool1
minor 0 subpools 1
subpool 0 128 2 gfs_data
pooldevice 0 0 /dev/sdc2
pooldevice 0 1 /dev/sdg2

#Pool-Devices erzeugen (auf einem Rechner)
pool_tool -c pool0.cfg
pool_tool -c pool1.cfg

# pool aktivieren (auf allen Rechnern)
pool_assemble -a

# Erstellen der Clusterkonfigurationsdateien in cluster.css und  
nodes.css
# /root/gfs (Auschnitt ohne Fencing)
# cluster.css
cluster {
          name = "itsd-gfs"
          lock_gulm {
              servers = ["s01.foo.de", "s02.foo.de", "s03.foo.de",  
"c01.foo.de", "c02.foo.de"]
              heartbeat_rate = 5
              allowed_misses = 4
          }
}

# nodes.css (Auschnitt ohne fencing)
nodes {
     s01.foo.de {
       ip_interfaces {
       eth0 = "192.168.0.1"
       }
    }
     s02.foo.de {
...

}

# CCA-Device erzeugen (auf einem Rechner)
ccs_tool create /root/gfs /dev/pool/pool0

# Daemonen auf Servern starten
/etc/init.d/ccsd start
/etc/init.d/lock_gulmd start

# Filesystem erzeugen
gfs_mkfs -p lock_gulm -t itsd-gfs:gfs0 -j 30 /dev/pool/pool1

# Filsystem mounten
mount -t gfs /dev/pool/pool1 /gfs0/ -o acl

# Export den GNBD's (auf allen Servern)
# auf s01 wie folgt, auf s02/s03 analog mit geänderten Namen s02_sdc1
# etc, die CCA Devices müssen dabei read-only exportiert werden "-o")
gnbd_export -o -d /dev/sdc1 -e s01_sdc1
gnbd_export -d /dev/sdc2 -e s01_sdc2
gnbd_export -o -d /dev/sdg1 -e s01_sdg1
gnbd_export -d /dev/sdg2 -e s01_sdg2

# Import der GNBD's auf c01 und c02
gnbd_import -i s01
gnbd_import -i s02
gnbd_import -i s03

# CCA-Pool auf GNBD-Clients aktivieren
pool_assemble  -m 256 pool0

# Daemonen auf GNBD-Clients starten
service ccsd start
service lock_gulmd start

# pool1 mit Multipathing auf GNBD-Clients aktivieren
pool_assemble  -m 256 pool1

# Filesystem auf GNBD-Clients mounten
mount -t gfs /dev/pool/pool1 /gfs0/ -o acl

