Right, done some more testing and indeed, the vms created from templates that
were created from snapshots are not working. I get the following error in the
management server logs:
2013-12-23 15:54:11,088 DEBUG [agent.transport.Request]
(AgentManager-Handler-11:null) Seq 1-2082880489: Processing: { Ans: , MgmtId:
238402986947284, via: 1, Ver: v1, Flags: 110,
[{"org.apache.cloudstack.storage.command.CopyCmdAnswer":{"result":false,"details":"com.cloud.utils.exception.CloudRuntimeException:
Failed to copy
/mnt/08452456-d626-307b-9cbe-c028ae633435/59dfab5d-832e-4160-8f8e-47efb2d23d3e.raw
to 0756278c-5abc-4e6c-b9ae-37033194d31a","wait":0}}] }
2013-12-23 15:54:11,088 DEBUG [agent.manager.AgentAttache]
(AgentManager-Handler-11:null) Seq 1-2082880489: No more commands found
2013-12-23 15:54:11,088 DEBUG [agent.transport.Request]
(Job-Executor-113:job-548 = [ dc47c0ce-eb8b-4230-b58a-047ab55950fb ]) Seq
1-2082880489: Received: { Ans: , MgmtId: 238402986947284, via: 1, Ver: v1,
Flags: 110, { CopyCmdAnswer } }
2013-12-23 15:54:11,093 INFO [storage.volume.VolumeServiceImpl]
(Job-Executor-113:job-548 = [ dc47c0ce-eb8b-4230-b58a-047ab55950fb ]) releasing
lock for VMTemplateStoragePool 12
2013-12-23 15:54:11,093 WARN [utils.db.Merovingian2] (Job-Executor-113:job-548
= [ dc47c0ce-eb8b-4230-b58a-047ab55950fb ]) Was unable to find lock for the key
template_spool_ref12 and thread id 291724899
2013-12-23 15:54:11,093 DEBUG [cloud.storage.VolumeManagerImpl]
(Job-Executor-113:job-548 = [ dc47c0ce-eb8b-4230-b58a-047ab55950fb ]) Unable to
create Vol[504|vm=508|ROOT]:com.cloud.utils.exception.CloudRuntimeException:
Failed to copy
/mnt/08452456-d626-307b-9cbe-c028ae633435/59dfab5d-832e-4160-8f8e-47efb2d23d3e.raw
to 0756278c-5abc-4e6c-b9ae-37033194d31a
2013-12-23 15:54:11,093 INFO [cloud.vm.VirtualMachineManagerImpl]
(Job-Executor-113:job-548 = [ dc47c0ce-eb8b-4230-b58a-047ab55950fb ]) Unable to
contact resource.
com.cloud.exception.StorageUnavailableException: Resource [StoragePool:2] is
unreachable: Unable to create
Vol[504|vm=508|ROOT]:com.cloud.utils.exception.CloudRuntimeException: Failed to
copy
/mnt/08452456-d626-307b-9cbe-c028ae633435/59dfab5d-832e-4160-8f8e-47efb2d23d3e.raw
to 0756278c-5abc-4e6c-b9ae-37033194d31a
at
com.cloud.storage.VolumeManagerImpl.recreateVolume(VolumeManagerImpl.java:2544)
at com.cloud.storage.VolumeManagerImpl.prepare(VolumeManagerImpl.java:2592)
at
com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:889)
at
com.cloud.vm.VirtualMachineManagerImpl.start(VirtualMachineManagerImpl.java:578)
at
org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl.deployVirtualMachine(VMEntityManagerImpl.java:227)
at
org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl.deploy(VirtualMachineEntityImpl.java:209)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:3406)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:2966)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:2952)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
org.apache.cloudstack.api.command.user.vm.DeployVMCmd.execute(DeployVMCmd.java:420)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:158)
at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:531)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:701)
The template file is there:
# find ./ |grep 59dfab5d-832e-4160-8f8e-47efb2d23d3e.raw
./template/tmpl/5/217/59dfab5d-832e-4160-8f8e-47efb2d23d3e.raw
As i've mentioned earlier, there is no problem when doing: root_disk > template
> vm. The problem seems to be when I perform: root_disk > snapshot > template >
vm.
There seems to be a difference in the saved format types. A template created
directly from a root volume is saved as QCOW2 whereas a template created from a
snapshot is created as RAW according to the database:
mysql> select * from vm_template where id=216 or id=217;
+-----+---------------------------------------+---------------------------+--------------------------------------+--------+----------+------+-----+------+------+--------+---------------------+---------------------+------------+----------+---------------------------+-----------------+---------------+-------------+----------+-------------+-------------+-------------+-----------------+--------------------+--------------+----------+-------------+-------+--------------+---------+----------------------+
| id | unique_name | name | uuid | public | featured | type | hvm | bits | url
| format | created | removed | account_id | checksum | display_text |
enable_password | enable_sshkey | guest_os_id | bootable | prepopulate |
cross_zones | extractable | hypervisor_type | source_template_id | template_tag
| sort_key | size | state | update_count | updated | dynamically_scalable |
+-----+---------------------------------------+---------------------------+--------------------------------------+--------+----------+------+-----+------+------+--------+---------------------+---------------------+------------+----------+---------------------------+-----------------+---------------+-------------+----------+-------------+-------------+-------------+-----------------+--------------------+--------------+----------+-------------+-------+--------------+---------+----------------------+
| 216 | 36d0799f-cf61-4252-ac15-e9b8ec5b9d3b | ubuntu-template-to-remove |
700026eb-06a4-4e0c-9a0a-1512ee1d4ffe | 0 | 0 | USER | 1 | 64 | NULL | QCOW2 |
2013-12-22 23:48:04 | 2013-12-23 13:50:10 | 2 | NULL |
ubuntu-template-to-remove | 0 | 0 | 164 | 1 | 0 | 0 | 0 | KVM | 203 | NULL | 0
| 10737418240 | NULL | 0 | NULL | 0 |
| 217 | 33345b965-eab0-3a63-a54a-205e6474c724 | ubuntu-syslog-tmpl-remove |
ca6d40a4-54b7-463a-bb31-6e40be1abdc0 | 1 | 0 | USER | 1 | 64 | NULL | RAW |
2013-12-23 15:43:53 | NULL | 5 | NULL | ubuntu-syslog-tmpl-remove | 0 | 0 | 164
| 1 | 0 | 0 | 0 | KVM | 203 | NULL | 0 | 8589901824 | NULL | 0 | NULL | 0 |
+-----+---------------------------------------+---------------------------+--------------------------------------+--------+----------+------+-----+------+------+--------+---------------------+---------------------+------------+----------+---------------------------+-----------------+---------------+-------------+----------+-------------+-------------+-------------+-----------------+--------------------+--------------+----------+-------------+-------+--------------+---------+----------------------+
2 rows in set (0.00 sec)
>From the database above, the template with id=216 is fully working and I can
>create vms from it. The broken template is with id=217.
As far as I can see, this is a major blocker issue. I can't find any other way
of rolling back a snapshot apart from doing snapshot > template > vm.
Therefore, as far as I can see, the whole point of snapshots is broken as there
is no use for the snapshots if you can not create / roll back vms from them.
Thanks
Andrei
----- Original Message -----
From: "Andrei Mikhailovsky" <[email protected]>
To: [email protected]
Sent: Monday, 23 December, 2013 2:52:37 PM
Subject: Re: [VOTE] 3rd round of voting for ASF 4.2.1 RC
There is definitely an issue with snapshotting for kvm.
I've been done some tests, but not finished yet. What i've discovered is that
if you take a snapshot of a live server, the snapshot creation works perfectly
well for me. The snapshot is created and saved without an error. However, i've
tried to convert the snapshot into a template and create a new vm using this
template. The snapshot to template works fine. However, creating a vm from that
template did not work.
If I try to create a template from a stopped server directly without using the
snapshot, the vm creation from the template works perfectly well.
I've not done much investigation, however, i've noticed that when I am doing vm
creation using snapshot and template process the database shows QCOW2 as the
file format. Doing directly via the template is showing RAW file format. I will
do some more testing to verify and post management server logs.
Andrei
----- Original Message -----
From: "Nux!" <[email protected]>
To: [email protected]
Sent: Monday, 23 December, 2013 2:34:31 PM
Subject: Re: [VOTE] 3rd round of voting for ASF 4.2.1 RC
On 23.12.2013 05:42, Abhinandan Prateek wrote:
> It gives me immense pleasure to inform that the vote to label this ASF
> 4.2.1 RC as the GA release has been passed with following stats:
Can someone check KVM volume snapshots before declaring this GA? It's
been consistently broken for me in 4.2.1-SNAPSHOT with NFS as well as
GlusterFS shared mount point.
It was working in 4.2.0 afaicr.
I've sent several emails about this as well as bothering people in
CLOUDSTACK-5393.
http://www.mail-archive.com/[email protected]/msg20123.html
HTH
Lucian
--
Sent from the Delta quadrant using Borg technology!
Nux!
www.nux.ro