Systemadministration

Konfiguration des Hochverfügbarkeitsspeicherservers mit Glusterfs

Konfiguration des Hochverfügbarkeitsspeicherservers mit Glusterfs

12. März 2013
von Lubos Rendek

Einführung

Unabhängig davon, ob Sie ein kleines Heimnetzwerk oder ein Enterprise -Netzwerk für ein großes Unternehmen verwalten. Es kann in Bezug auf mangelnde Speicherplatz oder ineffiziente Backup -Lösung sein. In beiden Fällen kann Glusterfs das richtige Werkzeug sein, um Ihr Problem zu beheben, da Sie Ihre Ressourcen sowohl horizontal als auch vertikal skalieren können. In diesem Handbuch konfigurieren wir den Speicher verteilter und replizierter/Spiegeldaten. Wie der Name vorschlägt, kann der verteilte Speichermodus von GlusterFS Ihre Daten gleichmäßig über mehrere Netzwerkknoten weiterverteilt werden, während ein replizierter Modus sicherstellt, dass alle Ihre Daten über alle Netzwerkknoten gespiegelt werden.

Was ist Glusterfs

Nach dem Lesen der Einführung sollten Sie bereits eine faire Idee haben, was glusterfs ist. Sie können es sich als einen Aggregationsdienst für all Ihren leeren Speicherplatz in Ihrem gesamten Netzwerk vorstellen. Es verbindet alle Knoten mit der Glusterfs -Installation über TCP oder RDMA, die eine einzelne Speicherressource erstellen, die alle verfügbaren Festplattenspeicher in ein einzelnes Speichervolumen kombiniert ( verteilt Modus) oder verwendet das Maximum des verfügbaren Speicherplatzes für alle Notizen, um Ihre Daten zu spiegeln ( repliziert Modus). Daher besteht jedes Volumen aus mehreren Knoten, die in der Glusterfs -Terminologie genannt werden Ziegel.

Vorläufige Annahmen

Obwohl Glusterfs durch installierte und verwendet werden für jede Linux -Verteilung, wird dieser Artikel in erster Linie Ubuntu Linux verwendet. Sie sollten jedoch in der Lage sein, diesen Leitfaden für jede Linux -Verteilung wie Redhat, Fedora, Suse usw. zu verwenden. Der einzige Teil, der unterschiedlich sein wird.

Darüber hinaus verwendet dieser Leitfaden 3 Beispiel -Hostnamen:

Verwenden Sie die Datei DNS Server oder /etc /hosts, um Ihre Hostnamen zu definieren, und passen Sie Ihr Szenario an diese Anleitung an.

Glusterfs Installation

Der GlusterFS -Server muss auf allen Hosts installiert werden, die Sie zu Ihrem endgültigen Speichervolumen hinzufügen möchten. In unserem Fall wird es Speicher sein.Server1 und Speicher.Server2. Sie können Glusterfs als einzelne Server und eine Client -Verbindung verwenden, um als NFS -Server zu fungieren. Der wahre Wert von glusterfs besteht jedoch darin, mehrere Serverhosts zu verwenden, um als eins zu fungieren. Verwenden Sie den folgenden Linux -Befehl auf beiden Servern, um den GlusterFS -Server zu installieren:

Lagerung.Server1 $ sudo apt-get install glusterfs-server

Und

Lagerung.Server2 $ sudo apt-Get Installieren Sie glusterfs-server

Die oben genannten Befehle installieren und starten glusterfs-server auf beiden Systemen. Bestätigen Sie, dass beide Server mit:

$ sudo service glusterfs-server Status

Verteilte Speicherkonfiguration

Zuerst erstellen wir ein verteiltes Glusterfs -Volumen. Im verteilten Modus verteilen GlusterFs gleichmäßig alle Daten auf alle verbundenen Ziegel auf. Wenn beispielsweise Clients Datei Datei1, Datei2, Datei3 und Datei4 in ein GlusterFS -Verzeichnis schreiben, dann Server.Storage1 enthält Datei1 und Datei2 und Server.Storage2 erhält Datei3 und Datei4. Dieses Szenario wird unter Verwendung des folgenden Diagramms dargestellt.

