Pcsd-nfs: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Vorraussetzungen=
 
=Vorraussetzungen=
 
*Eingerichteter HA-Cluster
 
*Eingerichteter HA-Cluster
 +
*Partitionierte Festplatte
  
 
=DRBD erstellen=
 
=DRBD erstellen=
 
*apt-get install drbd8-utils
 
*apt-get install drbd8-utils
 
==Die Partionen mit LVM erstellen==
 
*pvcreate /dev/sdb
 
*vgcreate ubuntu-francis /dev/sdb
 
*lvcreate --name drbd-demo --size 1G ubuntu-francis
 
(Für andere Seite wiederholen)
 
  
 
==DRBD konfigurieren==
 
==DRBD konfigurieren==
 
'''Die folgenden Anweißungen müssen auf beiden Nodes ausgeführt werden'''
 
'''Die folgenden Anweißungen müssen auf beiden Nodes ausgeführt werden'''
*vi /etc/drbd.d/wwwdata.res  
+
*vi /etc/drbd.d/nfs.res  
 
<source lang=bash>
 
<source lang=bash>
resource wwwdata {
+
resource nfs {
 
  protocol C;
 
  protocol C;
 
  meta-disk internal;
 
  meta-disk internal;
Zeile 25: Zeile 20:
 
   allow-two-primaries;
 
   allow-two-primaries;
 
  }
 
  }
  on francis {
+
  on mabel.xinux.lan {
   disk  /dev/ubuntu-francis/drbd-demo;
+
   disk  /dev/sda1;
   address  192.168.50.51:7789;
+
   address  198.19.250.1:7701;
 
  }
 
  }
  on claire {
+
  on ryzen.xinux.lan {
   disk  /dev/ubuntu-claire/drbd-demo;
+
   disk  /dev/sda1;
   address  192.168.50.52:7789;
+
   address  198.19.250.2:7701;
 
  }
 
  }
 
}
 
}
 
</source>
 
</source>
 
===drbd-laufwerk erstellen===
 
===drbd-laufwerk erstellen===
*drbdadm create-md wwwdata
+
*drbdadm create-md nfs
 
<source lang=bash>
 
<source lang=bash>
 
initializing activity log
 
initializing activity log
Zeile 45: Zeile 40:
 
===drbd-Laufwerk hochfahren===
 
===drbd-Laufwerk hochfahren===
 
*modprobe drbd
 
*modprobe drbd
*drbdadm up wwwdata
+
*drbdadm up nfs
  
 
===Diesen Rechner als primär verwenden===
 
===Diesen Rechner als primär verwenden===
Zeile 51: Zeile 46:
 
'''Die folgenden Befehle müssen nur auf der Node ausgeführt werden, die später die primäre Node sein soll'''
 
'''Die folgenden Befehle müssen nur auf der Node ausgeführt werden, die später die primäre Node sein soll'''
  
*drbdadm primary --force wwwdata
+
*drbdadm primary --force nfs
  
 
===Dateisystem erstellen===
 
===Dateisystem erstellen===
*mkfs.xfs /dev/drbd1
+
*mkfs.ext4 /dev/drbd1
<source lang=bash>
 
meta-data=/dev/drbd1            isize=512    agcount=4, agsize=131066 blks
 
        =                      sectsz=512  attr=2, projid32bit=1
 
        =                      crc=1        finobt=1, sparse=0
 
data    =                      bsize=4096  blocks=524263, imaxpct=25
 
        =                      sunit=0      swidth=0 blks
 
naming  =version 2              bsize=4096  ascii-ci=0 ftype=1
 
log      =Internes Protokoll    bsize=4096  blocks=2560, version=2
 
        =                      sectsz=512  sunit=0 blks, lazy-count=1
 
realtime =keine                  extsz=4096  blocks=0, rtextents=0
 
</source>
 
  
 
==Resourcen anlegen==
 
==Resourcen anlegen==
Zeile 71: Zeile 55:
 
*pcs cluster cib drbd_cfg
 
*pcs cluster cib drbd_cfg
 
===Die Resource für das Master/Slave-Setup erstellen===
 
===Die Resource für das Master/Slave-Setup erstellen===
*pcs -f drbd_cfg resource create WebData ocf:linbit:drbd \
+
*pcs -f drbd_cfg resource create nfs-drbd ocf:linbit:drbd drbd_resource=nfs op monitor interval=60s
*>drbd_resource=wwwdata op monitor interval=60s
+
*pcs -f drbd_cfg resource master nfs-drbd-clone nfs-drbd  master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
*pcs -f drbd_cfg resource master WebDataClone WebData \
+
===Aus der Datei drbd_cfg in cib übernehmen===
*>master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 \
 
*>notify=true
 
*pcs -f drbd_cfg resource show
 
