Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							3d7389fe15 
							
						 
					 
					
						
						
							
							vmconfig_hotplug_pending: implement tablet hotplug  
						
						... 
						
						
						
						Remove special case: now, we only hotplug if 'hotplug' is enabled.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:35 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							c427973b46 
							
						 
					 
					
						
						
							
							implement trivial hotplug  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:27 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							6ca8b69870 
							
						 
					 
					
						
						
							
							fix balloon consistency check (consider pending changes)  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:22 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							055d554dfa 
							
						 
					 
					
						
						
							
							vm_start: apply pending changes  
						
						... 
						
						
						
						I move related helper methods into PVE::QemuServer.
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:17 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							3900164009 
							
						 
					 
					
						
						
							
							implement vmconfig_apply_pending for stopped VM  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:11 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							202d1f45e5 
							
						 
					 
					
						
						
							
							update_vm_api: always write into pending section  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:06 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							ef824322a0 
							
						 
					 
					
						
						
							
							write_vm_config : write pending change  
						
						... 
						
						
						
						example:
$conf->{pending}->{virtio1}
$conf->{pending}->{delete} = "net0,net1"
[PENDING]
virtio1: ...
delete: net0,net1
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:42:00 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							e297c4903a 
							
						 
					 
					
						
						
							
							parse_vm_config: only allow 'delete' inside [PENDING]  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:41:46 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							0d732d1615 
							
						 
					 
					
						
						
							
							parse_vm_config: correctly handle $descr  
						
						... 
						
						
						
						Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:41:36 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							eab09f4e11 
							
						 
					 
					
						
						
							
							parse_vm_config : parse pending changes  
						
						... 
						
						
						
						example:
[PENDING]
virtio1:...
delete:net0,net1
$conf->{pending}->{virtio1}
$conf->{pending}->{del}->{net0}
$conf->{pending}->{del}->{net1}
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2015-01-07 06:41:24 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							5a4cd260b5 
							
						 
					 
					
						
						
							
							bump version to 3.3-7  
						
						
						
					 
					
						2014-12-22 17:24:45 +01:00 
						 
				 
			
				
					
						
							
							
								Stefan Priebe 
							
						 
					 
					
						
						
						
						
							
						
						
							6fab033c3c 
							
						 
					 
					
						
						
							
							this commit:  
						
						... 
						
						
						
						commit 1c0c1c17b0 
						
					 
					
						2014-12-22 17:19:39 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							874a096e0e 
							
						 
					 
					
						
						
							
							white space cleanups  
						
						
						
					 
					
						2014-12-10 06:40:21 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							ab6a9a0cd4 
							
						 
					 
					
						
						
							
							Add qga freeze in vzdump in snapshot mode  
						
						... 
						
						
						
						it will freeze the filesystem to provide consistents.
Signed-off-by: Wolfgang Link <wolfgang@linksystems.org> 
						
					 
					
						2014-12-10 06:35:18 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							67fb9de608 
							
						 
					 
					
						
						
							
							white space cleanups  
						
						
						
					 
					
						2014-12-04 13:07:59 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							2ed5d5724c 
							
						 
					 
					
						
						
							
							add custom numa topology support  
						
						... 
						
						
						
						numaX: cpus=<id[-id],memory=<mb>[[,hostnodes=<id[-id]>][,policy=<preferred|bind|interleave>]]
example:
-------
sockets:4
cores:2
memory:4096
numa: 1
numa0: cpus=0-1,memory=1024,hostnodes=0-1,policy=interleave
numa1: cpus=2-3,memory=3072,hostnodes=2,policy=bind
qemu command line
-----------------
-object memory-backend-ram,size=1024M,policy=interleave,host-nodes=0-1,id=ram-node0
-numa node,nodeid=0,cpus=0-1,memdev=ram-node0
-object memory-backend-ram,size=3072M,policy=bind,host-nodes=2,id=ram-node1
-numa node,nodeid=1,cpus=2-3,memdev=ram-node1
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-04 13:02:47 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							8a010eaeb1 
							
						 
					 
					
						
						
							
							add numa options v3  
						
						... 
						
						
						
						This enable numa support inside the guest, and share the memory and cores across the sockets numa nodes.
