Skip to content

SeaweedFS

SeaweedFS is a high-performance distributed filesystem, optimized for working with huge number of files and also huge files.

The current status is experimental, use at your own risk. Don't put there any data you don't want to lose, or data you can't easily share with others.

Seaweedfs filesystem total data use

Credit: Seaweedfs data use by Dmitry Mishin

Currently available storageClasses:

StorageClass Filesystem Type Region AccessModes Storage Type Size
seaweedfs-storage-hdd SeaweedFS US West ReadWriteMany Spinning drives 24 TB
seaweedfs-storage-nvme SeaweedFS US West ReadWriteMany NVME 80 TB

Mounting

To test it, create a PersistentVolumeClaim with seaweedfs-storage-hdd storageClass:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: examplevol
spec:
  storageClassName: seaweedfs-storage-hdd
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: <volume size, f.e. 20Gi>

After you've created a PVC, you can see it's status (kubectl get pvc pvc_name). Once it has the Status Bound, you can attach it to your pod (claimName should match the name you gave your PVC):

apiVersion: v1
kind: Pod
metadata:
  name: vol-pod
spec:
  containers:
  - name: vol-container
    image: ubuntu
    args: ["sleep", "36500000"]
    volumeMounts:
    - mountPath: /examplevol
      name: examplevol
  restartPolicy: Never
  volumes:
    - name: examplevol
      persistentVolumeClaim:
        claimName: examplevol

It's also possible to access your volume via WebDAV from your local machine.

Seaweedfs also supports S3 and HadoopFS. You can request creating S3 credentials in Matrix. To use S3 with SeaweedFS, use the following endpoint:

https://swfs-s3.nrp-nautilus.io