<source lang=bash>
 
VirtualIP (ocf::heartbeat:IPaddr2): Started francis
 
WebSite (ocf::heartbeat:apache): Started francis
 
Master/Slave Set: WebDataClone [WebData]
 
    Stopped: [ claire francis ]
 
</source>
 
===Die Konfiguration aus der Datei ins cib übernehmen===
 
 
*pcs cluster cib-push drbd_cfg
 
*pcs cluster cib-push drbd_cfg
<source lang=bash>
+
 
CIB updated
+
=NFS erstellen=
</source>
+
==NFS Install==
 +
*apt-get install nfs-kernel-server
 +
 
 +
==Resource für NFS-IP erstellen==
 +
*pcs resource create nfs-ip IPaddr2 ip=10.82.100.100 cidr_netmask=16
 +
 
 +
==Resource für Mount erstellen==
 +
*pcs resource create nfs-data Filesystem device="/dev/drbd1" directory="/mnt/misc/" fstype="ext4"
 +
 
 +
==Resource für NFS-Server erstellen==
 +
*pcs resource create nfs-Server systemd:nfs-kernel-server op monitor interval=”30s”
 +
 
 +
=Abhängigkeiten und Reihenfolge anpassen=
 +
*pcs constraint colocation add nfs-ip with master nfs-drbd-clone INFINITY
 +
*pcs constraint colocation add nfs-data with master nfs-drbd-clone INFINITY
 +
*pcs constraint colocation add nfs-server with master nfs-drbd-clone INFINITY
 +
*pcs constraint order promote nfs-drbd-clone then start nfs-ip
 +
*pcs constraint order start nfs-ip then start nfs-data
 +
*pcs constraint order start nfs-data then start nfs-server
 +
*pcs constraint show
 +
<pre>
 +
Location Constraints:
 +
Resource: nfs-drbd-clone
 +
    Enabled on: mabel (score:INFINITY) (role: Master)
 +
  Resource: nfs-ip
 +
    Enabled on: mabel (score:INFINITY) (role: Started)
 +
Ordering Constraints:
 +
  promote nfs-drbd-clone then start nfs-ip (kind:Mandatory)
 +
  start nfs-ip then start nfs-data (kind:Mandatory)
 +
  start nfs-data then start nfs-server (kind:Mandatory)
 +
Colocation Constraints:
 +
  nfs-ip with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)
 +
  nfs-data with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)
 +
  nfs-server with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)
 +
</pre>
 +
 
 +
=Ergebnis=
 
*pcs status
 
*pcs status
<source lang=bash>
+
<pre>
Cluster name: underwood
+
Cluster name: kvm-cluster
Last updated: Wed Oct 26 16:07:39 2016 Last change: Wed Oct 26 16:07:29 2016 by root via cibadmin on francis
+
Last updated: Thu Sep 21 09:48:09 2017 Last change: Wed Sep 20 19:31:16 2017 by root via crm_attribute on mabel
 
Stack: corosync
 
Stack: corosync
Current DC: claire (version 1.1.14-70404b0) - partition with quorum
+
Current DC: ryzen (version 1.1.14-70404b0) - partition with quorum
2 nodes and 4 resources configured
+
2 nodes and 9 resources configured
  
Online: [ claire francis ]
+
Online: [ mabel ryzen ]
  
 
Full list of resources:
 
Full list of resources:
  
  VirtualIP (ocf::heartbeat:IPaddr2): Started francis
+
  Master/Slave Set: nfs-drbd-clone [nfs-drbd]
  WebSite (ocf::heartbeat:apache): Started francis
+
    Masters: [ mabel ]
  Master/Slave Set: WebDataClone [WebData]
+
    Slaves: [ ryzen ]
    Masters: [ francis ]
+
nfs-ip (ocf::heartbeat:IPaddr2): Started mabel
    Slaves: [ claire ]
+
  nfs-data (ocf::heartbeat:Filesystem): Started mabel
 +
  nfs-server (systemd:nfs-kernel-server): Started mabel
  
 
PCSD Status:
 
PCSD Status:
   francis: Online
+
   mabel: Online
   claire: Online
+
   ryzen: Online
  
 
Daemon Status:
 
Daemon Status:
   corosync: active/enabled
+
   corosync: active/disabled
 
   pacemaker: active/enabled
 
   pacemaker: active/enabled
 
   pcsd: active/enabled
 
   pcsd: active/enabled
</source>
+
</pre>
 
 
 
 
 
 
*pcs resource create nfsshare Filesystem device=/dev/rbd0 directory=/mnt/misc fstype=ext4 --group nfsgroup
 
*pcs resource create nfs-daemon nfsserver nfs_shared_infodir=/mnt/misc/nfsinfo nfs_no_notify=true  --group nfsgroup
 
