GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie den SeaweedFS-Cluster unter Ubuntu 20.04

SeaweedFS ist ein einfaches und hochskalierbares verteiltes Open-Source-Dateisystem zum schnellen Speichern und Bereitstellen von Milliarden von Dateien. Es ist anderen Dateisystemen sehr ähnlich, einschließlich Ceph, GlusterFS und HDFS. Es kann einfach in die Cloud integriert werden und erreicht sowohl eine schnelle Zugriffszeit als auch ohne clientseitige Änderungen. Es verfügt über eine Vielzahl von Funktionen, darunter automatisches Master-Server-Failover, automatischer Ablauf der TTL-Eingabe, parallele Verarbeitung, Handhabung großer und kleiner Dateien, Zugriff auf beliebige Dateien mit geringer Latenz und vieles mehr.

In diesem Tutorial zeigen wir Ihnen, wie Sie den SeaweedFS-Cluster auf einem Ubuntu 20.04-Server einrichten.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04-Server ausgeführt wird.
  • Auf dem Server ist ein Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald alle Pakete aktualisiert sind, müssen Sie einige andere erforderliche Abhängigkeiten auf Ihrem Server installieren. Sie können alle installieren, indem Sie den folgenden Befehl ausführen:

apt-get install build-essential autoconf automake gdb git libffi-dev zlib1g-dev libssl-dev unzip -y

Nachdem Sie alle Abhängigkeiten installiert haben, müssen Sie auch Golang in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

apt-get install golang -y

Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

Installieren Sie SeaweedFS

Standardmäßig ist das SeaweedFS nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Sie müssen es also von der Quelle herunterladen und kompilieren.

Laden Sie zunächst die neueste Version von SeaweedFS aus dem Git-Repository mit dem folgenden Befehl herunter:

git-Klon https://github.com/chrislusf/seaweedfs.git

Wechseln Sie nach Abschluss des Downloads in das Verzeichnis SeaweedFS und installieren Sie es mit dem folgenden Befehl:

cd ~/seaweedfs
make install

Der obige Befehl installiert die SeaweedFS-Binärdatei im Verzeichnis ~/go/bin/. Kopieren Sie nun die installierte Binärdatei mit dem folgenden Befehl in das Verzeichnis /usr/loca/bin:

cp ~/go/bin/weed /usr/local/bin/

Überprüfen Sie als Nächstes die installierte Version von SeaweedFS mit dem folgenden Befehl:

Unkrautversion

Sie sollten die folgende Ausgabe erhalten:

Version 30GB 2.14 4211601e Linux amd64

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Erstellen Sie eine Systemd-Dienstdatei für Master

Zuerst müssen Sie eine systemd-Dienstdatei erstellen, um den SeaweedFS-Dienst zu verwalten. Sie können es erstellen, indem Sie den folgenden Befehl ausführen:

nano /etc/systemd/system/seaweedmaster.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]Description=SeaweedFS MasterAfter=network.target[Service]Type=simpleUser=rootGroup=rootExecStart=/usr/local/bin/weed masterWorkingDirectory=/usr/local/bin/SyslogIdentifier=seaweedfs-master[Installieren] WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den SeaweedFS-Dienst und aktivieren Sie ihn mit dem folgenden Befehl, damit er beim Systemneustart startet:

systemctl start seaweedmaster
systemctl enable seaweedmaster

Sie können den Status des SeaweedFS-Masters mit dem folgenden Befehl überprüfen:

systemctl status seaweedmaster

Sie sollten die folgende Ausgabe erhalten:

