Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision |
tachtler:hochverfuegbarkeit_glusterfs [2012/09/11 09:35] – klaus | tachtler:hochverfuegbarkeit_glusterfs [2012/09/12 23:36] – klaus |
---|
====== 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 tausende 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}} |
===== 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 |
==== /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: |
* **''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 |
</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 Befehl, abschließend noch ausgeführt werden: |
<code> | <code> |
# service iptables save | # service iptables save |
==== 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 |
</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 |
</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 |
</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 |
</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 |
</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 Ausgabe, auszufü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:** |
===== 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. |
===== 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: |
===== 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. |
</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 ==== |
**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> |
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) |
* **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 |
==== 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 |
==== 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 |
==== 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 |
==== 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 |
==== 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 |
===== 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 |
| |
**__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) |
===== 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]] |
| |
===== 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). |
</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:** |
</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: |
==== 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 wurden, je **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) |
| |
</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-Zugriffe, Performancedaten je **Brick** (Server/Knoten) |
* **''write-perf''** - Anzahl der höchsten Schreib-Zugriffe Performancedaten je **Brick** (Server/Knoten) | * **''write-perf''** - Anzahl der höchsten Schreib-Zugriffe, Performancedaten je **Brick** (Server/Knoten) |
| |
Der Befehl ist immer wie folgt aufgebaut: | Der Befehl ist immer wie folgt aufgebaut: |
</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> |
==== 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 |
===== Performance ===== | ===== Performance ===== |
| |
Nachfolgend soll eine **kleine** Performance-Messung durchgeführt werden, in dem eine **100 MegaByte**-Datei, einmal auf einem der beiden Client/Knoten (ha-node-01 und ha-node-02) | 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** | * **lokalem** |
und auf dem | und auf dem |
* **GlusterFS** | * **GlusterFS** |
Dateisystem erstellt wird und hier eine Messung der Performance erfolgt. | Dateisystem erstellt wird und eine Messung der dafür benötigten Zeit durchgeführt wird. |
| |
**Erstellung einer 100 MegaByte-Datei auf einem lokalem Dateisystem**: | **Erstellung einer 100 MegaByte großen Datei auf einem lokalem Dateisystem**: |
<code> | <code> |
# time dd if=/dev/zero of=/tmp/100MBfile bs=1024 count=102400 | # time dd if=/dev/zero of=/tmp/100MBfile bs=1024 count=102400 |
</code> | </code> |
| |
**Erstellung einer 100 MegaByte-Datei auf einem GlusterFS Dateisystem**: | **Erstellung einer 100 MegaByte großen Datei auf einem GlusterFS Dateisystem**: |
<code> | <code> |
# time dd if=/dev/zero of=/var/www/100MBfile bs=1024 count=102400 | # time dd if=/dev/zero of=/var/www/100MBfile bs=1024 count=102400 |