*pcs resource create nfs-root exportfs clientspec=10.0.0.0/255.0.0.0 options=rw,sync,no_root_squash directory=/mnt/misc/data fsid=0 --group nfsgroup
 
*pcs resource create nfs_ip IPaddr2 ip=10.82.100.100 cidr_netmask=16 --group nfsgroup
 

Aktuelle Version vom 25. September 2017, 13:45 Uhr

Vorraussetzungen

  • Eingerichteter HA-Cluster
  • Partitionierte Festplatte

DRBD erstellen

  • apt-get install drbd8-utils

DRBD konfigurieren

Die folgenden Anweißungen müssen auf beiden Nodes ausgeführt werden

  • vi /etc/drbd.d/nfs.res
resource nfs {
 protocol C;
 meta-disk internal;
 device /dev/drbd1;
 syncer {
  verify-alg sha1;
 }
 net {
  allow-two-primaries;
 }
 on mabel.xinux.lan {
  disk   /dev/sda1;
  address  198.19.250.1:7701;
 }
 on ryzen.xinux.lan {
  disk   /dev/sda1;
  address  198.19.250.2:7701;
 }
}

drbd-laufwerk erstellen

  • drbdadm create-md nfs
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.

drbd-Laufwerk hochfahren

  • modprobe drbd
  • drbdadm up nfs

Diesen Rechner als primär verwenden

Die folgenden Befehle müssen nur auf der Node ausgeführt werden, die später die primäre Node sein soll

  • drbdadm primary --force nfs

Dateisystem erstellen

  • mkfs.ext4 /dev/drbd1

Resourcen anlegen

in der Datei drbd_cfg zwischenspeichern

  • pcs cluster cib drbd_cfg

Die Resource für das Master/Slave-Setup erstellen

  • pcs -f drbd_cfg resource create nfs-drbd ocf:linbit:drbd drbd_resource=nfs op monitor interval=60s
  • pcs -f drbd_cfg resource master nfs-drbd-clone nfs-drbd master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

Aus der Datei drbd_cfg in cib übernehmen

  • pcs cluster cib-push drbd_cfg

NFS erstellen

NFS Install

  • apt-get install nfs-kernel-server

Resource für NFS-IP erstellen

  • pcs resource create nfs-ip IPaddr2 ip=10.82.100.100 cidr_netmask=16

Resource für Mount erstellen

  • pcs resource create nfs-data Filesystem device="/dev/drbd1" directory="/mnt/misc/" fstype="ext4"

Resource für NFS-Server erstellen

  • pcs resource create nfs-Server systemd:nfs-kernel-server op monitor interval=”30s”

Abhängigkeiten und Reihenfolge anpassen

  • pcs constraint colocation add nfs-ip with master nfs-drbd-clone INFINITY
  • pcs constraint colocation add nfs-data with master nfs-drbd-clone INFINITY
  • pcs constraint colocation add nfs-server with master nfs-drbd-clone INFINITY
  • pcs constraint order promote nfs-drbd-clone then start nfs-ip
  • pcs constraint order start nfs-ip then start nfs-data
  • pcs constraint order start nfs-data then start nfs-server
  • pcs constraint show
Location Constraints:
Resource: nfs-drbd-clone
    Enabled on: mabel (score:INFINITY) (role: Master)
  Resource: nfs-ip
    Enabled on: mabel (score:INFINITY) (role: Started)
Ordering Constraints:
  promote nfs-drbd-clone then start nfs-ip (kind:Mandatory)
  start nfs-ip then start nfs-data (kind:Mandatory)
  start nfs-data then start nfs-server (kind:Mandatory)
Colocation Constraints:
  nfs-ip with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)
  nfs-data with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)
  nfs-server with nfs-drbd-clone (score:INFINITY) (with-rsc-role:Master)

Ergebnis

  • pcs status
Cluster name: kvm-cluster
Last updated: Thu Sep 21 09:48:09 2017		Last change: Wed Sep 20 19:31:16 2017 by root via crm_attribute on mabel
Stack: corosync
Current DC: ryzen (version 1.1.14-70404b0) - partition with quorum
2 nodes and 9 resources configured

Online: [ mabel ryzen ]

Full list of resources:

 Master/Slave Set: nfs-drbd-clone [nfs-drbd]
     Masters: [ mabel ]
     Slaves: [ ryzen ]
 nfs-ip	(ocf::heartbeat:IPaddr2):	Started mabel
 nfs-data	(ocf::heartbeat:Filesystem):	Started mabel
 nfs-server	(systemd:nfs-kernel-server):	Started mabel

PCSD Status:
  mabel: Online
  ryzen: Online

Daemon Status:
  corosync: active/disabled
  pacemaker: active/enabled
  pcsd: active/enabled