? seaweedmaster.service - SeaweedFS Master Geladen:geladen (/etc/systemd/system/seaweedmaster.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mi 2020-12-09 08:30:06 UTC; vor 3s Haupt-PID:25740 (Weed) Tasks:10 (Limit:4691) Speicher:8,0 MB CGroup:/system.slice/seaweedmaster.service ??25740 /usr/local/bin/weed masterDec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 master_server.go:107] Volume-Größenbeschränkung ist 30000 MBDec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 master_server.go :192] adminScripts:Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 master.go:122] Starten Sie Seaweed Master 30GB 2.14 4211601e at 0.0.0.0:9333Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 raft_server.go:70] Starten von RaftServer mit 69.87.216.36:9333Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 raft_server.go:129] aktueller Cluster-Leader:Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:06 25740 master.go:146] Starte Seaweed Master 30GB 2.14 4211601e grpc server at>Dec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]:I1209 08 :30:08 25740 masterclient.go:78] Kein vorhandener Leader gefunden!Dec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:08 25740 raft_server.go:154] Neuen Cluster initialisierenDec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:08 25740 master_server.go:141] Leader Change Event:=> 69.87.216.36:9333Dec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]:I1209 08:30:08 25740 master_server.go:143] [ 69.87.216.36:9333 ] 69.87.216.36:9333 wird zu>

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Volume-Server erstellen und starten

An diesem Punkt wird der Master-Server gestartet und wartet auf die Volumes. Erstellen Sie zunächst zwei Volume-Verzeichnisse mit dem folgenden Befehl:

mkdir /mnt/{vol1,vol2}

Erstellen Sie als Nächstes eine systemd-Dienstdatei, um Volume1 mit dem folgenden Befehl zu verwalten:

nano /etc/systemd/system/seaweedvolume1.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]Description=SeaweedFS VolumeAfter=network.target[Service]Type=simpleUser=rootGroup=rootExecStart=/usr/local/bin/weed volume -dir="/mnt/vol1" -max=10 -mserver="69.87.216.36:9333" -port=8081WorkingDirectory=/usr/local/bin/SyslogIdentifier=seaweedfs-volume[Install]WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den Volume1-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:

systemctl start seaweedvolume1.service
systemctl enable seaweedvolume1.service

Sie können den Status des Volume1-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status seaweedvolume1

Sie sollten die folgende Ausgabe erhalten:

? seaweedvolume1.service - Geladenes SeaweedFS-Volume:geladen (/etc/systemd/system/seaweedvolume1.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mi 09.12.2020 08:31:14 UTC; Vor 4s Haupt-PID:25870 (Weed) Aufgaben:9 (Limit:4691) Speicher:7,3 MB CGroup:/system.slice/seaweedvolume1.service ??25870 /usr/local/bin/weed volume -dir=/mnt/vol1 -max=10 -mserver=69.87.216.36:9333 -port=8081Dec 09 08:31:14 ubuntu2004 systemd[1]:Started SeaweedFS Volume.Dec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]:I1209 08:31:14 25870 file_util.go:23] Ordner /mnt/vol1 Berechtigung:-rwxr-xr-xDec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]:I1209 08:31:14 25870 disk_location.go:154] Store gestartet auf dir:/mnt/vol1 mit 0 Volumes>Dec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]:I1209 08:31:14 25870 disk_location.go:157] Store gestartet auf dir:/mnt/vol1 with 0 ec shardsDec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]:I1209 08:31:14 25870 volume_grpc_client_to_master.go:52] Volume server start with seed mas>Dec 09 08:31:14 ubuntu2004 seaweedfs-volume[ 25870]:I1209 08:31:14 25870 volume.go:334] Seaweed Volume Server 30GB 2.14 4211601e unter 0.0.>De starten c 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]:I1209 08:31:14 25870 volume_grpc_client_to_master.go:114] Heartbeat to:69.87.216.36:9333

Erstellen Sie als Nächstes mit dem folgenden Befehl eine systemd-Dienstdatei für Volume2:

nano /etc/systemd/system/seaweedvolume2.service

Fügen Sie die folgenden Zeilen hinzu:

[Unit]Description=SeaweedFS VolumeAfter=network.target[Service]Type=simpleUser=rootGroup=rootExecStart=/usr/local/bin/weed volume -dir="/mnt/vol2" -max=5 -mserver="69.87.216.36:9333" -port=8080WorkingDirectory=/usr/local/bin/SyslogIdentifier=seaweedfs-volume2[Install]WantedBy=multi-user.target

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starten Sie als Nächstes den Volume2-Dienst und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:

