# Longhorn distributed block storage system ## For users You should really avoid using Longhorn as it has over time [proven to be unreliable system](https://www.reddit.com/r/kubernetes/comments/1cbggo8/longhorn_is_unreliable/). Prefer using remote databases in your application via the Kubernetes operator pattern. Use Longhorn for applications that need persistent storage, but are unable to provide replication in the application layer: * Applications that insist writing into filesystem * Applications that serve Git repositories (eg Gitea) * Applications that check out Git repositories (eg Woodpecker, Drone and CI systems) * Applications that need to use SQLite Instead of using built-in `longhorn` storage class, please add new storage class with suitable replication, data locality parameters and reclaim policy [here](https://git.k-space.ee/k-space/kube/src/branch/master/storage-class.yaml) Longhorn backups are made once per day and it's configured to be uploaded to the Minio S3 bucket hosted at nas.k-space.ee ## For administrators Longhorn was last upgraded with following snippet: ``` wget https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/deploy/longhorn.yaml patch -p0 < changes.diff kubectl -n longhorn-system apply -f longhorn.yml -f application-extras.yml -f backup.yaml ``` After initial deployment `dedicated=storage:NoSchedule` was specified for `Kubernetes Taint Toleration` under `Setting -> General` on [Longhorn Dashboard](https://longhorn.k-space.ee/). Suitable nodes were tagged with `storage` and Longhorn scheduling was disabled on others. This is to prevent scheduling Longhorn data on arbitrary Kubernetes nodes as `storage[1-4].kube.k-space.ee` nodes are the ones which have additional 200G volume mounted at `/mnt/persistent/`