distributed filesystem

Posted by neverset on November 16, 2020

simpliest distributed implementation is NFS with Helm chart, but there are some limitations such as share storage between pods and poor scaling ability

GlusterFS and CephFS

open-source software-defined storage (SDN) systems components:

  • Gluster Servers storage bricks
  • Gluster Clients
  • Management API abstracting low-level volumes manipulation. there is a better option named Heketi for volume management

partition disk

$ apt-get install grml-rescueboot
$ cd /boot/grml
$ wget http://download.grml.org/grml64-small_2020.06.iso
$ update-grub
#resize existing system
$ fsck.ext4 -f /dev/vda1
$ resize2fs -M /dev/vda1
$ parted /dev/vda
$ resizepart 1 30G # shrink vda1 to 30 Gb
$ mkpart gluster 30001 100% # create vda3 where vda1 ends
$ set 3 lvm on # optionally setup logical volumes
$ print # verify results
$ quit
$ ls -altr /dev/disk/* | grep <device>

Setting Up Gluster Client

$ modprobe dm_thin_pool
$ echo dm_thin_pool | tee -a /etc/modules
dm_thin_pool # verify output
#setting up a client version to server version
$ wget -O - https://download.gluster.org/pub/gluster/glusterfs/7/rsa.pub | apt-key add - # install certificate
$ echo deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/7/7.1/Debian/buster/amd64/apt buster main > /etc/apt/sources.list.d/gluster.list
$ apt-get update
$ apt-get install glusterfs-client
$ /usr/sbin/glusterfs --version

deploying server and Heketi API

topology:
    clusters:
        - nodes:
            - node:
                hostnames:
                    manage:
                    - kicksware-k8s-3pdt3
                    storage:
                    - 10.114.0.5
                zone: 1
                devices:
                - /dev/disk/gluster-disk
            - node:
                hostnames:
                    manage:
                    - kicksware-k8s-3pdt8
                    storage:
                    - 10.114.0.3
                zone: 1
                devices:
                - /dev/disk/gluster-disk
            - node:
                hostnames:
                    manage:
                    - kicksware-k8s-3pdtu
                    storage:
                    - 10.114.0.4
                zone: 1
                devices:
                - /dev/disk/gluster-disk