[
https://issues.apache.org/jira/browse/VCL-844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14507633#comment-14507633
]
ASF subversion and git services commented on VCL-844:
-----------------------------------------------------
Commit 1675454 from [~arkurth] in branch 'vcl/trunk'
[ https://svn.apache.org/r1675454 ]
VCL-844
Added OS.pm::get_os_perl_package. Added Windows.pm::_get_os_perl_package which
is called by OS.pm::get_os_perl_package.
Updated OS.pm::get_os_type to return 'linux-ubuntu' if Ubuntu is detected
rather than just 'linux'.
Added generate_ssh_key_files,generate_ssh_public_key_string, and
create_ssh_public_key_file subroutines to OS.pm. These are used to facilitate
host to host copying of files for VM migrations.
Added hibernate subroutine to Linux.pm, Ubuntu.pm, Windows.pm, and Version_5.pm.
Added Windows.pm::enable_hibernation.
Added is_process_running and is_display_manager_running to Linux.pm. These are
used by Ubuntu.pm::hibernate to overcome issues which cause hibernation to fail.
Added subroutines to Ubuntu.pm to help overcome issues with hibernation:
* grubenv_unset_recordfail
* install_package
* _install_package_helper
* simulate_install_package
* apt_get_update
* fix_debconf_db
VCL-860
Updated Linux.pm::create_user to display a warning if any output line begins
with 'useradd:'.
> Allow VMware VMs on standalone hosts to be migrated
> ---------------------------------------------------
>
> Key: VCL-844
> URL: https://issues.apache.org/jira/browse/VCL-844
> Project: VCL
> Issue Type: New Feature
> Components: database, vcld (backend), web gui (frontend)
> Reporter: Andy Kurth
> Assignee: Andy Kurth
> Priority: Minor
>
> It is possible to do a _poor man's_ migration of a VM from one standalone
> VMware host to another without requiring enterprise vSphere licenses for the
> hosts or vCenter. This can even be accomplished on the free version of ESXi.
> This feature would be very helpful when a host which is running VMs for
> long-term reservations needs to be upgraded or taken out of service for some
> reason.
> I have been experimenting with some code for this. The migration process
> works as follows:
> * Gather information about the source VM.
> * Make sure the destination VM host has a copy of the master/parent .vmdk
> image. Copy it if necessary.
> * Take a snapshot of the VM. This causes it to start using a new, smaller
> delta .vmdk file.
> * Copy all files in the source VM's working directory to the destination,
> except the ones which are in use. This would include delta .vmdk files from
> previous snapshots.
> * Hibernate the VM.
> * Copy the files which were being used by the VM while powered on.
> * Update the VM's files on the destination VM host to contain the correct
> datastore paths for the destination host.
> * Resume/power on the destination VM.
> * Verify the destination VM is responding.
> * Remove the source VM.
> * Update computer.vmhostid.
> Because hibernation is used, the state of the VM is not lost as it would if
> the VM had to be shutdown and restarted. Regardless, it is important to
> minimize the amount of time the VM is hibernating. This is the reason for
> taking the snapshot. Before the migration, the VM's delta file contains all
> changes written to its virtual disk since the VM was loaded and is likely
> quite large. The snapshot causes the VM to start using a new delta file.
> The previous, large delta file can be copied to the destination while the
> source VM is still powered on.
> We will need how this will be controlled via the website and how the
> migration information will need to be presented in the database. We could
> add a new _migrate_ request state. The backend could would need to know the
> destination VM host ID.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)