Skip to main content
  1. projects/

Unveiling the Power of SeaweedFS

timothysmith
AIMG Projects File Systems Software and Tools Virtualization
Author
Timothy Smith
Head of Infrastructure
Table of Contents

Introduction
#

Join me on a fascinating journey into the world of SeaweedFS, as I recount my experiences working with AI Media Group to harness the potential of this innovative file storage system. In this blog post, I will guide you through the installation process and share insights into creating a master server, highlighting the benefits gained and how this knowledge propels me forward in my future endeavors.

What is SeaweedFS
#

SeaweedFS is a distributed file system designed to efficiently store and manage large volumes of data across clusters of servers. It provides a simple yet powerful solution for storing files by distributing them across multiple nodes, enabling seamless scalability and fault tolerance. SeaweedFS utilizes a master-server architecture to manage metadata and coordinate storage operations, while individual volume servers handle the actual data storage. With its lightweight design and straightforward setup process, SeaweedFS is a versatile solution suitable for various applications, from content distribution to data archiving and beyond.

Installing SeaweedFS
#

The first step on this adventure is installing SeaweedFS on your system.

SeaweedFS Github Page:

Utilize the following commands to seamlessly set up SeaweedFS:

wget https://github.com/seaweedfs/seaweedfs/releases/download/3.61/linux_amd64.tar.gz
tar -xvzf linux_amd64.tar.gz
sudo mv weed /usr/local/bin

To verify the installation, run:

weed version

You should see an output similar to this:

version 30GB 3.61 linux amd64

Creating a Master Server
#

For optimal performance, it’s crucial to set up the master server on a separate machine from the volumes. Run this command to create a master server:

weed master -port=9333
Pro Tip: Remember the IP of the master server from here on I will reference it as 0.0.0.0:9333

Creating the Volume Server
#

  1. Initialize the proper directory:
sudo mkdir /path/to/your/volume/
  1. Connect a volume to the master by running the following command:
weed volume -dir=/path/to/your/volume/ -mserver=0.0.0.0:9333 -port=8101 -ip=1.1.1.1 -dataCenter=datacentername -rack=rackname -max=0
Pro Tip: 1.1.1.1 | datacentername | rackname are all a reference to items that need to be changed please change all items to whatever you like 1.1.1.1 is the volume server

Running Multiple Volume Directories
#

To enhance storage capacity, consider running more than one volume directory. Use the following commands as a template:

Using systemd to run multiple volume directories
#

Create a service named sw1.service (seaweed1 service)

To learn more about systemd and what I have done with it view my blog on Systemd

cd /etc/systemd/system
nano sw1.service
[Unit]
Description=seaweed vol service
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/root/sw1.sh
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

Create the sw1.sh (seaweed1)

cd /
nano sw1.sh
#!/bin/bash
weed volume -dir=/path/to/your/volume/ -mserver=0.0.0.0:9333 -port=8101 -ip=1.1.1.1 -dataCenter=datacentername -rack=rackname -max=0
Pro Tip: To make it more than one volume add multiple .sh and .service files

Conclusion
#

Embarking on the SeaweedFS journey has been both educational and rewarding. Through the process of installation and server setup, I’ve gained valuable insights into scalable and efficient file storage systems. This newfound knowledge not only benefits my current role at AI Media Group but also sets the stage for success in future endeavors. SeaweedFS has proven to be a powerful asset, and I’m excited to continue exploring its capabilities in the ever-evolving landscape of technology.

Related

Redis
timothysmith
AIMG Projects File Systems Networking and Servers Software and Tools Virtualization
Proxmox
timothysmith
College Projects AIMG Projects Personal Projects Automation File Systems Networking and Servers Software and Tools Tutorials and Guides Virtualization
Deploying Passbolt for a Small Business
timothysmith
AIMG Projects Networking and Servers Software and Tools Virtualization