Peer -Sonde

Zunächst müssen wir beide Glusterfs -Server dazu bringen, miteinander zu sprechen, was bedeutet, dass wir effektiv einen Pool vertrauenswürdiger Server erstellen.

Lagerung.Server1 $ sudo gluster Peer Probe Speicher.Server2
Sonde erfolgreich

Der obige Befehl fügt Speicher hinzu.Server2 zu einem vertrauenswürdigen Serverpool. Diese Einstellungen werden über alle angeschlossenen Server repliziert, sodass Sie den obigen Befehl nicht auf anderen Diensten ausführen müssen. Inzwischen haben beide Server die Peer -Konfigurationsdatei ähnlich wie unten:

$ cat/etc/glusterd/peers/951b8732-42f0-42e1-A32F-0E1C4BAEC4F1
UUID = 951B8732-42F0-42E1-A32F-0E1C4BAEC4F1
Zustand = 3
Hostname1 = Speicher.Server2

Speichervolumen erstellen

Als nächstes können wir beide Server verwenden, um ein neues Speichervolumen zu definieren, das aus zwei Ziegeln besteht, eines für jeden Server.

Lagerung.Server1 $ sudo gluster Volume Erstellen Sie Dist-Vol-Speicher.Server1:/dist-data \ Speicherplatz.server2:/dist-data
Die Schaffung von Volumen dist-vol war erfolgreich. Bitte starten Sie das Volumen, um auf Daten zuzugreifen.

Der obige Befehl erstellte ein neues Volumen namens Dist-Vol, das aus zwei Ziegeln bestand. Wenn Verzeichnis /Dist-Daten nicht existiert, wird es auch auf beiden Servern durch den obigen Befehl erstellt. Wie bereits erwähnt, können Sie dem Volumen nur einen Ziegelstein hinzufügen und so den Clusterfs -Server als NFS -Server fungieren lassen. Sie können überprüfen, ob Ihr neues Volumen erstellt wurde von:

$ sudo gluster Volumen info dist-vol
Volumenname: dist-vol
Typ: Verteilen
Status: Erstellt
Anzahl der Ziegel: 2
Transporttyp: TCP
Ziegel:
Brick1: Lagerung.Server1:/dist-data
Brick2: Lagerung.server2:/dist-data

Speichervolumen starten

Jetzt sind wir bereit, Ihr neues Volumen zu beginnen:

Lagerung.Server1 $ sudo gluster Volumen starten Sie dist-vol
Der Startvolumen dist-vol war erfolgreich
Lagerung.Server1 $ sudo gluster Volumen info dist-vol
Volumenname: dist-vol
Typ: Verteilen
Status: Start
Anzahl der Ziegel: 2
Transporttyp: TCP
Ziegel:
Brick1: Lagerung.Server1:/dist-data
Brick2: Lagerung.server2:/dist-data

Dadurch wird eine Konfiguration des Glusterfs -Datenservers im verteilten Modus abgeschlossen. Das Endergebnis sollte ein neues verteiltes Volumen sein, das als Dist-Vol bezeichnet wird und aus zwei Ziegeln besteht.

Client einrichten

Nachdem wir ein neues Glusterfs -Volumen erstellt haben, können wir den Glusterfs -Client verwenden, um dieses Volumen an allen Hosts zu montieren. Melden Sie sich beim Client -Host an und installieren Sie den Glustefs -Client:

Lagerung.Client $ sudo apt-Get Installieren Sie Glusterfs-Client

Erstellen Sie als nächstes einen Mountspunkt, an dem Sie Ihr neues Dist-Vol-Glusterfs-Volumen montieren, z. B. Exportdistel:

Lagerung.Kunde $ sudo mkdir /exportdist

Jetzt können wir das Dist-Vol-Glusterfs-Volumen mit dem montieren montieren Befehl:

Lagerung.Client $ sudo montage -t glusterfs speicher.Server1: Dist-Vol /Exportdist

