Also see #275.

Does it support xxx language?

If using , just send one HTTP POST to write, or one HTTP GET to read.

If using SeaweedFS for block storage, you may try to reuse some existing libraries.

The internal management APIs are in gRPC. You can generate the language bindings for your own purpose.

Does it support FUSE?

Yes.

How to configure volumes larger than 30GB?

Before 1.29, the maximum volume size is limited to 30GB. However, with recent larger disks, one 8TB hard drive can hold 200+ volumes. The large amount of volumes introduces unnecessary work load for master.

Since 1.29, there are separate builds, with _large_disk in the file names:

  • darwin_amd64_large_disk.tar.gz
  • linux_amd64_large_disk.tar.gz

These builds are not compatible with normal 30GB versions. The version uses 17 bytes for each file entry, while previously each file entry needs 16 bytes.

To upgrade to large disk version,

  • remove *.idx files
  • use the large-disk version, run weed fix to re-generate the files
  • start master with a larger volume size limit
  • start volume servers, with reasonable maximum number of volumes

Why my 010 replicated volume files have different size?

The volumes are consistent, but not necessarily the same size or the same number of files. This could be due to these reasons:

  • If some files are written only to some but not all of the replicas, the writes are considered failed (A best-effort attempt will try to delete the written files).
  • The compaction may not happen at exactly the same time.

How to store large logs?

The log files are usually very large. But SeaweedFS is mostly for small-to-medium large files. How to store them? "weed filer" can help.

Usually the logs are collected during a long period of time span. Let's say each day's log is about a manageable 128MB. You can store each day's log via "weed filer" under "/logs/" folder. For example:

weed mount error after restarting

If you mount SeaweedFS filer on MacOS, sometimes when restarting "weed mount -dir xxx", you may see this error:

To fix this, do mount:

That should be it!