Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:hochverfuegbarkeit_glusterfs

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:hochverfuegbarkeit_glusterfs [2012/09/10 15:52] klaustachtler:hochverfuegbarkeit_glusterfs [2012/09/21 10:34] (aktuell) – [Performance] klaus
Zeile 1: Zeile 1:
 ====== Hochverfügbarkeit GlusterFS ====== ====== Hochverfügbarkeit GlusterFS ======
  
-[[tachtler:hochverfuegbarkeit_allgemein|{{:tachtler:index:glusterfs-48x48.png }}]] [[http://www.gluster.org/|GlusterFS]] ist ein **"OpenSource"** Dateisystem-Replikationsmethode, welche in der Lage ist, eine Skalierung auf mehrere Petabyte (aktuell, 72 BrontoBytes!) zu verwirklichen und die parallele Nutzung durch Tausenden von Clients, bewerkstelligen kann.+[[tachtler:hochverfuegbarkeit_allgemein|{{:tachtler:index:glusterfs-48x48.png }}]] [[http://www.gluster.org/|GlusterFS]] ist eine **"OpenSource"** Dateisystem-Replikationsmethode, welche in der Lage ist, eine Skalierung auf mehrere Petabyte (aktuell, 72 BrontoBytes!) zu verwirklichen und die parallele Nutzung durch tausende von Clients, bewerkstelligen kann.
 \\ \\
 \\ \\
-[[http://www.gluster.org/|GlusterFS]] Cluster nutzt Storage Building Blocks über Infiniband RDMA oder TCP/IP-Interconnect, aggregieren Festplatte und Speicher-Ressourcen und verwalten Daten in einem einzigen globalen Namensraum.+[[http://www.gluster.org/|GlusterFS]]-Cluster nutzt **Storage Building Blocks** über Infiniband RDMA oder TCP/IP-Interconnect, aggregieren Festplatte und Speicher-Ressourcen und verwalten Daten in einem einzigen globalen Namensraum.
  
 {{:tachtler:ha:640px-glusterfs_3.2_architecture.png|GlusterFS Architektur - Beispiel Überblick}} {{:tachtler:ha:640px-glusterfs_3.2_architecture.png|GlusterFS Architektur - Beispiel Überblick}}
Zeile 10: Zeile 10:
 ===== Vorbereitung ===== ===== Vorbereitung =====
  
-Nachfolgende vorbereitende Schritte sind notwendig, um eine [[http://www.gluster.org/|GlusterFS]]-Dateisystem zu betreiben.+Nachfolgende vorbereitende Schritte sind notwendig, um ein [[http://www.gluster.org/|GlusterFS]]-Dateisystem zu betreiben.
   * Eintragung der beteiligtne Server bzw. **Knoten** in die Namensauflösung **DNS**, bzw. **''/etc/hosts''**.   * Eintragung der beteiligtne Server bzw. **Knoten** in die Namensauflösung **DNS**, bzw. **''/etc/hosts''**.
-  * Freischaltung der benötigten **Paketfilter-Regeln**, hier **''iptbales''**.+  * Freischaltung der benötigten **Paketfilter-Regeln**, hier **''iptables''**.
   * Einbindung des externen, benötigten Repositorys, hier das von [[http://fedoraproject.org/wiki/EPEL|EPEL]]    * Einbindung des externen, benötigten Repositorys, hier das von [[http://fedoraproject.org/wiki/EPEL|EPEL]] 
 um anschließend die um anschließend die
Zeile 22: Zeile 22:
 ==== /etc/hosts ==== ==== /etc/hosts ====
  
-In der nachfolgend geszeigten Installation eines [[http://www.gluster.org/|GlusterFS]]-Dateisystems, werden zusätzlich zu möglichen Eintragungen im **DNS**, nachfolgende Eintragungen in allen beteiligten Servern **Knoten**, durchgeführt:+In der nachfolgend gezeigten Installation eines [[http://www.gluster.org/|GlusterFS]]-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:** **Server/Knoten 1 - IP-Adresse: 192.168.1.201:**
Zeile 28: Zeile 28:
 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
-192.168.1.200  ha-manager ha-manager.dmz.tachtler.net +192.168.1.200  ha-manager ha-manager.intra.tachtler.net 
-192.168.1.201  ha-node-01 ha-node-01.dmz.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.dmz.tachtler.net+192.168.1.202  ha-node-02 ha-node-02.intra.tachtler.net
 </code> </code>
  
Zeile 37: Zeile 37:
 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
-192.168.1.200  ha-manager ha-manager.dmz.tachtler.net +192.168.1.200  ha-manager ha-manager.intra.tachtler.net 
-192.168.1.201  ha-node-01 ha-node-01.dmz.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.dmz.tachtler.net +192.168.1.202  ha-node-02 ha-node-02.intra.tachtler.net
-</code> +
- +
-Zusätzlich, auf eine weiteren späteren Einsatz, soll auch ein **Management-Server** noch in die aktuelle Konfigurationsdatei **''/etc/hosts''** mit aufgenommen werden, dessen Konfigurationsdatei ebenfalls wie nachfolgend dargestellt, ergänzt wird: +
- +
-**Server/Manager  - IP-Adresse: 192.168.1.200:** +
-<code> +
-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.dmz.tachtler.net +
-192.168.1.201  ha-node-01 ha-node-01.dmz.tachtler.net +
-192.168.1.202  ha-node-02 ha-node-02.dmz.tachtler.net+
 </code> </code>
  
 ==== /etc/sysconfig/iptables-save ==== ==== /etc/sysconfig/iptables-save ====
  
-Damit die Server/Knoten/Manager auch erreichbar sind und nicht die Spiegelung der Festplatten vom Paketfilter ''iptables'' blockiert wird, müssen nachfolgende Regel zum ''iptables''-Regelwerk **auf allen Servern** hinzugefügt werden.+Damit die Server/Knoten auch erreichbar sind und nicht die Spiegelung der Festplatten 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: Um die aktuellen ''iptables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
Zeile 93: Zeile 82:
   * **''38465:38467''** - Port 38465 bis 38467, nur bei verwendung von **NFS**-Mount-Points nötig.   * **''38465:38467''** - Port 38465 bis 38467, nur bei verwendung von **NFS**-Mount-Points nötig.
  
-Ein erneute Abfrage des ''iptables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:+Eine erneute Abfrage des ''iptables''-Regelwerks, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 <code> <code>
 # iptables -L -nv --line-numbers # iptables -L -nv --line-numbers
Zeile 126: Zeile 115:
 </code> </code>
  
-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:+Um diese ''iptables''-Regeln dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehlabschließend noch ausgeführt werden:
 <code> <code>
 # service iptables save # service iptables save
Zeile 134: Zeile 123:
 ==== EPEL-Repository einbinden ==== ==== EPEL-Repository einbinden ====
  
-Bevor externe Repository's auf den Servern/Knoten/Manager eingebunden werden, sollte sichergestellt werden, dass **__keine__** Pakete aus externen Repositorys, die der eigentlichen [[http://www.centos.org|CentOS]]-Repositorys überschreiben.+Bevor externe Repository's auf den Servern/Knoten eingebunden werden, sollte sichergestellt werden, dass **__keine__** Pakete aus externen Repositorys, die der eigentlichen [[http://www.centos.org|CentOS]]-Repositorys überschreiben.
  
 Dies kann durch die Installation des sogenannten Dies kann durch die Installation des sogenannten
-  * **Priority-Plugins** für den Paket-Manager **''yum''**+  * **Priorities-Plugin** für den Paket-Manager **''yum''**
 erfolgen. erfolgen.
  
-Die Installation des **Priority-Plugins** für den Paket-Manager **''yum''** wird durch nachfolgenden Befehl durchgeführt:+Die Installation des **Priorities-Plugin** für den Paket-Manager **''yum''** wird durch nachfolgenden Befehl durchgeführt:
 <code> <code>
 # yum install yum-plugin-priorities # yum install yum-plugin-priorities
Zeile 181: Zeile 170:
 </code> </code>
  
-Der Inhalt des Paketes **''yum-plugin-priorities.noarch''** kann mit nachfolgendem Befehl angezeigt werden:+Der Inhalt des Paketes **''yum-plugin-priorities''** kann mit nachfolgendem Befehl angezeigt werden:
 <code> <code>
 # rpm -qil yum-plugin-priorities # rpm -qil yum-plugin-priorities
Zeile 241: Zeile 230:
 </code> </code>
  
-:!: **HINWEIS** - Den eigenen Rpository's aus [[http://www.centos.org|CentOS]] sollte eine **höhere Priorität, durch zuweisung einer __kleineren Zahl__** zugewiesen werden!+:!: **HINWEIS** - Den eigenen Rpository's aus [[http://www.centos.org|CentOS]] sollte eine **höhere Priorität, durch Zuweisung einer __kleineren Zahl__** gegeben werden!
  
-Um [[http://fedoraproject.org/wiki/EPEL|EPEL]] auf den Servern/Knoten/Manager Nutzen zu können, muss nachfolgende Datei heurntergeladen werden, was mit nachfolgendem Befehl durchgeführt werden kann:+Um [[http://fedoraproject.org/wiki/EPEL|EPEL]] auf den Servern/Knoten Nutzen zu können, muss nachfolgende Datei heruntergeladen werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 <code> <code>
 # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm # wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
Zeile 317: Zeile 306:
 </code> </code>
  
-Der Inhalt des Paketes **''yum-plugin-priorities.noarch''** kann mit nachfolgendem Befehl angezeigt werden:+Der Inhalt des Pakets **''epel-release-6-7.noarch''** kann mit nachfolgendem Befehl angezeigt werden:
 <code> <code>
 # rpm -qil epel-release # rpm -qil epel-release
Zeile 341: Zeile 330:
 </code> </code>
  
-:!: **HINWEIS** - Abschließend sollte hier die **Priorität** des [[http://fedoraproject.org/wiki/EPEL|EPEL]]-Repositorys, eine **niedrigere Priorität, durch zuweisung einer __größeren Zahl__**, als die der eigenen Rpository's aus [[http://www.centos.org|CentOS]] zugewiesen werden!+:!: **HINWEIS** - Abschließend sollte hier die **Priorität** des [[http://fedoraproject.org/wiki/EPEL|EPEL]]-Repositorys, eine **niedrigere Priorität, durch Zuweisung einer __größeren Zahl__**, als die der eigenen Rpository's aus [[http://www.centos.org|CentOS]] gegeben werden!
  
 Was im Beispiel der Konfigurationsdatei  Was im Beispiel der Konfigurationsdatei 
Zeile 432: Zeile 421:
 </code> </code>
  
-Um zu überprüfen, ob die Installation erfolgreich durchgeführt werden konnte, ist nachfolgender Befehl, **auf allen Server/Knoten (ha-node-01 und ha-node-02)**, mit ebenfalls nachfolgender Ausgabeauszuführen:+Um zu überprüfen, ob die Installation erfolgreich durchgeführt werden konnte, ist nachfolgender Befehl, **auf allen Server/Knoten (ha-node-01 und ha-node-02)**, mit ebenfalls nachfolgender Ausgabe auszuführen:
  
 **Server/Knoten 1 - IP-Adresse: 192.168.1.201:** **Server/Knoten 1 - IP-Adresse: 192.168.1.201:**
Zeile 456: Zeile 445:
 ===== Server: Konfiguration ===== ===== Server: Konfiguration =====
  
-Nachfolgend soll eine **grundlegende** Konfiguration eines [[http://www.gluster.org/|GlusterFS]] Clusters mit +Nachfolgend soll eine **grundlegende** Konfiguration eines [[http://www.gluster.org/|GlusterFS]]-Clusters mit 
   * **zwei Knoten**   * **zwei Knoten**
 durchgeführt werden. durchgeführt werden.
Zeile 496: Zeile 485:
 ===== Server: starten ===== ===== Server: starten =====
  
-:!: **HINWEIS** - **Der Start der Server erfolgt __NUR__ auf den Server/Knoten (ha-node-01 und ha-node-02) !!!** +:!: **HINWEIS** - **Der Start der Server/Knoten erfolgt __NUR__ auf den Server/Knoten (ha-node-01 und ha-node-02) !!!** 
  
 Mit nachfolgendem Befehl, sollten nun auf **beiden Servern/Knoten (ha-node-01 und ha-node-02)** der Dienst/Daemon der [[http://www.gluster.org/|GlusterFS]] **Server-Komponente** gestartete werden: Mit nachfolgendem Befehl, sollten nun auf **beiden Servern/Knoten (ha-node-01 und ha-node-02)** der Dienst/Daemon der [[http://www.gluster.org/|GlusterFS]] **Server-Komponente** gestartete werden:
Zeile 571: Zeile 560:
 ===== Trusted Storage Pools ===== ===== Trusted Storage Pools =====
  
-:!: **HINWEIS** - **Der Konfiguration ist __NUR__ auf den __EINEN__ der Server/Knoten (ha-node-01 und ha-node-02)  erforderlich !!!** +:!: **HINWEIS** - **Die Konfiguration ist __NUR__ auf __EINEN__ der Server/Knoten (ha-node-01 und ha-node-02)  erforderlich !!!** 
  
 Bevor mit der Konfiguration eines unter [[http://www.gluster.org/|GlusterFS]] erstellten **Volume** (Speicherbereich auf physischen Festplatte(n)) begonnen werden kann, muss ein sogenannter **Trusted Storage Pool** (Vertrauenswürdiger Speicher Bereich), bestehend aus den Servern/Knoten, auch **Bricks** genannt, erstellt werden. Bevor mit der Konfiguration eines unter [[http://www.gluster.org/|GlusterFS]] erstellten **Volume** (Speicherbereich auf physischen Festplatte(n)) begonnen werden kann, muss ein sogenannter **Trusted Storage Pool** (Vertrauenswürdiger Speicher Bereich), bestehend aus den Servern/Knoten, auch **Bricks** genannt, erstellt werden.
Zeile 585: Zeile 574:
 </code> </code>
  
-:!: **HINWEIS** - **Es ist __NICHT__ erforderlich, den Server/Knoten auf dem der oben genannte Befehl ausgeführt wird, ebenfalls hinzuzufügen !!!**+:!: **HINWEIS** - **Es ist __NICHT__ möglich und erforderlich, den Server/Knoten auf dem der oben genannte Befehl ausgeführt wird, ebenfalls hinzuzufügen !!!**
  
 ==== Server/Knoten überprüfen ==== ==== Server/Knoten überprüfen ====
Zeile 617: Zeile 606:
 **Server/Knoten 1 - IP-Adresse: 192.168.1.201:** **Server/Knoten 1 - IP-Adresse: 192.168.1.201:**
 <code> <code>
-# gluster peer detache ha-node-02.intra.tachtler.net+# gluster peer detach ha-node-02.intra.tachtler.net
 Detach successful Detach successful
 </code> </code>
Zeile 625: Zeile 614:
 Um nach, unter dem nachfolgendem internen Link innerhalb dieses DokuWiki --> [[tachtler:hochverfuegbarkeit_glusterfs#trusted_storage_pools|Hochverfügbarkeit GlusterFS - Trusted Storage Pools]] gezeigten Erstellung eines **Trusted Storage Pool** (Vertrauenswürdiger Speicher Bereich), auch ein **Volume** (Speicherbereich auf physischen Festplatte(n)) zu erstellen, sind nachfolgende Informationen wichtig. Um nach, unter dem nachfolgendem internen Link innerhalb dieses DokuWiki --> [[tachtler:hochverfuegbarkeit_glusterfs#trusted_storage_pools|Hochverfügbarkeit GlusterFS - Trusted Storage Pools]] gezeigten Erstellung eines **Trusted Storage Pool** (Vertrauenswürdiger Speicher Bereich), auch ein **Volume** (Speicherbereich auf physischen Festplatte(n)) zu erstellen, sind nachfolgende Informationen wichtig.
  
-Es nachfolgend aufgezählte Arten, eines **Volume** (Speicherbereich auf physischen Festplatte(n)):+Es gibt nachfolgend aufgezählte Arten, eines **Volume** (Speicherbereich auf physischen Festplatte(n)):
   - **Distributed** - Verteilung einer Datei, als ganzes, auf einen der **Bricks** (Server/Knoten)   - **Distributed** - Verteilung einer Datei, als ganzes, auf einen der **Bricks** (Server/Knoten)
   - **Replicated** - Verteilung einer Datei, als ganzes - redundant - auf die **Bricks** (Server/Knoten)   - **Replicated** - Verteilung einer Datei, als ganzes - redundant - auf die **Bricks** (Server/Knoten)
Zeile 636: Zeile 625:
   * **Distributed Striped Replicated** Verteilung einer Datei, in Teilen, auf zwei oder mehr **Bricks** (Server/Knoten) innerhalb eines **Clusters**, welches sich jedoch replizieren   * **Distributed Striped Replicated** Verteilung einer Datei, in Teilen, auf zwei oder mehr **Bricks** (Server/Knoten) innerhalb eines **Clusters**, welches sich jedoch replizieren
  
-Da ein Bild bekanntlich mehr als 1.000 Worte sagen kann, hier noch einem die Arten eines **Volume** (Speicherbereich auf physischen Festplatte(n)) mit grafischer Beschreibung (wo möglich und sinnvoll):+Hier noch einem die Arten eines **Volume** (Speicherbereich auf physischen Festplatte(n)) mit grafischer Beschreibung (wo möglich und sinnvoll):
  
 ==== Distributed Volume ==== ==== Distributed Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** Performance    * **+** Performance 
   * **-** Sicherheit   * **-** Sicherheit
Zeile 656: Zeile 645:
 ==== Replicated Volume ==== ==== Replicated Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** hohe Verfügbarkeit    * **+** hohe Verfügbarkeit 
   * **+** hohe Zuverlässigkeit   * **+** hohe Zuverlässigkeit
Zeile 674: Zeile 663:
 ==== Striped Volume ==== ==== Striped Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** hohe Skalierbarkeit    * **+** hohe Skalierbarkeit 
   * **+** paralleler Zugriff auf große Dateien   * **+** paralleler Zugriff auf große Dateien
Zeile 691: Zeile 680:
 ==== Distributed Striped Volume ==== ==== Distributed Striped Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** Performance   * **+** Performance
   * **+** hohe Skalierbarkeit   * **+** hohe Skalierbarkeit
Zeile 709: Zeile 698:
 ==== Distributed Replicated Volume ==== ==== Distributed Replicated Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** hohe Verfügbarkeit    * **+** hohe Verfügbarkeit 
   * **+** hohe Zuverlässigkeit   * **+** hohe Zuverlässigkeit
Zeile 727: Zeile 716:
 ==== Striped Replicated Volume ==== ==== Striped Replicated Volume ====
  
-**Einsatz**: Bei Speicher-Lösungen, bei denen es +**Einsatz**: Bei Speicher-Lösungen, bei denen es auf
   * **+** hohe Verfügbarkeit    * **+** hohe Verfügbarkeit 
   * **+** hohe Zuverlässigkeit   * **+** hohe Zuverlässigkeit
Zeile 746: Zeile 735:
 ===== Volume: Replicated erstellen ===== ===== Volume: Replicated erstellen =====
  
-:!: **HINWEIS** - **Der Konfiguration ist __NUR__ auf den __EINEN__ der Server/Knoten (ha-node-01 und ha-node-02)  erforderlich !!!** +:!: **HINWEIS** - **Die Konfiguration ist __NUR__ auf __EINEN__ der Server/Knoten (ha-node-01 und ha-node-02)  erforderlich !!!** 
  
-In dem hier als Beispiel behandelten Fall, soll nun ein **GlusterFS Server Volume - Replicated Volume** erstellt werden. Die kann mit dem nachfolgend beschriebenen Befehl durchgeführt werden:+In dem hier als Beispiel behandelten Fall, soll nun ein **GlusterFS Server Volume - Replicated Volume** erstellt werden. Dies kann mit dem nachfolgend beschriebenen Befehl durchgeführt werden:
 <code> <code>
 # gluster volume create httpd_data replica 2 transport tcp ha-node-01.intra.tachtler.net:/exp1 ha-node-02.intra.tachtler.net:/exp2 # gluster volume create httpd_data replica 2 transport tcp ha-node-01.intra.tachtler.net:/exp1 ha-node-02.intra.tachtler.net:/exp2
Zeile 755: Zeile 744:
  
 **__Erklärung__:** **__Erklärung__:**
-  * **''httpd_data''** - Name des neuen Volumes+  * **''httpd_data''** - Name des neuen **Volumes**
   * **''replica 2''** - Replication über zwei **Bricks** (Server/Knoten)   * **''replica 2''** - Replication über zwei **Bricks** (Server/Knoten)
-  * **''transport tcp''** - Die Snchronisation erfolgt über des Protokoll ''tcp'' (Infiniband wäre ''rdma'')+  * **''transport tcp''** - Die Synchronisation erfolgt über des Protokoll ''tcp'' (Infiniband wäre ''rdma'')
   * **''ha-node-01.intra.tachtler.net:/exp1''** - erster **Brick** (Server/Knoten)   * **''ha-node-01.intra.tachtler.net:/exp1''** - erster **Brick** (Server/Knoten)
   * **''ha-node-02.intra.tachtler.net:/exp2''** - zweiter **Brick** (Server/Knoten)   * **''ha-node-02.intra.tachtler.net:/exp2''** - zweiter **Brick** (Server/Knoten)
Zeile 789: Zeile 778:
 ===== Client: Installation ===== ===== Client: Installation =====
  
-:!: **HINWEIS** - **Die Installation erfolgt auf __BEIDEN__ den Client/Knoten (ha-node-01 und ha-node-02) !!!** +:!: **HINWEIS** - **Die Installation erfolgt auf __BEIDEN__ Client/Knoten (ha-node-01 und ha-node-02) !!!** 
  
 Um die Client-Komponenten von [[http://www.gluster.org/|GlusterFS]] zu installieren, sollten nachfolgende Pakete mit nachfolgendem Befehl installiert werden: Um die Client-Komponenten von [[http://www.gluster.org/|GlusterFS]] zu installieren, sollten nachfolgende Pakete mit nachfolgendem Befehl installiert werden:
-  * **''fuse''** --> [[http://fuse.sourceforge.net/|FUSE]] Userspace Werkzeuge, um eine [[http://fuse.sourceforge.net/|FUSE]]-Dateisystem //mounten// (einhängen) zu können+  * **''fuse''** --> [[http://fuse.sourceforge.net/|FUSE]] Userspace Werkzeuge, um ein [[http://fuse.sourceforge.net/|FUSE]]-Dateisystem //mounten// (einhängen) zu können
   * **''fuse-libs''** --> Die Bibliotheken zu [[http://fuse.sourceforge.net/|FUSE]]   * **''fuse-libs''** --> Die Bibliotheken zu [[http://fuse.sourceforge.net/|FUSE]]
  
Zeile 846: Zeile 835:
 ===== Client: Konfiguration ===== ===== Client: Konfiguration =====
  
-:!: **HINWEIS** - **Die Konfiguration erfolgt auf __BEIDEN__ den Client/Knoten (ha-node-01 und ha-node-02) !!!**+:!: **HINWEIS** - **Die Konfiguration erfolgt auf __BEIDEN__ Client/Knoten (ha-node-01 und ha-node-02) !!!**
  
 Die Konfiguration ist eigentlich nur das **mounten** (einhängen) des durch [[http://www.gluster.org/|GlusterFS]] erstellte **Volume** auf einen neuen, oder auch bestehenden **mount-point** (Verzeichnis, in welches das Dateisystem eingehängt wird). Die Konfiguration ist eigentlich nur das **mounten** (einhängen) des durch [[http://www.gluster.org/|GlusterFS]] erstellte **Volume** auf einen neuen, oder auch bestehenden **mount-point** (Verzeichnis, in welches das Dateisystem eingehängt wird).
Zeile 879: Zeile 868:
 </code> </code>
  
-Dies bewirkt das **mounten** (einhängen) des durch [[http://www.gluster.org/|GlusterFS]] erstellte **Volume** in das Dateisystem, via **glusterfs**:+Dies bewirkt das **mounten** (einhängen) des durch [[http://www.gluster.org/|GlusterFS]] erstellten **Volume** in das Dateisystem, via **glusterfs**:
  
 :!: **WICHTIG** - **Jeder Client/Knoten (ha-node-01 und ha-node-02), __mounted__ von __SICH SELBST__ das Dateisystem ''/var/www''**, da es sonst beim Start bzw. Neustart des Servers zu Problemen kommt !!! :!: **WICHTIG** - **Jeder Client/Knoten (ha-node-01 und ha-node-02), __mounted__ von __SICH SELBST__ das Dateisystem ''/var/www''**, da es sonst beim Start bzw. Neustart des Servers zu Problemen kommt !!!
  
-Um den soeben durchgeführten Eintrag in die 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:+Um den soeben durchgeführten Eintrag in die Konfigurationsdatei **''/etc/fstab''** auch zu aktivieren und den **mount-point** (Verzeichnis, in welches das Dateisystem eingehängt wird) 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:** **Server/Knoten 1 - IP-Adresse: 192.168.1.201:**
Zeile 911: Zeile 900:
 </code> </code>
  
-Um zu überprüfen, ob die Replikation wischen (ha-node-01 und ha-node-02) auch tatsächlich funktioniert, kann z.B. auf+Um zu überprüfen, ob die Replikation zwischen (ha-node-01 und ha-node-02) auch tatsächlich funktioniert, kann z.B. auf
   * **Server/Knoten 1 - IP-Adresse: 192.168.1.201:**    * **Server/Knoten 1 - IP-Adresse: 192.168.1.201:** 
 mit nachfolgendem Befehl eine (leere) Datei erstellt werden: mit nachfolgendem Befehl eine (leere) Datei erstellt werden:
Zeile 1027: Zeile 1016:
 ==== Monitoring: top ==== ==== Monitoring: top ====
  
-Nachfolgende Befehle geben die Nutzungsdaten eines [[http://www.gluster.org/|GlusterFS]] erstelltes **Volume** aus:+Nachfolgende Befehle geben die Nutzungsdaten eines mit [[http://www.gluster.org/|GlusterFS]] erstelltes **Volume** aus:
   * **''open''** - Anzahl der geöffneten Dateien und wie oft diese geöffnet wurden je **Brick** (Server/Knoten)   * **''open''** - Anzahl der geöffneten Dateien und wie oft diese geöffnet wurden je **Brick** (Server/Knoten)
   * **''read''** - Anzahl der höchsten Lese-Zugriffe auf Dateien je **Brick** (Server/Knoten)   * **''read''** - Anzahl der höchsten Lese-Zugriffe auf Dateien je **Brick** (Server/Knoten)
   * **''write''** - Anzahl der höchsten Schreib-Zugriffe auf Dateien je **Brick** (Server/Knoten)   * **''write''** - Anzahl der höchsten Schreib-Zugriffe auf Dateien je **Brick** (Server/Knoten)
-  * **''opendir''** - Anzahl der genutzten Verzeichnisse und wie oft diese genutzt wurden je **Brick** (Server/Knoten)+  * **''opendir''** - Anzahl der genutzten Verzeichnisse und wie oft diese genutzt wurdenje **Brick** (Server/Knoten)
   * **''readdir''** - Anzahl der höchsten Lese-Zugriffe auf Verzeichnisse je **Brick** (Server/Knoten)   * **''readdir''** - Anzahl der höchsten Lese-Zugriffe auf Verzeichnisse je **Brick** (Server/Knoten)
  
Zeile 1074: Zeile 1063:
 </code> </code>
  
-Nachfolgende Befehle geben die Nutzungsdaten eines [[http://www.gluster.org/|GlusterFS]] erstelltes **Volume** aus: +Nachfolgende Befehle geben die Nutzungsdaten eines mit [[http://www.gluster.org/|GlusterFS]] erstellten **Volume** aus: 
-  * **''read-perf''** - Anzahl der höchsten Lese-Zugriffe Performancedaten je **Brick** (Server/Knoten) +  * **''read-perf''** - Anzahl der höchsten Lese-ZugriffePerformancedaten je **Brick** (Server/Knoten) 
-  * **''write-perf''** - Anzahl der höchsten Schreib-Zugriffe Performancedaten je **Brick** (Server/Knoten)+  * **''write-perf''** - Anzahl der höchsten Schreib-ZugriffePerformancedaten je **Brick** (Server/Knoten)
  
 Der Befehl ist immer wie folgt aufgebaut: Der Befehl ist immer wie folgt aufgebaut:
Zeile 1083: Zeile 1072:
 </code> </code>
  
- +Mit nachfolgendem Befehl, können z.B. diese Performance Dateien angezeigt werden.
-Mit nachfolgender Befehl, können z.B. die Performance Dateien angezeigt werden, welche geschrieben wurden.+
 (**''list-cnt 25''** begrenzt die Anzeige auf die letzten 25 Einträge). (**''list-cnt 25''** begrenzt die Anzeige auf die letzten 25 Einträge).
 <code> <code>
Zeile 1122: Zeile 1110:
 ==== Monitoring: Informationen ==== ==== Monitoring: Informationen ====
  
-Mit nachfolgendem Befehl, können Informationen über die Beschaffenheit eines [[http://www.gluster.org/|GlusterFS]] erstelltes **Volume** abgefragt werden:+Mit nachfolgendem Befehl, können Informationen über die Beschaffenheit eines mit[[http://www.gluster.org/|GlusterFS]] erstellten **Volume** abgefragt werden:
 <code> <code>
 # gluster volume info httpd_data # gluster volume info httpd_data
Zeile 1147: Zeile 1135:
 Brick1: ha-node-01.intra.tachtler.net:/exp1 Brick1: ha-node-01.intra.tachtler.net:/exp1
 Brick2: ha-node-02.intra.tachtler.net:/exp2 Brick2: ha-node-02.intra.tachtler.net:/exp2
 +</code>
 +
 +===== Performance =====
 +
 +Nachfolgend soll eine **kleine** Performance-Messung durchgeführt werden, in dem eine **100 MegaByte** große Datei, einmal auf einem der beiden Client/Knoten (ha-node-01 und ha-node-02) 
 +  * **lokalem**
 +und auf dem
 +  * **GlusterFS**
 +Dateisystem erstellt wird und eine Messung der dafür benötigten Zeit durchgeführt wird.
 +
 +**Erstellung einer 100 MegaByte großen Datei auf einem lokalem Dateisystem**:
 +<code>
 +# time dd if=/dev/zero of=/tmp/100MBfile bs=1024 count=102400
 +102400+0 records in
 +102400+0 records out
 +104857600 bytes (105 MB) copied, 0.63121 s, 166 MB/s
 +
 +real    0m0.640s
 +user    0m0.022s
 +sys     0m0.570s
 +</code>
 +
 +**Erstellung einer 100 MegaByte großen Datei auf einem GlusterFS Dateisystem**:
 +<code>
 +# time dd if=/dev/zero of=/var/www/100MBfile bs=1024 count=102400
 +102400+0 records in
 +102400+0 records out
 +104857600 bytes (105 MB) copied, 13.2261 s, 7.9 MB/s
 +
 +real    0m13.248s
 +user    0m0.155s
 +sys     0m0.902s
 </code> </code>
  
tachtler/hochverfuegbarkeit_glusterfs.1347285166.txt.gz · Zuletzt geändert: 2012/09/10 15:52 von klaus