Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
hypervisor:toolstack:domu [2014/06/04 17:19]
admin [Creating a PV VM from Template]
hypervisor:toolstack:domu [2015/03/03 16:24]
admin Page moved from hypervisor:basestack:domu to hypervisor:toolstack:domu
Line 164: Line 164:
  
 <WRAP center important 90%> <WRAP center important 90%>
-Once logged into the VM's console, you'll be "​trapped"​ inside this console. ​It won't be possible for you to come back to the host's console.+Once logged into the VM's console, you may get "​trapped"​ inside this console. ​In case there is no "​exit"​ possible, it won't be possible for you to come back to the host's console.
  
 This might be a problem when interacting from a plain terminal screen on the host itself, getting locked out of your host's console might force you to force a reboot in case you cannot access it via ssh from another machine to reboot it nicely!. This might be a problem when interacting from a plain terminal screen on the host itself, getting locked out of your host's console might force you to force a reboot in case you cannot access it via ssh from another machine to reboot it nicely!.
Line 195: Line 195:
 > wget http://​cdn.debian.net/​debian/​dists/​wheezy/​main/​installer-amd64/​current/​images/​netboot/​xen/​initrd.gz > wget http://​cdn.debian.net/​debian/​dists/​wheezy/​main/​installer-amd64/​current/​images/​netboot/​xen/​initrd.gz
 > wget http://​cdn.debian.net/​debian/​dists/​wheezy/​main/​installer-amd64/​current/​images/​netboot/​xen/​vmlinuz > wget http://​cdn.debian.net/​debian/​dists/​wheezy/​main/​installer-amd64/​current/​images/​netboot/​xen/​vmlinuz
-</​code>​ 
- 
-=== Create a logical volume for the VM's hard drive === 
-<​code>​ 
-> sudo lvcreate -L8G -nDebianWheezy xenvg 
 </​code>​ </​code>​
  
Line 206: Line 201:
 > xe template-list | grep Debian > xe template-list | grep Debian
 > xe vm-install new-name-label=Debian-Wheezy template="​Debian Wheezy 7.0 (64-bit)"​ > xe vm-install new-name-label=Debian-Wheezy template="​Debian Wheezy 7.0 (64-bit)"​
 +44c68930-1192-a196-b460-5f411a689c85
 </​code>​ </​code>​
  
 +A VDI will be created in the process, let's label it to avoid later confusion:
 +<​code>​
 +> xe vdi-list
 +...
 +uuid ( RO)                : 63e18344-6e0a-4bd5-9cc0-4b32d8de0e11
 +          name-label ( RW): 0
 +    name-description ( RW): Created by template provisioner
 +             ​sr-uuid ( RO): bc5fc2dd-fb0f-1e74-6226-0ece6e90c7a5
 +        virtual-size ( RO): 8589934592
 +            sharable ( RO): false
 +           ​read-only ( RO): false
 +...
 +> xe vdi-param-set name-label="​DebianWheezy 0" uuid=63e18344-6e0a-4bd5-9cc0-4b32d8de0e11
 +</​code>​
 +
 +A VBD was also created:
 +<​code>​
 +> xe vbd-list vm-name-label=Debian-Wheezy
 +uuid ( RO)             : 7b503b0e-ae3b-4f55-ef36-f6c3b8ed7ea3
 +          vm-uuid ( RO): 44c68930-1192-a196-b460-5f411a689c85
 +    vm-name-label ( RO): Debian-Wheezy
 +         ​vdi-uuid ( RO): 63e18344-6e0a-4bd5-9cc0-4b32d8de0e11
 +            empty ( RO): false
 +           ​device ( RO): 
 +</​code>​
 +
 +We still need to create the virtual network interface, here we'll specify a MAC address that must be used for compatibility with a given failover IP:
 +<​code>​
 +> xe vif-create vm-uuid=44c68930-1192-a196-b460-5f411a689c85 network-uuid=1ce402ce-e6a1-b496-b967-a00cc586e525 device=0 mac=02:​00:​00:​84:​fb:​29
 +</​code>​
 +
 +==== Templated VM Specific Operations ====
 +----
 +From: [[http://​wiki.xen.org/​wiki/​XCP_PV_templates_start]]:​\\
 +Eliloader is python script located in /​usr/​bin/​eliloader. It allows XCP to download network installation images (kernel and overgrown initrd) for specified operating system (actual network image is really differ in suse, centos and debian systems). For some legacy and antique systems (like RHEL 4) it to some patching of initrd. Exact path is constructed from type of template (install-distro in other-config) and url, provided by used in other-config:​ install-repository). After initrd and kernel is extracted they are used as kernel and initrd for virtual machine (and installation started).
 +
 +Right after successful VM start PV-bootloader is replaced from eliloader to pygrub (to boot to new VM native kernel). Of course, if user stops installation process, at next startup there will be no kernel and vm will not start again.
 +
 +<​code>​
 +> xe vm-param-set uuid=44c68930-1192-a196-b460-5f411a689c85 PV-bootloader=
 +> xe vm-param-set uuid=44c68930-1192-a196-b460-5f411a689c85 PV-kernel=/​root/​PVs/​debian-wheezy/​vmlinuz
 +> xe vm-param-set uuid=44c68930-1192-a196-b460-5f411a689c85 PV-ramdisk=/​root/​PVs/​debian-wheezy/​initrd.gz
 +> xe vm-start uuid=44c68930-1192-a196-b460-5f411a689c85
 +</​code>​
 +
 +To follow the installation process:
 +<​code>​
 +> xe vm-param-get uuid=44c68930-1192-a196-b460-5f411a689c85 param-name=dom-id
 +4
 +> screen -S Wheezy
 +> /​usr/​lib/​xen-4.1/​bin/​xenconsole 4
 +</​code>​
 +
 +After initial installation:​
 +<​code>​
 +> xe vm-param-set uuid=... PV-bootloader=pygrub
 +</​code>​
 +
 +=== Add Xen Tools ===
 +<color coral>​**TBC**</​color>​
 +----
 +===== Create Template and Appliance =====
 +----
 +Reference: [[http://​www.jansipke.nl/​creating-backups-of-running-vms-in-xenserver/​]]
 +
 +It seems that this operation can be performed even on a running VM.
 +
 +Pick target VM uuid:
 +<​code>​
 +> xe vm-list is-control-domain=false is-a-snapshot=false
 +</​code>​
 +
 +Create the snapshot:
 +<​code>​
 +> xe vm-snapshot uuid=<​vm-uuid>​ new-name-label=<​snapshotname>​
 +<​snapshot-uuid>​
 +</​code>​
 +
 +Transform the snapshot into a VM to be able to save it to a file:
 +<​code>​
 +> xe template-param-set is-a-template=false ha-always-run=false uuid=<​snapshot-uuid>​
 +> xe vm-export vm=<​snapshot-uuid>​ filename=<​filename>​.xva
 +Export succeeded
 +</​code>​
 +The export operation can take a while... Be patient until you see the "​Export succeeded"​ message.
 +
 +Finally let's get rid of the snapshot:
 +<​code>​
 +> xe vm-uninstall uuid=<​snapshot-uuid>​ force=true
 +</​code>​
  
 ---- ----