systemctl start seaweedvolume2.service
systemctl enable seaweedvolume2.service

Sie können den Status des Volume2-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status seaweedvolume2

Sie sollten die folgende Ausgabe erhalten:

? seaweedvolume2.service – SeaweedFS-Volume geladen:geladen (/etc/systemd/system/seaweedvolume2.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Mi 2020-12-09 08:32:03 UTC; Vor 4s Haupt-PID:25921 (Weed) Aufgaben:10 (Limit:4691) Speicher:7,7 MB CGroup:/system.slice/seaweedvolume2.service ??25921 /usr/local/bin/weed volume -dir=/mnt/vol2 -max=5 -mserver=69.87.216.36:9333 -port=8080Dec 09 08:32:03 ubuntu2004 systemd[1]:Started SeaweedFS Volume.Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 file_util.go:23] Ordner /mnt/vol2 Berechtigung:-rwxr-xr-xDec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 disk_location.go:154] Store gestartet auf dir:/mnt/vol2 mit 0 Volumes>Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 disk_location.go:157] Store gestartet auf dir:/mnt/vol2 with 0 ec share> Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 volume.go:334] Starte Seaweed Volume Server 30GB 2.14 4211601e at 0.0> Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 volume_grpc_client_to_master.go:52] Volume-Server startet mit Seed ma>D ec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]:I1209 08:32:03 25921 volume_grpc_client_to_master.go:114] Heartbeat to:69.87.216.36:9333

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Schreiben Sie eine Beispieldatei auf das Volume

Zuerst müssen Sie eine HTTP-POST-, PUT- oder GET-Anforderung senden, um eine Datei-ID und eine Volume-Server-URL zu erhalten. Sie können dies mit dem folgenden Befehl tun:

curl http://localhost:9333/dir/assign

Sie sollten die Datei-ID und die Volume-Server-URL in der folgenden Ausgabe sehen:

{"fid":"7,016bad1bc0","url":"69.87.216.36:8080","publicUrl":"69.87.216.36:8080","count":1}

Fügen Sie als Nächstes eine Beispieldatei mit dem Namen file1.png zum Volume hinzu, indem Sie die Datei-ID und die Volume-URL wie unten gezeigt verwenden:

curl -F [email protected]/root/file1.png http://69.87.216.36:8080/7,016bad1bc0

Sie sollten die folgende Ausgabe erhalten:

{"name":"file1.png","size":74912,"eTag":"7a6511cbeda98ca00346544ca2968046"}

Sobald Sie eine Datei auf das Volume hochgeladen haben, können Sie sie mit dem folgenden Befehl lesen:

curl http://69.87.216.36:9333/dir/lookup?volumeId=7

Sie sollten die folgende Ausgabe erhalten:

{"volumeId":"7","locations":[{"url":"69.87.216.36:8080","publicUrl":"69.87.216.36:8080"}]}

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf SeaweedFS

Sie können jetzt über die URL http://your-server-ip:8080/7,016bad1bc0 auf SeaweedFS zugreifen, um die Datei anzuzeigen, die Sie im SeaweedFS-Objektspeicher gespeichert haben:

Sie können Ihre Datei, die Sie zuvor hochgeladen haben, im obigen Bildschirm sehen.

Schlussfolgerung

Herzliche Glückwünsche! Sie haben den SeaweedFS-Cluster erfolgreich auf dem Ubuntu 20.04-Server installiert und konfiguriert. Weitere Informationen finden Sie auf der SeaweedFS-Dokumentationsseite. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.


Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie Redis unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie Jenkins unter Ubuntu 20.04

So installieren und konfigurieren Sie OpenVAS 9 unter Ubuntu

So installieren und konfigurieren Sie Redis in Ubuntu 20.04

So installieren und konfigurieren Sie Neo4j unter Ubuntu 20.04

So installieren und konfigurieren Sie den VNC-Server unter Ubuntu 20.04

So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04

So installieren und konfigurieren Sie Nextcloud unter Ubuntu 20.04