Bug 2040647 - [IBM vpc block csi driver] block volume expansion no need to expansion filesystem on the node
Summary: [IBM vpc block csi driver] block volume expansion no need to expansion filesy...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Storage
Version: 4.10
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: ---
Assignee: OpenShift Storage Bugzilla Bot
QA Contact: Chao Yang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-01-14 11:04 UTC by Chao Yang
Modified: 2023-02-10 16:38 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-02-10 16:38:39 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Chao Yang 2022-01-14 11:04:03 UTC
Description of problem:
Block volume expansion no need to expansion filesystem on the node
Version-Release number of selected component (if applicable):
4.10.0-0.nightly-2022-01-11-065245

How reproducible:
Always

Steps to Reproduce:
1.Create storageclass
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2022-01-14T03:09:17Z"
  name: demo-storageclass
  resourceVersion: "459819"
  uid: defa1b7b-dd0f-405e-900d-ef4154b84687
parameters:
  csi.storage.k8s.io/fstype: xfs
  profile: 10iops-tier
provisioner: vpc.block.csi.ibm.io
reclaimPolicy: Retain
volumeBindingMode: Immediate
2.Create pvc/pod

3.Expand the volume
4.oc describe pvc
Name:          my-pvc
Namespace:     resizeblock
StorageClass:  demo-storageclass
Status:        Bound
Volume:        pvc-aa58593f-fffb-4619-83e9-ece86a5364ba
Labels:        <none>
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      14Gi
Access Modes:  RWO
VolumeMode:    Block
Used By:       pod-with-block
Events:
  Type     Reason                      Age                  From                                                                                                    Message
  ----     ------                      ----                 ----                                                                                                    -------
  Normal   Provisioning                170m                 vpc.block.csi.ibm.io_ibm-vpc-block-csi-controller-5dc949cf6-qchpq_b20a7a28-15a6-46ba-87b4-8d9aca9e19f0  External provisioner is provisioning volume for claim "resizeblock/my-pvc"
  Normal   ExternalProvisioning        170m (x3 over 170m)  persistentvolume-controller                                                                             waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator
  Normal   ProvisioningSucceeded       170m                 vpc.block.csi.ibm.io_ibm-vpc-block-csi-controller-5dc949cf6-qchpq_b20a7a28-15a6-46ba-87b4-8d9aca9e19f0  Successfully provisioned volume pvc-aa58593f-fffb-4619-83e9-ece86a5364ba
  Normal   Resizing                    167m                 external-resizer vpc.block.csi.ibm.io                                                                   External resizer is resizing volume pvc-aa58593f-fffb-4619-83e9-ece86a5364ba
  Warning  ExternalExpanding           167m                 volume_expand                                                                                           Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.
  Normal   FileSystemResizeRequired    166m                 external-resizer vpc.block.csi.ibm.io                                                                   Require file system resize of volume on node
  Normal   FileSystemResizeSuccessful  165m                 kubelet                                                                                                 MountVolume.NodeExpandVolume succeeded for volume "pvc-aa58593f-fffb-4619-83e9-ece86a5364ba"


Actual results:
  Normal   FileSystemResizeRequired    166m                 external-resizer vpc.block.csi.ibm.io                                                                   Require file system resize of volume on node

Expected results:
Filesystem resize is not required on block type pvc.

aws-ebs-csi-driver fixed:
https://github.com/kubernetes-sigs/aws-ebs-csi-driver/pull/916/files
nodeExpansionRequired := true
    // if this is a raw block device, no expansion should be necessary on the node
    cap := req.GetVolumeCapability()
    if cap != nil && cap.GetBlock() != nil {
        nodeExpansionRequired = false
    }


Master Log:

Node Log (of failed PODs):

PV Dump:

PVC Dump:

StorageClass Dump (if StorageClass used by PV/PVC):

Additional info:

Comment 2 Jonathan Dobson 2022-03-11 15:20:06 UTC
Derek filed a PR upstream, but CI is failing for some reason. This needs some follow-up.
https://github.com/kubernetes-sigs/ibm-vpc-block-csi-driver/pull/69

Comment 3 Jan Safranek 2022-03-11 16:21:48 UTC
I am going to reassign it to IBM.

First question, does your CSI driver to do anything on a node to resize a block volume? Usually, such volumes are resized by ControllerExpandVolume call and there is nothing to do on a node, but maybe your driver needs to rescan iSCSI to get the updated size of the device or something like that.

Secondly, can you help us with the PR? CI is not telling us what's wrong with it.

Comment 4 Arashad Ahamad 2022-03-15 12:30:11 UTC
@jsafrane

VPC does not support offline expansion it means that POD need to use pvc to expand pvc after using it once POD/application use PVC then its formatted hence resize fs is required from node server.

It looks to be similar to offline expansion which is not supported, duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=2059593


Note You need to log in before you can comment on or make changes to this bug.