Bug #3705
Images downloaded from the Marketplace to Ceph are left with DRIVER=qcow2
| Status: | Closed | Start date: | 03/22/2015 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 0% | ||
| Category: | Drivers - Storage | |||
| Target version: | Release 5.4 | |||
| Resolution: | fixed | Pull request: | ||
| Affected Versions: | OpenNebula 4.12 |
Description
Downloading an image from the Marketplace into a Ceph datastore correctly converts the image to raw format, but leaves the image with the tag "DRIVER" set to "qcow2"
A naive patch to ceph/cp looks like:
diff -uNr opennebula-4.10.2.orig/src/datastore_mad/remotes/ceph/cp opennebula-4.10.2-ceph/src/datastore_mad/remotes/ceph/cp
--- opennebula-4.10.2.orig/src/datastore_mad/remotes/ceph/cp 2015-01-14 12:11:50.000000000 -0500
+++ opennebula-4.10.2-ceph/src/datastore_mad/remotes/ceph/cp 2015-03-17 18:07:55.229239336 -0400
***OMITTED UNRELATED PATCHES***
ssh_exec_and_log "$DST_HOST" "$REGISTER_CMD" \
"Error registering $RBD_SOURCE in $DST_HOST"
+# Ensure the image is specified as "raw"
+(
+ tmpUpdateImageFile="${TMPDIR:-/tmp}/update-image-file-$$${RANDOM}${RANDOM}${RANDOM}.oi"
+ echo 'DRIVER="raw"' > "${tmpUpdateImageFile}"
+ oneimage update "${ID}" "${tmpUpdateImageFile}" --append
+ rm -f "${tmpUpdateImageFile}"
+) 2>/dev/null >/dev/null </dev/null
+
echo "$RBD_SOURCE"
Associated revisions
B #3705: Override image DRIVER attribute by the datastore DRIVER
B #3705: Update DS_MAD fs/cp to support CONVERT/DRIVER
B #3705: DRIVER configuration for the TM_MAD_CONF
B #3705: Default CONVERT=yes in fs/cp
B #3705: Set DRIVER=qcow2 for TM_MAD qcow2
B #3705: Don't override image DRIVER if CDROM
B #3705: Add TEMPLATE/DRIVER=raw into exist. CEPH/LVM DS on migration
History
#1
Updated by Ruben S. Montero almost 6 years ago
- Category set to Drivers - Storage
#2
Updated by Jaime Melis almost 6 years ago
- Status changed from Pending to New
I like the idea of fixing this bug, but I would do this in the Core. For example, if the datastore has a "DRIVER" attribute, the core will overwrite the image's driver attribute with the datastore's. Setting to "New".
#3
Updated by Roy Keene over 4 years ago
Still present in OpenNebula 5.2.0
#4
Updated by Ruben S. Montero over 4 years ago
- Target version set to Release 5.4
#5
Updated by Vlastimil Holer about 4 years ago
- Assignee set to Vlastimil Holer
#6
Updated by Vlastimil Holer about 4 years ago
- Assignee deleted (
Vlastimil Holer)
Following PR should allow to set the DRIVER on datastore level to override the image DRIVER: https://github.com/OpenNebula/one/pull/309
#7
Updated by Vlastimil Holer about 4 years ago
- Status changed from New to Closed
- Assignee set to Vlastimil Holer
- Resolution set to fixed
Merged by Javi.