Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2002772

Summary: RBD: use correct stripe unit in clone operation
Product: Red Hat OpenStack Reporter: Giulio Fidente <gfidente>
Component: openstack-cinderAssignee: Jon Bernard <jobernar>
Status: CLOSED ERRATA QA Contact: Tzach Shefi <tshefi>
Severity: high Docs Contact:
Priority: high    
Version: 16.2 (Train)CC: eharney, gcharot, jobernar, jvisser, ltoscano, pgrist, spower, sputhenp, tvignaud, vfarias, yrabl
Target Milestone: z1Keywords: Triaged
Target Release: 16.2 (Train on RHEL 8.4)Flags: tvignaud: needinfo+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-cinder-15.6.1-2.20210528143333.el8ost.3 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2006888 (view as bug list) Environment:
Last Closed: 2021-12-09 20:41:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2006888    

Description Giulio Fidente 2021-09-09 16:56:19 UTC
Quoting from the existing fix submitted to master and stable/wallaby:

The recent release of Ceph Pacific saw a change to the clone() logic
where invalid values of stripe unit would cause an error to be returned
where previous versions would correct the value at runtime.  This
becomes a problem when creating a volume from an image, where the source
RBD image may have a larger stripe unit than cinder's RBD driver is
configured for.  When this happens, clone() is called with a stripe unit
that is too small given that of the source image and the clone fails

Comment 9 Tzach Shefi 2021-10-10 08:19:20 UTC
Hey Giulio, 

In order to verify this bz I need to create a volume from an image, this I understand.

However What I'm unsure about is how do I create a "source RBD image may have a larger stripe unit than cinder's RBD driver is
configured for." ?


First of all where do I see the current RBD drivers stripe unit?
Cinder.conf only includes two references related to stripe, but they're related to backup image:

[heat-admin@controller50-1 ~]$ sudo grep -irn stripe /var/lib/config-data/puppet-generated/cinder/etc/cinder/cinder.conf 
66:# RBD stripe unit to use when creating a backup image. (integer value)
67:#backup_ceph_stripe_unit = 0
69:# RBD stripe count to use when creating a backup image. (integer value)
70:#backup_ceph_stripe_count = 0


Once I do find this "RBD driver stripe unit",
how do I create an image that is larger than it? 

Thanks

Comment 10 Giulio Fidente 2021-10-12 09:42:35 UTC
We haven't added in TripleO any parameter to configure the stripe size in either glance/cinder yet; that is tracked by [1]

This bug instead is about a feature in cinder which will adapt the clone chunk size to that of the image it is cloning, when using rbd backend. It should be visible using a "# rbd image -p images info $image_id" on a controller node, then repeating that same command against a clone created in cinder pool from the image, for example "# rbd image -p volumes info $volume_id"; $image_id is the glance image id and $volume_id is the clone id created in cinder.

1. https://bugzilla.redhat.com/show_bug.cgi?id=2002755

Comment 12 Tzach Shefi 2021-10-13 10:46:04 UTC
Verified on:
openstack-cinder-15.6.1-2.20210528143333.el8ost.3.noarch
 
On a deployment with external RHCS5
 
