On Wed, May 8, 2019 at 1:51 PM <francisco.garcia(a)wbsgo.com> wrote:
Description of the problem:
I am not able to restore (upload) a VM when its disk (Either Thin
provisioning or Thick provisioned) is located in an iSCSI storage and this
VM has at least one snapshot larger than 1Gb.
You need to set the disk initial_size to the size of the file you upload.
For example, see how upload_disk.py example:
https://github.com/oVirt/ovirt-engine-sdk/blob/master/sdk/examples/upload...
image_size = os.path.getsize(args.filename)
disks_service = connection.system_service().disks_service()
disk = disks_service.add(
disk=types.Disk(
name=os.path.basename(args.filename),
content_type=image_info["content_type"],
description='Uploaded disk',
format=new_disk_format,
initial_size=image_size,
provisioned_size=image_info["virtual-size"],
sparse=new_disk_format == types.DiskFormat.COW,
storage_domains=[
types.StorageDomain(
name=args.sd_name
)
]
)
)
I am using REST API through Java SDK.
I am using the same upload procedure described here:
https://ovirt.org/develop/release-management/features/storage/backup-rest...,
of course, making little adjustments to disk format (COW, Sparse..
Depending on the type of the VM to be restored).
When I try restore any VM with this conditions, all snapshot disks with a
size smaller than 1Gb are uploaded correctly. But when I am uploading a
snapshot disk with a size bigger than 1Gb, the following error ocurrs:
The error triggered from Java SDK is: "The server response was 403 in the
range request {bytes 1073741824-1207959551/4831838208}"
In the host's imageio log: "2019-05-07 14:26:30,253 WARNING (Thread-71960)
[web] ERROR [172.19.33.146] PUT
/images/8d353735-0a29-463c-b772-ec37f451e2e9 [403] Requested range out of
allowed range [request=0.000488]"
For example (real scenario), I have these snapshot disks from a vm:
2.1G
DiskSnap_47c4e157-edd8-4bfc-b838-4d57ac8396bd_33b3e74a-cc6b-474a-97cc-960891716110_0.img
-> First snap chain -> OK upload
1.1G
DiskSnap_47c4e157-edd8-4bfc-b838-4d57ac8396bd_9349e4dd-85b3-4145-8674-bb3f39546020_1.img
-> Ok upload
1.1G
DiskSnap_47c4e157-edd8-4bfc-b838-4d57ac8396bd_4d10cb58-9f52-4d64-b6e9-ead4bed4c6a6_2.img
-> Ok upload
4.6G
DiskSnap_47c4e157-edd8-4bfc-b838-4d57ac8396bd_429cbe6d-1148-4a84-861a-56ad6902859e_3.img
-> Last snap chain -> Fail upload with previous error
[Qemu-img info in attached file: qemu-imgs-iSCSI.txt]
In the restore process, when I create the disk(In this case), I put the
following values:
Disk: {
Name:T_iSCSI_Thin_Disk1_restore,
Id:null,
Interface:VIRTIO_SCSI,
Format:COW,
WipeAfterDelete: false,
Shareable: false,
Sparse: true,
Boot:true,
Activo:true,
Sizes:{
Initial:4294967296,
Actual:null,
Total:null,
Provisioned: 4294967296
}
}
And the disk created is:
Disk: {
Name:T_iSCSI_Thin_Disk1_restore,
Id:aac28ff3-abdb-4bf9-beed-c08e7e19b0ba,
Image:c8654d05-a18c-47bd-ab0b-f4d746e23efb,
Format:COW,
WipeAfterDelete: false,
Shareable: false,
Sparse: true,
Sizes:{
Initial:null,
Actual:0,
Total:0,
Provisioned: 4294967296
}
}
Therefore, the first upload can finish correctly. However, when I create
snapshots with this disk, the snapshot disks have these parameters:
DiskSnapshot: {
Id: 29dd6a18-c17c-4938-be67-d7af6de713ec,
Disk:aac28ff3-abdb-4bf9-beed-c08e7e19b0ba,
Snapshot:ceb2f29e-1ae8-441c-a5a7-836308cfeb8d,
Sizes:{
Actual:1073741824
Provisioned:4294967296
Total: 0
Initial: null
this allocates 1g, may not be enough for the upload
}
}
DiskSnapshot: {
Id: 69620911-d490-4872-b353-ba29a762ea3e,
Disk:aac28ff3-abdb-4bf9-beed-c08e7e19b0ba,
Snapshot:c35423d5-ddd6-46f2-a5d7-0080941c3f30,
Sizes:{
Actual:1073741824
Provisioned:4294967296
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: c8654d05-a18c-47bd-ab0b-f4d746e23efb,
Disk:aac28ff3-abdb-4bf9-beed-c08e7e19b0ba,
Snapshot:fc135efd-a67b-4eb3-bfdb-9090aa3b267e,
Sizes:{
Actual:4831838208
Provisioned:4294967296
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: e3389916-4e80-4593-a116-3484f295ff7f,
Disk:aac28ff3-abdb-4bf9-beed-c08e7e19b0ba,
Snapshot:74aff5e7-e1c1-4f51-ae31-ea44caa180ef,
Sizes:{
Actual:1073741824
Provisioned:4294967296
Total: 0
Initial: null
}
}
As we can observe with these values, the actual size of snapshot disks
indicates 1Gb, and when I try upload a snapshot disk (Bigger than 1.1Gb),
the system doesn't allow to complete the upload, launching the mentionated
previous error.
However, using NFS storage, the previous error doesn't ocurr. The system
allows me upload disks bigger than 1 Gb, and when the upload finishes, the
system refreshs the actualSize to actual value.
For example (real scenario), I have these snapshot disks from a vm:
3.1G
DiskSnap_985a02a0-0752-420a-a2fb-a3e89d1ac3bc_3dffb5f4-3f9c-410c-8b97-133922721f9a_0.img
-> First snap chain -> OK upload
22M
DiskSnap_985a02a0-0752-420a-a2fb-a3e89d1ac3bc_d3307b3c-f930-4faa-90cb-6aedd38bea93_1.img
-> Ok upload
31M
DiskSnap_985a02a0-0752-420a-a2fb-a3e89d1ac3bc_aa8648dd-d6c0-4d9d-8373-6764e806359f_2.img
-> Ok upload
1.3G
DiskSnap_985a02a0-0752-420a-a2fb-a3e89d1ac3bc_2cf31d95-3b86-4d97-b39b-672d0066f503_3.img
-> Last snap chain -> OK upload
[Qemu-img info in attached file: qemu-imgs-NFS.txt]
The restore with NFS storage is the same process but I change the format
disk and sparse. With following values:
Disk: {
Name:985a02a0-0752-420a-a2fb-a3e89d1ac3bc_restore,
Id:null,
Interface:VIRTIO_SCSI,
Format:RAW,
WipeAfterDelete: false,
Shareable: false,
Sparse: true,
Boot:true,
Activo:true,
Sizes:{
Initial:3221225472,
Actual:null,
Total:null,
Provisioned: 3221225472
}
}
And the disk created was:
Disk: {
Name:985a02a0-0752-420a-a2fb-a3e89d1ac3bc_restore,
Id:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Image:9c80aead-88de-48f9-be7e-0fde917e7f55,
Format:RAW,
WipeAfterDelete: false,
Shareable: false,
Sparse: true,
Sizes:{
Initial:null,
Actual:0,
Total:0,
Provisioned: 3221225472
}
}
When I create snapshots with this disk, the snapshot disks have these
parameters:
DiskSnapshot: {
Id: 87c4cb08-502a-4937-bbba-6d455395e990,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:dd257190-ef50-4990-a61f-40d84e2b08e9,
Sizes:{
Actual:200704
Provisioned:3221225472
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: e7d6f1fb-ab37-45f8-8e23-5964ed194581,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:b9f3f3d3-710e-4ce2-b05f-563227f5ec04,
Sizes:{
Actual:200704
Provisioned:3221225472
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: 8ef6f502-d00f-4fa5-b407-2cdc0e876045,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:274994de-5c2b-4b38-965f-4cadea3e0db3,
Sizes:{
Actual:200704
Provisioned:3221225472
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: 9c80aead-88de-48f9-be7e-0fde917e7f55,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:f1d7382d-4427-4e21-9544-1b3cd85f23ae,
Sizes:{
Actual:0
Provisioned:3221225472
Total: 0
Initial: null
}
}
As we can observe with these values, the actual size of snapshot disks
indicates 196Kb, and when I try upload any snapshot disk (Even more 1.1Gb),
the system allows upload all content disk and when it is finalished, it
changes actual and total size. When the restore ends, I obtain these values:
Disk: {
Name:985a02a0-0752-420a-a2fb-a3e89d1ac3bc_restoreBacula,
Id:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Image:8ef6f502-d00f-4fa5-b407-2cdc0e876045,
Format:COW,
WipeAfterDelete: false,
Shareable: false,
Status: OK,
Sparse: true,
Sizes:{
Initial:null,
Actual:1318850560,
Total:4593303552,
Provisioned: 3221225472
}
}
DiskSnapshot: {
Id: 87c4cb08-502a-4937-bbba-6d455395e990,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:dd257190-ef50-4990-a61f-40d84e2b08e9,
Sizes:{
Actual:22282240
Provisioned:3221225472
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: e7d6f1fb-ab37-45f8-8e23-5964ed194581,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:b9f3f3d3-710e-4ce2-b05f-563227f5ec04,
Sizes:{
Actual:32374784
Provisioned:3221225472
Total: 0
Initial: null
}
}
DiskSnapshot: {
Id: 9c80aead-88de-48f9-be7e-0fde917e7f55,
Disk:f2a89f5a-d8ac-4ea4-b17c-591cd86855e9,
Snapshot:f1d7382d-4427-4e21-9544-1b3cd85f23ae,
Sizes:{
Actual:3219795968
Provisioned:3221225472
Total: 0
Initial: null
}
}
There is a disk snapshot less since at the end of the restoration I merge
the last snapshot. But the values showed changes in actual Size in the
DiskSnapshot.
Could you help me, please? Is there a different procedure to the one
described in
https://ovirt.org/develop/release-management/features/storage/backup-rest...
to work with iSCSI storage or is this simply a bug?
How reproducible:
Backup and restore VM with snapshots in an iSCSI storage, using Java SDK.
Steps to Reproduce:
1.- Follow steps indicated in
https://ovirt.org/develop/release-management/features/storage/backup-rest...
to backup a VM allocated iSCSI Storage and containing snapshots bigger than
1.1GB
2.- Try to restore it using the instructions of that documment
Actual results:
Upload of images of disk snapshots bigger than 1.1Gb do not suceed ant the
restore process fails.
Expected results:
Restored vm
_______________________________________________
Devel mailing list -- devel(a)ovirt.org
To unsubscribe send an email to devel-leave(a)ovirt.org
Privacy Statement:
https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct:
https://www.ovirt.org/community/about/community-guidelines/
List Archives:
https://lists.ovirt.org/archives/list/devel@ovirt.org/message/OZWADBWM2RW...