Skip to content

Clarify that RWX filesystem volumes require migratable=false with dataEngine=v2#1052

Open
glovecchi0 wants to merge 4 commits into
harvester:mainfrom
glovecchi0:main
Open

Clarify that RWX filesystem volumes require migratable=false with dataEngine=v2#1052
glovecchi0 wants to merge 4 commits into
harvester:mainfrom
glovecchi0:main

Conversation

@glovecchi0
Copy link
Copy Markdown
Contributor

Problem:

When migratable=true is set, Longhorn creates a migratable RWX block volume intended for VM live migration workflows instead of a standard RWX filesystem volume.

As a result, the standard RWX filesystem sharing mechanism based on Longhorn share-manager and NFS is not used, and RWX filesystem volumes do not function as expected.

Solution:

Do not use migratable=true for standard RWX filesystem volumes. Ensure migratable is unset or explicitly set to false to enable the Longhorn share-manager and NFS-based RWX filesystem sharing layer.

…se with dataEngine=v2

Signed-off-by: Giovanni Lo Vecchio <giovanni.lovecchio@suse.com>
@glovecchi0
Copy link
Copy Markdown
Contributor Author

CC: @Vicente-Cheng , @Martin-Weiss


The `migratable=true` parameter instructs Longhorn to create a migratable RWX block volume intended for VM live migration workflows, rather than a standard RWX filesystem volume.

When `migratable=true` is set, the standard RWX filesystem sharing layer managed by Longhorn `share-manager` and NFS services is not used.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought maybe we could remove this line. Just keeping the user informed that the migratable=true would not create the RWX filesystem volume should be enough.
WDYT?

(Please apply with the following versioned document)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted the first 2 sentences.

Thank you, @Vicente-Cheng !

Signed-off-by: Giovanni Lo Vecchio <giovanni.lovecchio@suse.com>
Copy link
Copy Markdown
Contributor

@jillian-maroket jillian-maroket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review done. Please apply the suggested change to all affected versions.


:::info important

To use standard RWX filesystem volumes, `migratable` must remain unset or be explicitly set to `false`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To use standard RWX filesystem volumes, `migratable` must remain unset or be explicitly set to `false`.
To use standard RWX filesystem volumes, the `migratable` parameter must be empty or explicitly set to `false`.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, @jillian-maroket ! Thanks a lot for the review.

@Martin-Weiss
Copy link
Copy Markdown
Contributor

Could you also change this:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"

to this (adding migratable: false):

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
migratable: false
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"`

@glovecchi0
Copy link
Copy Markdown
Contributor Author

Could you also change this:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"

to this (adding migratable: false):

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
migratable: false
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"`

With the added disclosure, this change probably isn't necessary. Let's see what others say, too...

Signed-off-by: Giovanni Lo Vecchio <giovanni.lovecchio@suse.com>
Copy link
Copy Markdown
Contributor

@jillian-maroket jillian-maroket left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@jillian-maroket
Copy link
Copy Markdown
Contributor

Could you also change this:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"

to this (adding migratable: false):

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-rwx
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
migratable: false
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
  nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5"`

With the added disclosure, this change probably isn't necessary. Let's see what others say, too...

Something like this could work:

migratable: false # Must be empty or set to `false` when using standard RWX filesystem volumes

Signed-off-by: Giovanni Lo Vecchio <giovanni.lovecchio@suse.com>
@glovecchi0
Copy link
Copy Markdown
Contributor Author

migratable: false # Must be empty or set to false when using standard RWX filesystem volumes

Done! Thanks again :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants