1. 07 Feb, 2022 1 commit
    • whoami-rajat's avatar
      Cinder store: Wait for device resize · f3433ed1
      whoami-rajat authored
      When we have an image with size > 1 GB, we follow the following steps
      to accomodate the image:
      1) Detach the volume
      2) extend the volume
      3) Attach the volume
      4) Open the volume device as a file and resume writing the image
      
      Sometimes due to several reasons (mostly network related), the
      size of the device file could mismatch with the actual volume size
      (or the backend LUN size). This can happen if the extend was performed
      (i.e. the control path) but it takes the time to reflect that into
      the mapped device (i.e. the data path). This mismatch can cause the
      issue "IOError: [Errno 28] No space left on device".
      To avoid this scenario, we check if the device size is less than the
      volume size, we wait for the extended LUN to show up in mapped device
      and then continue the image writing operation.
      
      Closes-Bug: #1959913
      
      Change-Id: I206580f6be615ebc5e15b546b9c23728d4116a5d
      f3433ed1
  2. 07 Jan, 2022 1 commit
  3. 03 Jan, 2022 2 commits
    • Zuul's avatar
      Merge "nit: Correct debug log" · bd8c0ac6
      Zuul authored
      bd8c0ac6
    • whoami-rajat's avatar
      Correct attachment_complete call · e1ced9ea
      whoami-rajat authored
      Cinder's attachment_complete API is called to mark the volume from
      "attaching" state to "in-use" state stating that the volume is
      ready to use.
      In the current code, attachment_complete is called before the
      brick connection is complete. This should be done after the
      connection to brick is successful and we have a volume path
      to write the image into. This patch corrects the behavior.
      
      The wrong sequence of execution won't have any issues functionally
      since we open the volume after all steps are completed but flow
      wise it is incorrect.
      This change won't have any end user impact.
      
      Change-Id: Ia9652a4ff6d7efbabb58511f0ce93a87b3a4dfa8
      e1ced9ea
  4. 23 Dec, 2021 1 commit
    • whoami-rajat's avatar
      Pass valid IP address to os-brick · 8b4d97a6
      whoami-rajat authored
      While fetching connector information the cinder driver of
      glance-store is passing 'hostname' as IP address whereas it
      actually needs IP address.
      
      This path fetches the IPV4 or IPV6 address from the available
      'hostname' and passes it to os-brick.
      
      This worked for other cinder backends which don't rely specifically
      on IP address for initializing connection like fibre channel, nfs etc
      and even for some iscsi backends since, in some environments,
      the hostname is same as the ip address. This is not the case always
      and we should pass the correct IPv4/IPv6 address of the host to
      avoid this issue.
      
      Closes-Bug: #1955668
      
      Change-Id: Ic79815972e654a8bfe2775f57c68cfa0bf115e2f
      8b4d97a6
  5. 22 Dec, 2021 1 commit
  6. 21 Dec, 2021 1 commit
    • Abhishek Kekane's avatar
      [RBD] Clone v2: Image is unusable if deletion fails · 3d221ec5
      Abhishek Kekane authored
      Recently cinder has utilized Ceph clone v2 support for its
      RBD backend, since then if you attempt to delete an image from
      glance that has a dependent volume, all future uses of that
      image will fail in error state. Despite the fact that image
      itself is still inside of Ceph/Glance. This issue is reproducible
      if you are using ceph client version greater than 'luminous'
      
      To resolve this issue glance RBD driver now checks whether snapshot
      of original image has any external references before deleting/removing
      it's snapshot and returns 409 Conflict response if it has any.
      
      NOTE: To check this dependency glance osd needs 'read' access to
      cinder and nova side RBD pool.
      
      Closes-Bug: #1954883
      Depends-on: https://review.opendev.org/c/openstack/devstack-plugin-ceph/+/819476
      Change-Id: If30b7bd7acac148b6f89ce46abbe128c678c90e7
      3d221ec5
  7. 20 Dec, 2021 1 commit
  8. 14 Dec, 2021 1 commit
  9. 11 Dec, 2021 1 commit
  10. 10 Dec, 2021 2 commits
  11. 22 Nov, 2021 1 commit
    • whoami-rajat's avatar
      nit: Correct debug log · 5677ae3c
      whoami-rajat authored
      Correct debug log when initializing _AttachmentStateManager.
      
      Change-Id: Ifa909a67c76b897f2ab4b1ee5926046bc7045d3d
      5677ae3c
  12. 21 Nov, 2021 1 commit
  13. 19 Nov, 2021 1 commit
  14. 10 Nov, 2021 1 commit
  15. 12 Oct, 2021 1 commit
  16. 11 Oct, 2021 1 commit
    • Cyril Roelandt's avatar
      Fix typos · e6b1e2de
      Cyril Roelandt authored
      Change-Id: I7432abc646acf3dce7a6b5965dab83d3732f09d2
      e6b1e2de
  17. 10 Sep, 2021 2 commits
  18. 18 Aug, 2021 1 commit
  19. 17 Aug, 2021 1 commit
  20. 16 Aug, 2021 2 commits
  21. 12 Aug, 2021 2 commits
    • whoami-rajat's avatar
      Add volume multiattach handling · ecda7f64
      whoami-rajat authored
      We implemented cinder's new attachment API support with patch[1].
      It was needed to add multiattach volume handling added with this
      patch.
      There is no special configuration change or user interference needed.
      If a volume is of a multiattach type, then it will be handled as
      a multiattach volume.
      
      [1] https://review.opendev.org/c/openstack/glance_store/+/782200
      
      Implements: blueprint attachment-api-and-multiattach-support
      Closes-Bug: #1904546
      
      Change-Id: Iffb825492a20fd877476acad05f817b399072f01
      ecda7f64
    • Rajat Dhasmana's avatar
      Drop lower-constraints job · b42ffa40
      Rajat Dhasmana authored
      Change-Id: I1de76a70e07bbf2bd70900b4d93104a1b0fda74b
      b42ffa40
  22. 11 Aug, 2021 2 commits
  23. 28 Jul, 2021 1 commit
    • Rajat Dhasmana's avatar
      Glance cinder nfs: Block creating qcow2 volumes · 85c7a066
      Rajat Dhasmana authored
      There's an issue when cinder nfs is configured as glance backend and
      the image is > 1GB i.e. extend operation is performed on volume.
      Currently glance writes the qcow2 header in the raw volume and
      cinder nfs driver used to work on format autodetection which is
      changed to manual detection here[1]
      This fixes the extend volume problem for raw volumes, however, if
      cinder nfs is configured to create qcow2 volumes then we will run into
      the same problem.
      This patch blocks creating images when the nfs volume is qcow2.
      
      Refactoring work:
      1) attachment_delete call is removed in nfs related code as it was
      already done in the finally block
      2) handle_exceptions decorator is removed from volume delete method
      as it raises BackendException and incase when volume is not found
      (possibly deleted manually), the image deletion fails so we don't
      want to raise any error in this case
      
      [1] https://review.opendev.org/c/openstack/cinder/+/761152
      
      Closes-Bug: #1901138
      Change-Id: I8ce6f36f1cb4b0ed6bcc5f3869fab3bb64fe3390
      85c7a066
  24. 24 Jul, 2021 1 commit
    • Takashi Kajinami's avatar
      Doc: Use Block Storage API v3 · 1fb340eb
      Takashi Kajinami authored
      ... because v2 API was deprecated during Pike and was already removed
      during Xena[1].
      
      [1] e05b261af7dcd24096b229860df65dff1d385910
      
      Change-Id: I0e6d72ce82ce89aaaa8c56862bb8266d0351cd86
      1fb340eb
  25. 23 Jul, 2021 2 commits
    • Zuul's avatar
      Merge "Add cinder's new attachment support" · 82d87230
      Zuul authored
      82d87230
    • Rajat Dhasmana's avatar
      Add cinder's new attachment support · 1178f113
      Rajat Dhasmana authored
      Cinder introduced new attachment API flow in microversion 3.27
      (also attachment_complete added in mv 3.44 and support for passing
      mode added in mv 3.54) which provides a clean interface to
      interact with cinder for attachments and is also required for
      multiattach volume support (Related future work).
      Nova uses it since a long time and is proven to be stable,
      this patch implements the same for glance.
      The create volume and delete volume calls are also moved to
      cinder_utils file to use the generic exception handler
      and keep similar code together for consistency.
      
      Partially Implements: blueprint attachment-api-and-multiattach-support
      
      Change-Id: I2758ed1d5b8e0981faa3eff6f83e1ce5975a01d2
      1178f113
  26. 08 Jul, 2021 1 commit
    • Nobuto Murata's avatar
      s3: Optimize WRITE_CHUNKSIZE to minimize an overhead · 32f9a150
      Nobuto Murata authored
      When processing the image data from a client, the previous and small
      chunk size had a significant overhead. Let's be aligned with other chunk
      size related parameters such as DEFAULT_LARGE_OBJECT_MIN_CHUNK_SIZE
      (=5MiB) and DEFAULT_LARGE_OBJECT_CHUNK_SIZE (=10MiB).
      
      The performance difference should be tangible especially with a
      singlepart upload. And the upload time can be shortened for example as
      follows:
      
      100 MiB:   36.5s -> 4.0s
      200 MiB: 2m16.8s -> 6.1s
      300 MiB: 4m50.4s -> 9.1s
      
      Closes-Bug: 1934849
      Change-Id: Icecac80dd9e4e9f7ffa76bb7ca63d8d112036b70
      32f9a150
  27. 24 Jun, 2021 2 commits
    • Zuul's avatar
      Merge "Allow any Keystone domain for cinder store" · 98b4a0d4
      Zuul authored
      98b4a0d4
    • XinxinShen's avatar
      setup.cfg: Replace dashes with underscores · 5d1598f7
      XinxinShen authored
      Setuptools v54.1.0 introduces a warning that the use of dash-separated
      options in the metadata section of 'setup.cfg' will not be supported in a future version [1].
      Get ahead of the issue by replacing the dashes with underscores. Without
      this, we see 'UserWarning' messages like the following on new enough
      versions of setuptools:
      
        UserWarning: Usage of dash-separated 'description-file' will not be
        supported in future versions. Please use the underscore name
        'description_file' instead
      
      [1] https://github.com/pypa/setuptools/commit/a2e9ae4cb
      
      Change-Id: I75fe935a3b154c5eebf9d8b9550f21227e824867
      5d1598f7
  28. 03 Jun, 2021 1 commit
    • Pavlo Shchelokovskyy's avatar
      Allow any Keystone domain for cinder store · 4ea33139
      Pavlo Shchelokovskyy authored
      add two new config options for cinder store
      
      - cinder_store_user_domain_name
      - cinder_store_project_domain_name
      
      that allow to set the internal user and project to Keystone domains
      other that the 'Default' one.
      
      Closes-Bug: #1930299
      Change-Id: I1d6c07b6c0e7e6a4da9adabaa026f024b64bb029
      4ea33139
  29. 30 Apr, 2021 1 commit
  30. 15 Apr, 2021 1 commit
    • whoami-rajat's avatar
      Pass multipath config while creating connector object · 04e5ead7
      whoami-rajat authored
      
      
      Currently we only pass the configured multipath option when getting
      the connector properties and do not pass it when creating the
      connector object which in turn does the multipathing in os-brick.
      So we are only passing multipathing option to cinder for exporting &
      mapping the volume to paths but not while creating the connector object
      and hence doing multipathing partially.
      This patch passes that option and fixes the stated issue.
      
      Related-Bug: #1863983
      
      Co-Authored-By: default avatarGorka Eguileor <geguileo@redhat.com>
      
      Change-Id: I82979c47ec9ec1dd6cc864d3827ab219177251f8
      04e5ead7
  31. 19 Mar, 2021 2 commits