Uploaded a cirros image:
(overcloud) [stack@undercloud-0 ~]$ glance image-show d2c7bb20-1797-4515-9cf9-1543297c1dcf                                                                                                                                                  
+----------------------------------+----------------------------------------------------------------------------------+                                                                                                                      
| Property                         | Value                                                                            |                                                                                                                      
+----------------------------------+----------------------------------------------------------------------------------+                                                                                                                      
| checksum                         | 443b7623e27ecf03dc9e01ee93f67afe                                                 |                                                                                                                      
| container_format                 | bare                                                                             |                                                                                                                      
| created_at                       | 2021-10-13T09:45:09Z                                                             |
| direct_url                       | rbd://6519ed48-2bd2-11ec-873c-5254009bb8c4/images/d2c7bb20-1797-4515-9cf9-154329 |
|                                  | 7c1dcf/snap                                                                      |
| disk_format                      | qcow2                                                                            |
| id                               | d2c7bb20-1797-4515-9cf9-1543297c1dcf                                             |
| locations                        | [{"url": "rbd://6519ed48-2bd2-11ec-873c-5254009bb8c4/images/d2c7bb20-1797-4515-9 |
|                                  | cf9-1543297c1dcf/snap", "metadata": {"store": "default_backend"}}]               |
| min_disk                         | 0                                                                                |
| min_ram                          | 0                                                                                |
| name                             | cirros                                                                           |
| os_hash_algo                     | sha512                                                                           |
| os_hash_value                    | 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e |
|                                  | 2161b5b5186106570c17a9e58b64dd39390617cd5a350f78                                 |
| os_hidden                        | False                                                                            |
| owner                            | 8007fd8ef4a348159d4f0360b9a9df7d                                                 |
| owner_specified.openstack.md5    |                                                                                  |
| owner_specified.openstack.object | images/cirros                                                                    |
| owner_specified.openstack.sha256 |                                                                                  |
| protected                        | False                                                                            |
| size                             | 12716032                                                                         |
| status                           | active                                                                           |
| stores                           | default_backend                                                                  |
| tags                             | []                                                                               |
| updated_at                       | 2021-10-13T09:45:12Z                                                             |
| virtual_size                     | Not available                                                                    |
| visibility                       | public                                                                           |
+----------------------------------+----------------------------------------------------------------------------------+
 
Successfully booted a new instance from image (create bootable volume):
(overcloud) [stack@undercloud-0 ~]$  nova boot --flavor tiny  --block-device source=image,id=d2c7bb20-1797-4515-9cf9-1543297c1dcf,dest=volume,size=1,shutdown=preserve,bootindex=0 myInstanceFromVolume --nic net-id=0ee6ba6a-0d24-452f-b40c-81b9a3cee4f8
+--------------------------------------+-------------------------------------------------+
| Property                             | Value                                           |
+--------------------------------------+-------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                          |
| OS-EXT-AZ:availability_zone          |                                                 |
| OS-EXT-SRV-ATTR:host                 | -                                               |
| OS-EXT-SRV-ATTR:hostname             | myinstancefromvolume                            |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                               |
| OS-EXT-SRV-ATTR:instance_name        |                                                 |
| OS-EXT-SRV-ATTR:kernel_id            |                                                 |
| OS-EXT-SRV-ATTR:launch_index         | 0                                               |
| OS-EXT-SRV-ATTR:ramdisk_id           |                                                 |
| OS-EXT-SRV-ATTR:reservation_id       | r-f2g0eqlm                                      |
| OS-EXT-SRV-ATTR:root_device_name     | -                                               |
| OS-EXT-SRV-ATTR:user_data            | -                                               |
| OS-EXT-STS:power_state               | 0                                               |
| OS-EXT-STS:task_state                | scheduling                                      |
| OS-EXT-STS:vm_state                  | building                                        |
| OS-SRV-USG:launched_at               | -                                               |
| OS-SRV-USG:terminated_at             | -                                               |
| accessIPv4                           |                                                 |
| accessIPv6                           |                                                 |
| adminPass                            | c2zHHarUvX4V                                    |
| config_drive                         |                                                 |
| created                              | 2021-10-13T10:26:48Z                            |
| description                          | -                                               |
| flavor:disk                          | 1                                               |
| flavor:ephemeral                     | 0                                               |
| flavor:extra_specs                   | {}                                              |
| flavor:original_name                 | tiny                                            |
| flavor:ram                           | 512                                             |
| flavor:swap                          | 0                                               |
| flavor:vcpus                         | 1                                               |
| hostId                               |                                                 |
| host_status                          |                                                 |
| id                                   | 7779e2e2-2e85-405f-a5b2-ac52145d0ffb            |
| image                                | Attempt to boot from volume - no image supplied |
| key_name                             | -                                               |
| locked                               | False                                           |
| locked_reason                        | -                                               |
| metadata                             | {}                                              |
| name                                 | myInstanceFromVolume                            |
| os-extended-volumes:volumes_attached | []                                              |
| progress                             | 0                                               |
| security_groups                      | default                                         |
| server_groups                        | []                                              |
| status                               | BUILD                                           |
| tags                                 | []                                              |
| tenant_id                            | 8007fd8ef4a348159d4f0360b9a9df7d                |
| trusted_image_certificates           | -                                               |
| updated                              | 2021-10-13T10:26:48Z                            |
| user_id                              | e471ecb3402d409495ba53c8f9cd0b2b                |
+--------------------------------------+-------------------------------------------------+
 
(overcloud) [stack@undercloud-0 ~]$ nova list                                                                                                                                                                                                
+--------------------------------------+----------------------+--------+------------+-------------+-----------------------------------+                                                                                                      
| ID                                   | Name                 | Status | Task State | Power State | Networks                          |                                                                                                      
+--------------------------------------+----------------------+--------+------------+-------------+-----------------------------------+                                                                                                      
| 7779e2e2-2e85-405f-a5b2-ac52145d0ffb | myInstanceFromVolume | ACTIVE | -          | Running     | internal=192.168.0.12             |
 
As can be seen the instance is up, we can ssh into it:
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
myinstancefromvolume login: cirros 
Password: 
$ 
$ #inside instance, yay!

Thus confirming volume clone worked as expected once chunk issue fixed.
Had the chunk size mismatch not been fixed the volume/instance wouldn't have booted up. 
Good to verify.

Comment 22 errata-xmlrpc 2021-12-09 20:41:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 16.2.1 (Train)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:5067

Comment 23 Red Hat Bugzilla 2023-09-15 01:14:54 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 500 days