numa: 0|1
example:
-------
sockets:2
cores:2
memory:4096
numa: 1
qemu command line
-----------------
-object memory-backend-ram,size=2048,id=ram-node0
-numa node,nodeid=0,cpus=0-1,memdev=ram-node0
-object memory-backend-ram,size=2048,id=ram-node1
-numa node,nodeid=1,cpus=2-3,memdev=ram-node1
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-04 13:01:47 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							260075e2c6 
							
						 
					 
					
						
						
							
							bump version to 3.3-6  
						
						
						
					 
					
						2014-12-04 12:35:10 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							af9110ddd7 
							
						 
					 
					
						
						
							
							Fix in PVE::QemuServer::snapshot_create  
						
						... 
						
						
						
						remove the freezefs flag.
If Qemu Guest Agent flag is set in config the vm filesystem will always be frozen,
unless we save RAM.
also remove param freezefs in PVE::API2 snapshot,
because there is no use for it.
Signed-off-by: Wolfgang Link <wolfgang@linksystems.org>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2014-12-04 12:30:35 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							108864e591 
							
						 
					 
					
						
						
							
							snapshot_create: fix bug from prev. commit, consider $freezefs parameter  
						
						
						
					 
					
						2014-12-02 13:42:51 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							65994ad73c 
							
						 
					 
					
						
						
							
							snapshot_create: use guest-fsfreeze-freeze if possible  
						
						... 
						
						
						
						Signed-off-by: Wolfgang Link <wolfgang@linksystems.org>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2014-12-02 13:11:42 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							5cb6fe54d8 
							
						 
					 
					
						
						
							
							qmpclient: use guest-sync-delimited  
						
						
						
					 
					
						2014-12-02 13:09:53 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							c2b9bbf33a 
							
						 
					 
					
						
						
							
							bump version to 3.3-5  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							6f70864360 
							
						 
					 
					
						
						
							
							drive-mirror: avoid division by zero bug  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							edb52f14a5 
							
						 
					 
					
						
						
							
							qmpclient: fix mux_input regex  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							c8125172c7 
							
						 
					 
					
						
						
							
							qmpclient: improve error handling  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							2ea5450311 
							
						 
					 
					
						
						
							
							simplify code by using vm_qmp_command() directly  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							7a6c215042 
							
						 
					 
					
						
						
							
							qmpclient: code cleanup, execute qga and qmp in parallel  
						
						
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							1c0c1c17b0 
							
						 
					 
					
						
						
							
							shutdown by Qemu Guest Agent if the agent flag in the config is set  
						
						... 
						
						
						
						Important: "guest-shutdown" returns only by error a message.
Signed-off-by: Wolfgang Link <wolfgang@linksystems.org> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							c5a07de5af 
							
						 
					 
					
						
						
							
							qmpclient: now if the QMP command starts with guest-+ , it will bind dynamicly to the VMID.qga socket  
						
						... 
						
						
						
						Signed-off-by: Wolfgang Link <wolfgang@linksystems.org> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							bcfbc40b39 
							
						 
					 
					
						
						
							
							qmpclient-qga : mux_input : parse qga result  
						
						... 
						
						
						
						result sample:
first json is guest-sync result, second json is command result
{ "return": 123456}\n{"return": {}}
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
Signed-off-by: Dietmar Maurer <dietmar@proxmox.com> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							a45a14fcf7 
							
						 
					 
					
						
						
							
							qmpclient-qga : build qga command  
						
						... 
						
						
						
						example of command:
