Linux Virtualization Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 61: Line 61:
=Connect to the Guest VM=
=Connect to the Guest VM=


   
     [[virsh console]]
     [[virsh console]]


Line 68: Line 67:
{{Internal|Linux Virtualization Adding Storage to Guests|Adding Storage to Guests}}
{{Internal|Linux Virtualization Adding Storage to Guests|Adding Storage to Guests}}


=Cloning a Guest VM=
=Cloning a Guest Virtual Machine=
<span id='Cloning_a_Guest_VM'></span>


* Shut down the guest with [[virsh shutdown]].
{{Internal|Linux Virtualization Cloning a KVM Guest Virtual Machine|Cloning a Guest Virtual Machine}}
* Export the XML configuration with [[virsh dumpxml]].
* Copy the XML definition under a new name, conventionally the name of the guest being built.
* Edit the XML as needed. Things you may want to change:
** The name of the guest.
** Remove the [[KVM_Virtual_Machine_XML_Configuration_Example#uuid|<uuid>]] line, a new UUID will be generated.
** The amount of memory, specified as [[KVM_Virtual_Machine_XML_Configuration_Example#memory|<memory>]]. Remove the  [[KVM_Virtual_Machine_XML_Configuration_Example#currentMemory|<currentMemory>]] line.
** The number of [[KVM_Virtual_Machine_XML_Configuration_Example#vcpu|vCPUs]] allocated to the guest.
** Remove the "cdrom" disk(s), if it is not going to be used.
** Edit the <disk> definitions and adjust the names for the new storage volumes that will be provisioned for the new virtual machine. The virtual machine will definitely need a [[Linux_Virtualization_Concepts#Virtual_Machine_Image|virtual machine image]], stored in (usually) [[Linux_Virtualization_Concepts#qcow2|qcow2]] format, end possible other block storage devices in [[Linux_Virtualization_Concepts#raw|raw]] format. Conventionally, the virtual machine image is stored in the main storage pool and it is [[Linux_Virtualization_Naming_Conventions#Virtual_Machine_Image_Naming_Convention|named based on the name of the VM]]:
 
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  &lt;source file='/main-storage-pool/''new-vm-name''.qcow2'/>
  <target dev='vda' bus='virtio'/>
  ...
</disk>
 
<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  &lt;source file='/main-storage-pool/'new-vm-name''-docker.raw'/>
  <target dev='vdb' bus='virtio'/>
  ...
</disk>
 
* Locate the network interface and replace the value of the mac address with a randomly generated value. A shell script that generate random MAC addresses is available here: [[Bash_script_that_generates_a_random_MAC_address|bash script that generates a random MAC address]].
* Clone the virtual machine image with the new name.
* Create any other storage volume that may be needed.
* Define the guest with [[virsh define]].

Revision as of 21:09, 30 June 2017

Internal

Commands

virsh
virt-install guestmount guestunmount virt-builder virt-cat virt-filesystems virt-inspector
libguestfs virt-copy-in virt-copy-out virt-customize virt-df virt-diff virt-edit virt-format
virt-log virt-ls virt-make-fs virt-p2v virt-rescue virt-resize virt-sparsify virt-sysprep
virt-tar-out virt-tar-in virt-top virt-v2v virt-viewer virt-what virt-who virt-xml-validate
qemu-img

Virtualization Host Storage Operations

Storage Pool Operations

Storage Volume Operations

Virtualization Host Network Operations

Create a Guest Virtual Machine

Virtualization host storage and host-level networking must be configured as a prerequisite to creating guest virtual machines. Once storage pools and storage volumes are made available, and the networking is configured, guest virtual machines can be created with

virt-install

If the XML definition of a virtual machine is available, it can be created with:

virsh define

Start/Stop Guest VMs

   virsh start
   virsh shutdown

Connect to the Guest VM

   virsh console

Adding Storage to Guests

Adding Storage to Guests

Cloning a Guest Virtual Machine

Cloning a Guest Virtual Machine