Alle schreien bereit. Benutze die montieren Befehl, um festzustellen, ob Sie das Glusterfs -Volumen korrekt montiert haben:

$ montage | Grep Glusterf

Testen von glusterfs verteilter Konfiguration

Alles ist fertig, damit wir einige Tests beginnen können. Auf der Client -Seitenkiste 4 -Dateien im glusterfs montierten Verzeichnis:

Lagerung.Client $ touch /export-dist /file1 Datei2 Datei3 Datei444

Die Glusterfs nehmen nun alle Dateien auf und verteilt sie gleichmäßig unter allen Ziegeln im Dist-VOL-Volumen. Daher Speicher.Server1 enthält:

Lagerung.server1 $ ls /dist-data /
Datei3 Datei4

und Speicherung.Server2 enthält:

Lagerung.Server2 $ ls /dist-data
Datei1 Datei2

Natürlich können Ihre Ergebnisse unterschiedlich sein.

Replizierte Speicherkonfiguration

Das Verfahren zum Erstellen eines replizierten Glusterfs -Volumes ähnelt dem zuvor erläuterten verteilten Volumen. Tatsächlich ist der einzige Unterschied die Art und Weise, wie das Clusterfs -Volumen erstellt wird. Aber gehen wir von Anfang an wieder:

Peer -Sonde

Zunächst müssen wir beide Glusterfs -Server dazu bringen, miteinander zu sprechen, was bedeutet, dass wir effektiv einen Pool vertrauenswürdiger Server erstellen.

Lagerung.Server1 $ sudo gluster Peer Probe Speicher.Server2
Sonde erfolgreich

Wenn dies bereits erledigt ist, können Sie diesen Schritt überspringen.

Speichervolumen erstellen

In diesem Schritt müssen wir ein Replikatvolumen erstellen.

$ sudo gluster Volumen erstellen repl-vol replica 2 \ Storage.Server1:/replata Speicher.Server2:/Repl-Data Erstellung von Volume Repl-VOL war erfolgreich. Bitte starten Sie das Volumen, um auf Daten zuzugreifen. 

Grundlegende Übersetzung des obigen Befehls könnte sein, dass wir ein repliziertes Volumen (Replica) namens Repl-Vol erstellt haben . Die Nummer 2 im Befehl gibt die Streifenzahl an, was bedeutet, dass wir beim Erweitern dieses Volumens immer die Anzahl der Ziegel hinzufügen müssen, die dem Vielfachen der Lautstärkezahl entspricht (2, 4, 8 16 usw.).

Speichervolumen starten

Es ist Zeit, unser neues repliziertes Volumen zu beginnen:

$ sudo gluster Volumen starten Sie repl-vol
Das Startvolumen-Repl-Vol war erfolgreich

Überprüfen Sie den Status:

Lagerung.server1 $ sudo gluster volumen info repl-vol
Volumenname: repl-vol
Typ: Replikate
Status: Start
Anzahl der Ziegel: 2
Transporttyp: TCP
Ziegel:
Brick1: Lagerung.server1:/replata
Brick2: Lagerung.server2:/replata

Client einrichten

Die Client -Konfiguration entspricht beim Einrichten des Clients für die verteilte Volumenmontage.

Client installieren:

Lagerung.Client $ sudo apt-Get Installieren Sie Glusterfs-Client

Erstellen Sie einen Mountspunkt:

Lagerung.Client $ sudo mkdir /export-repl

Montieren Sie das Volumen von Repl-Vol Glusterfs mit dem montieren Befehl:

Lagerung.Client $ sudo montage -t glusterfs speicher.Server1: Repl-Vol /Export-Repl

Alle schreien jetzt bereit. Benutze die montieren Befehl, um festzustellen, ob Sie das Glusterfs -Volumen korrekt montiert haben:

$ montage | Grep Glusterf

Testen von glusterfs replizierte Konfiguration

Der Punkt des replizierten Glusterfs -Volumes ist, dass Daten nahtlos über alle Knoten gespiegelt werden. Somit beim Erstellen von Dateien in /export-repl / /