first json is guest-sync to sync and flush the client, second json is the command
{ "execute": "guest-sync", "arguments": { "id": 123456 } }{"execute":"guest-ping"}
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							c6fb6a6978 
							
						 
					 
					
						
						
							
							qmpclient-qga : do not sent qmp_capabilities for qga  
						
						... 
						
						
						
						Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							b1d8a6d44b 
							
						 
					 
					
						
						
							
							qmpclient-qga : cmdid : use integer instead string  
						
						... 
						
						
						
						qga client use only integer as id
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							f1f36aca43 
							
						 
					 
					
						
						
							
							qmpclient-qga : add qga param to qmp_socket  
						
						... 
						
						
						
						Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:12 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							d64ee87e73 
							
						 
					 
					
						
						
							
							qmpclient-qga : add qga option at object creation  
						
						... 
						
						
						
						Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:11 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							693d12a2c0 
							
						 
					 
					
						
						
							
							add vm_qga_command  
						
						... 
						
						
						
						and reuse vm_qmp_command && qmp_socket with $qga param
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:11 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							f34ebd5259 
							
						 
					 
					
						
						
							
							code cleanups  
						
						
						
					 
					
						2014-12-01 09:50:11 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							2c9e8036f5 
							
						 
					 
					
						
						
							
							savevm-end : wait that savevm is finished  
						
						... 
						
						
						
						savevm-end is async, we need to wait that savevm is finished, before continue.
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-12-01 09:50:11 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							1b0b51ed94 
							
						 
					 
					
						
						
							
							serial: allow to pass arbitrary device names  
						
						
						
					 
					
						2014-12-01 09:50:11 +01:00 
						 
				 
			
				
					
						
							
							
								Wolfgang Link 
							
						 
					 
					
						
						
						
						
							
						
						
							7626772856 
							
						 
					 
					
						
						
							
							Add check if host has enough real CPUs for starting VM  
						
						... 
						
						
						
						To prevent a Qemu CPU emualtion!
Signed-off-by: Wolfgang Link <wolfgang@linksystems.org> 
						
					 
					
						2014-11-17 11:24:15 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							883839209f 
							
						 
					 
					
						
						
							
							qemu_drive_mirror: cleanup, avoid code duplication  
						
						
						
					 
					
						2014-11-10 08:18:39 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							08ac653fcf 
							
						 
					 
					
						
						
							
							qemu_drive_mirror: raise exception if we cannot parse $dst_volid  
						
						
						
					 
					
						2014-11-10 07:55:09 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							ad2cb4111f 
							
						 
					 
					
						
						
							
							bump version to 3.3-3  
						
						
						
					 
					
						2014-11-10 06:32:31 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							b467f79a50 
							
						 
					 
					
						
						
							
							delete trailing whitespace  
						
						
						
					 
					
						2014-11-10 06:31:08 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							21ccdb506a 
							
						 
					 
					
						
						
							
							block-job-complete : retry if block job cannot be complete  
						
						... 
						
						
						
						Even if we check the busy flag, we can have sometime race condition if new write
are coming between the query-block-job and the block-job-complete.
block-job-complete throw an error "The active block job for device '%(name)' cannot be completed"
we just need to retry in this case.
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-11-10 06:26:25 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							2b8245f11b 
							
						 
					 
					
						
						
							
							bump version to 3.3-2  
						
						
						
					 
					
						2014-11-07 15:45:56 +01:00 
						 
				 
			
				
					
						
							
							
								Dietmar Maurer 
							
						 
					 
					
						
						
						
						
							
						
						
							bcc87408c0 
							
						 
					 
					
						
						
							
							cleanup: do not entry wait loop if block-job-cancel() fails.  
						
						
						
					 
					
						2014-11-07 15:31:56 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							ab6ecffe53 
							
						 
					 
					
						
						
							
							drive-mirror : wait that busy eq false before block-job-complete  
						
						... 
						
						
						
						When the drive-mirror is at 100%, and write occurs, the busy flag can change from false->true
- 100% no new writes
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
- 100% new writes
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: true
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: true
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: true
- 100% no new writes
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
transferred: 1073741824 bytes remaining: 0 bytes total: 1073741824 bytes progression: 100.00 % busy: false
So, we need to check that busy is false before doing the block-job-complete.
Also, we force the vm to pause, if it's busy for more than 120s when drive-mirror is at 100%
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-11-07 15:28:13 +01:00 
						 
				 
			
				
					
						
							
							
								Alexandre Derumier 
							
						 
					 
					
						
						
						
						
							
						
						
							5fe03fd8ee 
							
						 
					 
					
						
						
							
							block-job-cancel : wait that jobs is really finished  
						
						... 
						
						
						
						block-job-cancel is async, we need to check that job is really finished
before try to free the volume
Signed-off-by: Alexandre Derumier <aderumier@odiso.com> 
						
					 
					
						2014-11-07 15:26:21 +01:00