GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer le cluster SeaweedFS sur Ubuntu 20.04

SeaweedFS est un système de fichiers distribué open-source, simple et hautement évolutif pour stocker et servir rapidement des milliards de fichiers. Il est très similaire à d'autres systèmes de fichiers, notamment Ceph, GlusterFS et HDFS. Il peut être facilement intégré au cloud et atteindre à la fois un temps d'accès rapide sans aucune modification côté client. Il dispose d'un riche ensemble de fonctionnalités, notamment le basculement automatique des serveurs maîtres, l'expiration automatique de la durée de vie de l'entrée, le traitement parallèle, la gestion des fichiers volumineux et petits, l'accès à faible latence à n'importe quel fichier, et bien d'autres.

Dans ce tutoriel, nous allons vous montrer comment configurer le cluster SeaweedFS sur le serveur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant le serveur Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, il est recommandé de mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour avec la commande suivante :

apt-get update -y

Une fois tous les packages mis à jour, vous devrez installer d'autres dépendances requises sur votre serveur. Vous pouvez tous les installer en exécutant la commande suivante :

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

Après avoir installé toutes les dépendances, vous devez également installer Golang sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install golang -y

Une fois l'installation terminée, vous pouvez passer à l'étape suivante.

Installer SeaweedFS

Par défaut, SeaweedFS n'est pas disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc le télécharger et le compiler à partir de la source.

Tout d'abord, téléchargez la dernière version de SeaweedFS depuis le dépôt Git à l'aide de la commande suivante :

git clone https://github.com/chrislusf/seaweedfs.git

Une fois le téléchargement terminé, changez le répertoire en SeaweedFS et installez-le avec la commande suivante :

cd ~/seaweedfs
make install

La commande ci-dessus installera le binaire SeaweedFS dans le répertoire ~/go/bin/. Maintenant, copiez le binaire installé dans le répertoire /usr/loca/bin avec la commande suivante :

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

Ensuite, vérifiez la version installée de SeaweedFS avec la commande suivante :

weed version

Vous devriez obtenir le résultat suivant :

version 30GB 2.14 4211601e linux amd64

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Créer un fichier de service Systemd pour le maître

Tout d'abord, vous devrez créer un fichier de service systemd pour gérer le service SeaweedFS. Vous pouvez le créer en exécutant la commande suivante :

nano /etc/systemd/system/seaweedmaster.service

Ajoutez les lignes suivantes :

[Unit]
Description=SeaweedFS Master
After=network.target

[Service]
Type=simple
User=root
Group=root

ExecStart=/usr/local/bin/weed master
WorkingDirectory=/usr/local/bin/
SyslogIdentifier=seaweedfs-master

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service SeaweedFS et activez-le au redémarrage du système avec la commande suivante :

systemctl start seaweedmaster
systemctl enable seaweedmaster

Vous pouvez vérifier l'état du maître SeaweedFS avec la commande suivante :

systemctl status seaweedmaster

Vous devriez obtenir le résultat suivant :

? seaweedmaster.service - SeaweedFS Master
     Loaded: loaded (/etc/systemd/system/seaweedmaster.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-09 08:30:06 UTC; 3s ago
   Main PID: 25740 (weed)
      Tasks: 10 (limit: 4691)
     Memory: 8.0M
     CGroup: /system.slice/seaweedmaster.service
             ??25740 /usr/local/bin/weed master

Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:06 25740 master_server.go:107] Volume Size Limit is 30000 MB
Dec 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] Start Seaweed Master 30GB 2.14 4211601e at 0.0.0.0:9333
Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:06 25740 raft_server.go:70] Starting RaftServer with 69.87.216.36:9333
Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:06 25740 raft_server.go:129] current cluster leader:
Dec 09 08:30:06 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:06 25740 master.go:146] Start 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] No existing leader found!
Dec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:08 25740 raft_server.go:154] Initializing new cluster
Dec 09 08:30:08 ubuntu2004 seaweedfs-master[25740]: I1209 08:30:08 25740 master_server.go:141] leader change event:  => 69.87.216.36:9333
Dec 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 becomes>

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Créer et démarrer des serveurs de volumes

À ce stade, le serveur maître est démarré et attend les volumes. Tout d'abord, créez deux répertoires de volume avec la commande suivante :

mkdir /mnt/{vol1,vol2}

Ensuite, créez un fichier de service systemd pour gérer le Volume1 avec la commande suivante :

nano /etc/systemd/system/seaweedvolume1.service

Ajoutez les lignes suivantes :

[Unit]
Description=SeaweedFS Volume
After=network.target

[Service]
Type=simple
User=root
Group=root

ExecStart=/usr/local/bin/weed volume -dir="/mnt/vol1" -max=10 -mserver="69.87.216.36:9333" -port=8081
WorkingDirectory=/usr/local/bin/
SyslogIdentifier=seaweedfs-volume

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service Volume1 et activez-le pour qu'il démarre au redémarrage du système :

