Giter Site home page Giter Site logo

Comments (4)

WanzenBug avatar WanzenBug commented on August 16, 2024

Re Question 1: I'm not an expert in Proxmox, but essentially, your VMs will only see a generic block device. They don't see anything "outside", so they also cannot interfere with the "outer" LVM (thin) metadata. So there is nothing to "support" from Piraeus/LINSTOR side, it's just as if you attached an actual disk.

Re Question 2: In short: that is not possible. Longer answer: Fundamentally, LINSTOR creates block storage of some kind. For example that can be a LVM Thin Volume, a ZVOL, ... Piraeus can then automatically create a filesystem on that volume so it can be used as a filesystem volume in Kubernetes.

As for the workaround: It could work, but was never tested. It would introduce another layer that may impact performance. Instead of directly reading and writing to the device, you first have to go through loopdev -> filesystem -> disk. So while it could work (LINSTOR even has a storage driver based on files, which uses loopdev internally), I would no recommend it and there is no documentation for it.

Question 3: The operator will not create any storage classes. You can create the LINSTOR storage pools via the operator, then generate your own storage classes using the storage pools. For example:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: three-replicas
provisioner: linstor.csi.linbit.com
allowVolumeExpansion: true
parameters:
  autoPlace: "3"
  storagePool: $MYPOOL
  resourceGroup: three-replicas

from piraeus-operator.

immanuelfodor avatar immanuelfodor commented on August 16, 2024

Thank you for taking the time to answer, very helpful and clear explanation. I'll choose the separate disk (sdb) route then.

If I ever want to increase the available disk size (e.g., starting with 8G then increasing it to 16G, not a bound PV resize but what is available for the StorageClass to schedule), could I simply do it outside on the host without the knowledge of Linstor (resizing the disk and then extending LVM Thin), or should I do the LVM operation with the Linstor CLI? For example set-size seems related but I'm not that familiar of the CLI's capabilities (yet):

root@piraeus-op-cs-controller-7fb6c98656-zvx49:/# linstor volume-definition
usage: linstor volume-definition [-h]
                                 {create, delete, drbd-options, list,
                                 list-properties, set-property, set-size} ...
linstor volume-definition: error: too few arguments

from piraeus-operator.

WanzenBug avatar WanzenBug commented on August 16, 2024

Resize should happen on the host. Basically:

$ pvscan --cache # optional, depending on if the host uses lvmetad
$ pvresize /dev/sdb
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
$ lvextend /dev/linstor_pool/pool /dev/sdb

from piraeus-operator.

immanuelfodor avatar immanuelfodor commented on August 16, 2024

Superb, thank you! Closing this issue for now as I got all the answers that were not obvious from the existing guides. In the meantime, I managed to create and attach the new disks to the VMs, configured the satellite storagePool, Piraeus deployment works fine, just about to create the storage class and provision some volumes to pods. Exciting times ahead :)

from piraeus-operator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.