$ touch /export-repl /file1 Datei2 Datei3 Datei444

Alle Dateien sind auf beiden Servern verfügbar:

Lagerung.Server1 $ ls /repl-data /
Datei1 Datei2 Datei3 Datei44

Und

Lagerung.server2 $ ls /repl-data /
Datei1 Datei2 Datei3 Datei44

Erweiterung von Glusterfs Volumes

Für den Fall, dass Sie Ihre Datenspeicherung so skalieren müssen, dass zusätzliche Ziegel einbezogen werden, ist der Vorgang einfach:

$ sudo gluster Volumen Add-Brick Rep-Vol Speicherplatz.Server3:/repl-vol Speicherung.Server4: Repl-Vol /Export-Repl

Dadurch werden zwei weitere Lagersteine ​​zu Ihrem Repl-Vol verleiht. Sobald Sie neue Ziegel hinzufügen, müssen Sie möglicherweise das gesamte Volumen ausbilden, wobei:

$ sudo gluster Volume Rebalance Repl-Vol Fix-Layout-Start

und synchronisieren / migrieren Sie alle Daten mit:

$ sudo gluster Volumenausgleich Repl-Vol Migrate-Data Start

Darüber hinaus können Sie den Neuausgleichsfortschritt mit überprüfen

$ sudo gluster Volumenausgleich Vol0 Status

Sicherheitseinstellungen

Zusätzlich zu der oben genannten Konfiguration können Sie das gesamte Volumen sicherer machen, indem nur bestimmte Hosts dem Vertrauensbecken beitreten können. Zum Beispiel, wenn wir nur den Host mit 10 wollen.1.1.10 Um an dem Volume Repl-VOL teilzunehmen, verwenden wir den folgenden Linux-Befehl:

$ sudo Gluster Volume Set Repl-Vol Auth.zulassen 10.1.1.10

Für den Fall, dass wir das gesamte Subnetz benötigen, verwenden Sie einfach Sternchen:

$ sudo Gluster Volume Set Repl-Vol Auth.zulassen 10.1.1.*

Abschluss

Glusterfs ist eine lizenzierte GPL3 -Software. Man kann es auch als Schnellsoftware -RAID 1 verwenden, indem zwei separate physische Gerätesteine ​​auf dem einzelnen Host in das replizierte Glusterfs -Volumen definiert werden. Natürlich wäre es besser, den Software -Überfall für diesen Job zu verwenden, aber die Möglichkeit ist immer noch da. Ich fand Glusterfs einfach zu verwenden und zu konfigurieren.

Anhang

Hier werde ich nur einige Fehler und Antworten auflisten, die ich beim Spielen mit Glusterfs begegnet bin:

Falsche Anzahl von Ziegeln

Falsche Anzahl von Ziegeln, die 1 für Typ Replicate mit Count 2 geliefert wurden

Wenn Sie ein Volumen mit Stripe Count 2 erstellt haben, müssen Sie zu diesem Zeitpunkt mindestens 2 zusätzliche Steine ​​hinzufügen.

Hostspeicher.Server1 kein Freund

Hostspeicher.Server1 kein Freund

Fügen Sie zuerst den Glusterfs -Server zum Vertrauenspool hinzu, bevor Sie versuchen, ihn in die Lautstärke einzubeziehen.

Automatische HTML -Formulare mit wwwmechanize
Hier ist ein kurzer Tipp, wie Sie mithilfe einer Linux -Befehlszeile und Perl -Skript automatisch ein HTML -Formular einreichen können. Für dieses Bei...
Setzen Sie einen Keks mit Perl und CGI ein und holen Sie sie
Es gibt mehrere Parameter, die beim Erstellen eines Cookie festgelegt werden können. Dies gilt nicht nur für Perl und CGI, sondern für alle anderen En...
Fatal ERROR BAD Primärpartition 0 Partition endet im endgültigen Teilzylinder
Fataler Fehler Schlechte Primärpartition 0 Die Partition endet im endgültigen Teilzylinder Dieser Fehler tritt auf, wenn CFDisk versucht, eine Partiti...