GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan Mengkonfigurasi Cluster SeaweedFS di Ubuntu 20.04

SeaweedFS adalah sistem file terdistribusi sumber terbuka, sederhana, dan sangat skalabel untuk menyimpan dan menyajikan miliaran file dengan cepat. Ini sangat mirip dengan sistem file lain termasuk, Ceph, GlusterFS, dan HDFS. Itu dapat dengan mudah diintegrasikan dengan cloud dan mencapai waktu akses yang cepat tanpa perubahan sisi klien. Ini memiliki serangkaian fitur yang kaya termasuk, Kegagalan server master otomatis, Kedaluwarsa TTL entri otomatis, Pemrosesan paralel, Menangani file besar dan kecil, Akses latensi rendah ke file apa pun, dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan cara mengatur cluster SeaweedFS di server Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan server Ubuntu 20.04.
  • Kata sandi root dikonfigurasi di server.

Memulai

Sebelum memulai, disarankan untuk memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya dengan perintah berikut:

apt-get update -y

Setelah semua paket diperbarui, Anda perlu menginstal beberapa dependensi lain yang diperlukan di server Anda. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

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

Setelah menginstal semua dependensi, Anda juga perlu menginstal Golang di sistem Anda. Anda dapat menginstalnya dengan perintah berikut:

apt-get install golang -y

Setelah penginstalan selesai, Anda dapat melanjutkan ke langkah berikutnya.

Instal SeaweedFS

Secara default, SeaweedFS tidak tersedia di repositori default Ubuntu 20.04. Jadi, Anda perlu mengunduh dan mengompilasinya dari sumbernya.

Pertama, unduh SeaweedFS versi terbaru dari repositori Git menggunakan perintah berikut:

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

Setelah unduhan selesai, ubah direktori ke SeaweedFS dan instal dengan perintah berikut:

cd ~/seaweedfs
make install

Perintah di atas akan menginstal biner SeaweedFS di dalam direktori ~/go/bin/. Sekarang, salin biner yang diinstal ke direktori /usr/loca/bin dengan perintah berikut:

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

Selanjutnya, verifikasi versi SeaweedFS yang terinstal dengan perintah berikut:

weed version

Anda akan mendapatkan output berikut:

version 30GB 2.14 4211601e linux amd64

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Buat File Layanan Systemd untuk Master

Pertama, Anda perlu membuat file layanan systemd untuk mengelola layanan SeaweedFS. Anda dapat membuatnya dengan menjalankan perintah berikut:

nano /etc/systemd/system/seaweedmaster.service

Tambahkan baris berikut:

[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

Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, jalankan layanan SeaweedFS dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:

systemctl start seaweedmaster
systemctl enable seaweedmaster

Anda dapat memverifikasi status master SeaweedFS dengan perintah berikut:

systemctl status seaweedmaster

Anda akan mendapatkan output berikut:

? 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>

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Buat dan Mulai Server Volume

Pada titik ini, server master dimulai dan menunggu volume. Pertama, buat dua direktori volume dengan perintah berikut:

mkdir /mnt/{vol1,vol2}

Selanjutnya, buat file layanan systemd untuk mengelola Volume1 dengan perintah berikut:

nano /etc/systemd/system/seaweedvolume1.service

Tambahkan baris berikut:

[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

Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai layanan Volume1 dan aktifkan untuk memulai saat reboot sistem:

systemctl start seaweedvolume1.service
systemctl enable seaweedvolume1.service

Anda dapat memverifikasi status layanan Volume1 dengan perintah berikut:

systemctl status seaweedvolume1

Anda akan mendapatkan output berikut:

? 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

Selanjutnya, buat file layanan systemd untuk Volume2 dengan perintah berikut:

nano /etc/systemd/system/seaweedvolume2.service

Tambahkan baris berikut:

[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

Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai layanan Volume2 dan aktifkan untuk memulai saat reboot sistem:

systemctl start seaweedvolume2.service
systemctl enable seaweedvolume2.service

Anda dapat memverifikasi status layanan Volume2 dengan perintah berikut:

systemctl status seaweedvolume2

Anda akan mendapatkan output berikut:

? 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

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Tulis File Contoh ke Volume

Pertama, Anda perlu mengirim permintaan HTTP POST, PUT, atau GET untuk mendapatkan ID file dan URL server volume. Anda dapat melakukannya dengan perintah berikut:

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

Anda akan melihat ID file dan URL server volume pada output berikut:

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

Selanjutnya, tambahkan file sampel bernama file1.png ke volume menggunakan ID file dan URL volume seperti yang ditunjukkan di bawah ini:

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

Anda akan mendapatkan output berikut:

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

Setelah file Anda diunggah ke volume, Anda dapat membacanya dengan perintah berikut:

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

Anda akan mendapatkan output berikut:

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

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Akses SeaweedFS

Anda sekarang dapat mengakses SeaweedFS menggunakan URL http://your-server-ip:8080/7.016bad1bc0 untuk melihat file yang Anda simpan di penyimpanan objek SeaweedFS:

Anda dapat melihat file yang telah Anda unggah sebelumnya di layar di atas.

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengkonfigurasi cluster SeaweedFS di server Ubuntu 20.04. Untuk informasi selengkapnya, kunjungi halaman dokumentasi SeaweedFS. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Ubuntu
  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 18.04

  2. Cara Menginstal dan Mengkonfigurasi Redmine di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Samba di Ubuntu 18.04

  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 20.04

  2. Cara Menginstal dan Mengonfigurasi Jenkins di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Askbot di Ubuntu 16.04

  1. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 14.04

  2. Cara menginstal dan mengkonfigurasi Solr 6 di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi GitLab di Ubuntu 16.04