Listing 7
# gluster volume create volpi replica 3 transport tcp cluster01:/export/brick cluster02:/export/brick cluster03:/export/brick volume create: volpi: success: please start the volume to access data
Um auf das neu erstellte Volume zuzugreifen, starten Sie es nun (Listing 8, erstes Kommando). Jetzt sollten Sie noch einen Blick auf das Volume werfen, um zu wissen, ob es ihm gut geht (zweites und drittes Kommando). Um das Volume zu verwenden, binden Sie es einfach von einem Client aus mit dem folgenden Befehl ein:
$ sudo mount -t glusterfs cluster01:/volpi /mnt/gluster/
Achten Sie darauf, dass auf jedem Knoten exakt dieselbe Version von GlusterFS installiert ist. Es besteht nun die Möglichkeit, auf dem gemounteten Dateisystem zu arbeiten wie auf jedem anderen Laufwerk. Damit ist der erste Teil des Experiments abgeschlossen.
Listing 8
# gluster volume start volpi volume start: volpi: success # gluster volume status volpi Status of volume: volpi Gluster process Port Online Pid ----------------------------------------------------------- Brick cluster01:/export/brick 49152 Y 7324 Brick cluster02:/export/brick 49152 Y 2738 Brick cluster03:/export/brick 49152 Y 6496 NFS Server on localhost 2049 Y 7336 Self-heal Daemon on localhost N/A Y 7340 NFS Server on cluster02 2049 Y 2750 Self-heal Daemon on cluster02 N/A Y 2754 NFS Server on cluster03 2049 Y 6508 Self-heal Daemon on cluster03 N/A Y 6512 There are no active volume tasks # gluster volume info volpi Volume Name: volpi Type: Replicate Volume ID: b66888e7-903c-4a93-93c4-3c953cf9bb2e Status: Started Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: cluster01:/export/brick Brick2: cluster02:/export/brick Brick3: cluster03:/export/brick
Geo-Replikation
Das Cluster-Filesystem benötigt auf jeden Fall eine extrem schnelle Netzwerkverbindung zwischen den einzelnen Knoten, um diese untereinander synchron zu halten. Ein normaler DSL-Anschluss mit seinen eher bescheidenen Upload-Raten eignet sich für einen über das Internet verteilten Cluster eigentlich nicht.
Allerdings gibt es eine Alternative, um Daten wenigstens in eine Richtung synchron zu halten: die Geo-Replikation. Sie ermöglicht, einen kompletten Cluster zu kopieren und die Kopie synchron zu halten. Das Verfahren eignet sich für ein Backup oder einen Umzug der Server.
Um eine solche Replikation einzurichten, erzeugen Sie auf dem Master ein SSH-Schlüsselpaar und übertragen den Public Key auf den Zielrechner. Verwenden Sie dabei kein Passwort, indem Sie bei den entsprechenden Abfragen (Listing 9, Zeile 5 und 6) die Eingabetaste betätigen. Anschließend testen Sie die Verbindung mit den folgenden Kommandos:
$ ssh root@cluster04 -i /var/lib/glusterd/geo-replication/secret.pem
Anschließend beginnen Sie damit, den lokalen Cluster zu replizieren. Dabei sollte SSH kein Passwort abfragen – anderenfalls haben Sie etwas falsch konfiguriert.
Listing 9
$ ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem Generating public/private rsa key pair. /var/lib/glusterd/geo-replication/secret.pem already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/glusterd/geo-replication/secret.pem. Your public key has been saved in /var/lib/glusterd/geo-replication/secret.pem.pub. The key fingerprint is: 51:1b:67:4a:cf:56:04:7b:19:e1:89:ac:26:01:b4:c2 root@cluster01 The key's randomart image is: +--[ RSA 2048]----+ | .o + +o=. | | . o o X = + | | E . o o B = | | . o o . | | S o | | o | | | | | | | +-----------------+ $ ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub root@cluster04 root@cluster04's password: Now try logging into the machine, with "ssh 'root@cluster04'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Die Geo-Replikation darf als Ziel ein Dateisystem oder wieder ein Volume verwenden. Um die Kopie auf cluster04 später zu mounten, erstellen Sie ein lokales Volume auf dem Rechner. Der Einfachheit halber heißt es im Test ebenfalls volpi (Listing 10, Zeile 1 bis 4). Anschließend starten Sie die Replikation (Zeile 5 und 6). Ob alles glatt lief, prüfen Sie mit dem entsprechenden Befehl (Zeile 7 bis 10). Ein ls auf cluster04 bestätigt den Erfolg (Listing 11).
Listing 10
# gluster volume create volpi transport tcp cluster04:/export/brick volume create: volpi: success: please start the volume to access data # gluster volume start volpi volume start: volpi: success # gluster volume geo-replication volpi cluster04:volpi start Starting geo-replication session between volpi & cluster04:/export/brick has been successful # gluster volume geo-replication volpi cluster04:volpi status NOD MASTER SLAVE STATUS ---------------------------------------------------- cluster01 volpi cluster04:volpi OK
Listing 11
# ls /export/brick -la total 16 drwxr-xr-x 3 root root 4096 Oct 7 12:23 . drwxr-xr-x 4 root root 4096 Oct 7 11:50 .. drwxr-xr-x 4 root root 4096 Oct 7 12:22 clients -rw-r--r-- 1 root root 104857600 Oct 7 08:37 test
An dieser Stelle sei auf die Dokumentation von GlusterFS verwiesen. Es ist ein sehr mächtiges Werkzeug, mit dem Sie Hochverfügbarkeit von Dateisystemen selbst in komplexen Umgebungen herstellen. Allerdings lohnt sich die Überlegung, schnellere Banana Pis [3] oder Cubieboards [4] statt der RasPis einzusetzen.
Apache aufsetzen
Bevor Sie mit der Installation des Webservers weitermachen, gilt es erst einmal, auf dem Root-Dateisystem etwas Platz zu schaffen. Mit dem Kommando aus der ersten Zeile von Listing 12 entfernen Sie Software, die Sie für den aktuellen Einsatz nicht benötigen.





