elemental-lf / benji

Benji Backup: A block based deduplicating backup software for Ceph RBD images, iSCSI targets, image files and block devices

Home Page:https://benji-backup.me

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to use with rook-ceph ?

XtremeOwnageDotCom opened this issue · comments

Ok- I have found the documentation on how to get this up and running in k8s.

https://benji-backup.me/container.html

That part, easy enough.

I can get it up and running- however- I have no clue on how to leverage this to backup the rook-ceph rdbs and fs stores. I need.... a bit of assistance if possible.

Inside of the values.yaml- I see-

  storages:
      # Configure your external storage location here... this is just an example!
      - name: storage-1

Which, I am pretty sure is where I would configure my NFS target I would like to backup my data to.

Next down, i see...

 ios:
      - name: file
        module: file
      # The io module name must match the pool name where the persistent volumes reside.

I am going to assume, this is where I should update.... and.... not sure what I should put here. Doesn't ask for the storage class name. Should- that be the ceph pool name??

Down further, there is locations for volumes, and volume mounts. I would assume, this is where ceph config should be mounted.

  # Volumes and volume mounts can be used to mount Ceph configuration and credentials, backup sources or storages into
  # the Benji container.
  volumes:
    - name: ceph-etc
      configMap:
        name: ceph-etc
        defaultMode: 0444
    - name: ceph-client-admin-keyring
      secret:
        secretName: ceph-client-admin-keyring
        defaultMode: 0444

  volumeMounts:
    - name: ceph-etc
      mountPath: /etc/ceph/ceph.conf
      subPath: ceph.conf
      readOnly: true
    - name: ceph-client-admin-keyring
      mountPath: /etc/ceph/ceph.client.admin.keyring
      subPath: keyring
      readOnly: true

But- I have no idea as to where rook-ceph keeps that information. After looking into it, it appears a script inside of rook's container sets the data.

I could manually add/update the file- but, that leads to another question-

By default, this container, seems to use a localpath/empty folder storage. So, in the event I lost this node- This containers configuration wouldn't be retained, and I would no longer have working backups.

So- to ask in a shorter way-

How should I leverage this product, to automatically backup my k8s data, stored in rook-ceph, and store the backups onto a NFS target on my network.

I don't know your setup, but I use benji with rook-ceph successfully. You can look at my home k8s cluster repo here: https://github.com/phybros/k3s-cluster/tree/main and the benji part is here https://github.com/phybros/k3s-cluster/tree/main/cluster/apps/backup-system/benji

Thanks for the examples!