mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 19:26:48 +00:00
The Disks tab has a Move button for each disk: it opens a dialog to choose another storage pool of the same host, and the move runs as a job. - Running or paused VM: libvirt copies the disk with a block job (TRANSIENT_JOB, as the VM is persistent) into a file it creates in the pool, then pivots. The pivot names the copy in both the running and the next start's definition. - Shut-off VM: the volume is copied into the pool and the copy named in the definition. The source file goes then, unless a VM or volume of any compute uses it (shared storage holds it for every host that mounts it), a compute cannot be read, or the delete fails: the job lists such a file under "Left behind", and the move stands. A disk moves when: - the VM is defined and running, paused or shut off, without snapshots, a saved state or a block job; - the disk is a writable, unshared, unencrypted raw or qcow2 file of a storage pool, without a backing file, and the same file in both definitions; - the pool keeps disk files, is another directory, and has no file of that name (libvirt would write into it). Otherwise it is refused with the reason before anything changes. The job claims the VM and the file's name in both pools. A cancel aborts the block copy, and ends the job cancelled once the VM is back on its file. A failed move deletes the copy it made, unless a definition names it (a lost reply after the pivot); a file there before the copy began is never deleted. Recovery after a stopped worker ends a copy left mirroring, matched by its destination, and reads the outcome from the definitions. Superusers only, like the other disk edits. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_agent_access.py | ||
| test_change_network.py | ||
| test_clone_nvram.py | ||
| test_cloud_init_seed.py | ||
| test_connection.py | ||
| test_connection_threads.py | ||
| test_console_setters.py | ||
| test_device_edits.py | ||
| test_disk_copy_migration.py | ||
| test_disk_move.py | ||
| test_external_snapshots.py | ||
| test_host_reads.py | ||
| test_instance_getters.py | ||
| test_interface_addresses.py | ||
| test_iso_media.py | ||
| test_live_clone.py | ||
| test_live_connection.py | ||
| test_live_nvram.py | ||
| test_migration.py | ||
| test_network_ip.py | ||
| test_persistent_edits.py | ||
| test_read_cache.py | ||
| test_remove_nvram.py | ||
| test_resize_disk.py | ||
| test_rwlock.py | ||
| test_usage.py | ||
| test_util.py | ||
| test_volume_in_use.py | ||
| test_xml_safety.py | ||
| test_xpath_values.py | ||