systemctl start seaweedvolume1.service
systemctl enable seaweedvolume1.service

Vous pouvez vérifier l'état du service Volume1 avec la commande suivante :

systemctl status seaweedvolume1

Vous devriez obtenir le résultat suivant :

? seaweedvolume1.service - SeaweedFS Volume
     Loaded: loaded (/etc/systemd/system/seaweedvolume1.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-09 08:31:14 UTC; 4s ago
   Main PID: 25870 (weed)
      Tasks: 9 (limit: 4691)
     Memory: 7.3M
     CGroup: /system.slice/seaweedvolume1.service
             ??25870 /usr/local/bin/weed volume -dir=/mnt/vol1 -max=10 -mserver=69.87.216.36:9333 -port=8081

Dec 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] Folder /mnt/vol1 Permission: -rwxr-xr-x
Dec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]: I1209 08:31:14 25870 disk_location.go:154] Store started on dir: /mnt/vol1 with 0 volumes >
Dec 09 08:31:14 ubuntu2004 seaweedfs-volume[25870]: I1209 08:31:14 25870 disk_location.go:157] Store started on dir: /mnt/vol1 with 0 ec shards
Dec 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] Start Seaweed volume server 30GB 2.14 4211601e at 0.0.>
Dec 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

Ensuite, créez un fichier de service systemd pour Volume2 avec la commande suivante :

nano /etc/systemd/system/seaweedvolume2.service

Ajoutez les lignes suivantes :

[Unit]
Description=SeaweedFS Volume
After=network.target

[Service]
Type=simple
User=root
Group=root

ExecStart=/usr/local/bin/weed volume -dir="/mnt/vol2" -max=5  -mserver="69.87.216.36:9333" -port=8080
WorkingDirectory=/usr/local/bin/
SyslogIdentifier=seaweedfs-volume2

[Install]
WantedBy=multi-user.target

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service Volume2 et activez-le au redémarrage du système :

systemctl start seaweedvolume2.service
systemctl enable seaweedvolume2.service

Vous pouvez vérifier l'état du service Volume2 avec la commande suivante :

systemctl status seaweedvolume2

Vous devriez obtenir le résultat suivant :

? seaweedvolume2.service - SeaweedFS Volume
     Loaded: loaded (/etc/systemd/system/seaweedvolume2.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-09 08:32:03 UTC; 4s ago
   Main PID: 25921 (weed)
      Tasks: 10 (limit: 4691)
     Memory: 7.7M
     CGroup: /system.slice/seaweedvolume2.service
             ??25921 /usr/local/bin/weed volume -dir=/mnt/vol2 -max=5 -mserver=69.87.216.36:9333 -port=8080

Dec 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] Folder /mnt/vol2 Permission: -rwxr-xr-x
Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]: I1209 08:32:03 25921 disk_location.go:154] Store started on dir: /mnt/vol2 with 0 volumes>
Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]: I1209 08:32:03 25921 disk_location.go:157] Store started on dir: /mnt/vol2 with 0 ec shar>
Dec 09 08:32:03 ubuntu2004 seaweedfs-volume2[25921]: I1209 08:32:03 25921 volume.go:334] Start 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 start with seed ma>
Dec 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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Écrire un exemple de fichier sur le volume

Tout d'abord, vous devrez envoyer une requête HTTP POST, PUT ou GET pour obtenir un ID de fichier et une URL de serveur de volume. Vous pouvez le faire avec la commande suivante :

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

Vous devriez voir l'ID de fichier et l'URL du serveur de volume dans la sortie suivante :

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

Ensuite, ajoutez un exemple de fichier nommé file1.png au volume en utilisant l'ID de fichier et l'URL du volume comme indiqué ci-dessous :

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

Vous devriez obtenir le résultat suivant :

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

Une fois que vous avez téléchargé le fichier sur le volume, vous pouvez le lire avec la commande suivante :

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

Vous devriez obtenir le résultat suivant :

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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Accéder à SeaweedFS

Vous pouvez maintenant accéder à SeaweedFS en utilisant l'URL http://your-server-ip:8080/7,016bad1bc0 pour afficher le fichier que vous avez stocké dans le magasin d'objets SeaweedFS :

Vous pouvez voir votre fichier que vous avez téléchargé plus tôt dans l'écran ci-dessus.

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès le cluster SeaweedFS sur le serveur Ubuntu 20.04. Pour plus d'informations, consultez la page de documentation de SeaweedFS. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Redis sur Ubuntu 20.04

  5. Comment installer et configurer Jenkins sur Ubuntu 20.04

Comment installer et configurer OpenVAS 9 sur Ubuntu

Comment installer et configurer Redis dans Ubuntu 20.04

Comment installer et configurer Neo4j sur Ubuntu 20.04

Comment installer et configurer le serveur VNC sur Ubuntu 20.04

Comment installer et configurer Elasticsearch sur Ubuntu 20.04

Comment installer et configurer Nextcloud sur Ubuntu 20.04