=== Part 2: Managing Backing Up Virtual Machines from the Command Line ===
{| width="40%" align="right" cellpadding="10"
|- valign="top"
|colspan="2"|{{Admon/noteimportant|Manage Backing up VMs|There are two general processes in order to back up your images:<ol><li>'''Compressing your images''' (also recommended to backup up to external storage USB Key) using the '''gzip''' command.</li><li>'''Backup the VM xml configuration file''' (preferably to USB key) using '''virsh''' shell command to add VM to virtual machine manager list (in the event that the HOST machine is "wiped" and re-installed, but VM images and xml configuration files have been backed up external storage).</li></ol><br />Taking the time to backup the image of the Operating System's file system allows the user to return to a '''"restoration point"''' using the '''gunzip''' command in case something bad occurs to the OS during a lab.<br />Failure to take the time to make and confirm backups can result in loss of lab work for the student!|}}|}# Shut down all of the virtual machines .# Change to the directory <b><code>/var/lib/libvirt/images/</code></b>. Note the size of the files in this directory. What do these files contain?# Make a compressed backup of the '''centos3.qcow2''' file to your home directory with this command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">gzip < centos3.qcow2 > ~YourUserId/centos3.qcow2.backup.gz</span></code></b><br />(Note: Make certain to use the redirection signs "<" and ">" properly in the command!)# Compare the size of the compressed and original files (hint: use '''ls -lh'''). If file is very large (like 15GB), you didn't compress it and you need to remove that file and perform the previous step until you get it right!# Start the '''''centos3''''' VM.# '''Make certain that you are in your VM and <u>not</u> in your main system!''' # Wreck <u>only</u> your centos3 system! Try this command inside the centos3 virtual machine:<b><code><span style="color:#3366CC;font-size:1.2em;">rm -rf /*</span></code></b> (ignore error messages).# Shut down the centos3 VM. If you tried to start the centos3 VM, it would not boot since all system files have been removed!# Restore the original image from the backup in your home directory by typing this command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">gunzip < ~YourUserId/centos3.qcow2.backup.gz > centos3.qcow2'''</span></code></b># Restart the VM. Is it working normally?# Create compressed backups of your other virtual machines (ie. '''centos1''' and '''centos2''').# You should make a copy of the xml configuration file in case you "wipe" and re-install the host|The commands used machine, and want to add a restored VM backups to manage the virtual machines must machine manager list. We will demonstrate using the centos3 xml configuration file, and prove that a "clone" can be executed added to your list.Please perform the following step:# Execute the following command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh dumpxml centos3 > centos3.xml</span></code></b># Examine the file <b><code><span style="color:#3366CC;font-size:1.2em;">centos3.xml</span></code></b>. What does it contain? What format is it in?<br><br># We will now learn how to download a compressed image file and xml configuration file and add it as a VM to the virtual manager menu.# Issue the following commands:<ul><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget http://cs.senecac.on.ca/~murray.saul/ops235/practical1.qcow2.gz</span></code></b></li><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget https://scs.senecac.on .ca/~murray.saul/ops235/practical1.xml</span></code></b><br><br></li></ul><ol><li value="17">Copy these files to the '''/var/lib/libvirt/images''' directory and decompress the image</li><li>Make certain your present working directory is: '''/var/lib/libvirt/images'''</li><li>Issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh define practical1.xml</span></code></b></li><li>What happened in the virtual manager window? To remove a VM entry in the Virtual Manager window, simply issue the host command: '''virsh undefine vm_name''' (without the '''.xml''' file extension)</li><li> Launch the VM to see if it boots-up</li><li>Can you log into this VM? Perhaps your disk pack) and not inside instructor will give you a clue in week #7... >;p<br><br></li></ol>{| width="40%" align="right" cellpadding="10"|- valign="top"|colspan="2"|{{Admon/tip|Shutting Down the Host while Virtual Machines are Running|If you shut down your host system while virtual machinemachines are running, they will be suspended, and will resume the next time you boot your host system.}}
|}
# Start <ol> <li value="22">For the remainder of these labs, it is assumed that you will backup <u>'''centos1both''' virtual machine, and stop </u> the '''centos2''' images and xml configuration files for <u>'''centos3all''' </u> Virtual machines, when asked to backup your virtual machines.# Switch It is also highly recommended to backup these files to an external storage device (eg. USB key) in case the '''c7host''' host machine, gets "wiped" and open a shell terminal.# Enter these admin commands into you need to rebuild your '''c7host''' HOST machine and note the result::: <b><code><span style="color:#3366CC;font-size:1then restore your Virtual Machines...2em;">virsh list</span></code></bli>:: <bli><code><span style="color:#3366CC;font-sizeAnswer this question in your log book:1.2em;">virsh list --all</spanli></code></bol>:: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh list --inactive</span></code></b>{{Admon/important|Virtual Machine Does not Shutdown from Command|If the Virtual * In order to fully back up a virtual machine fails to shutdown from the <code>virsh shutdown</code> command, then you can go to the '''Virtual Machine manager''' and '''halt''' or '''shutdown''' within the VM itself, then you can click the '''PowerOff''' button what information should be saved in the VM window. You'll want to avoid a forced shutdown since those are equivalent addition to yanking the power cord out of the wall on a physical virtual machine!|}}image?<ol><li value="424">Now, shut-down your centos1 VM normally, A previous OPS235 student graciously created a shell script that you can download and close run to check to see how you performed this lab (to see if you are on the centos1 VM windowright track).</libr><li>Switch to your terminal and Simply issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh start centos1wget http://matrix.senecac.on.ca/~murray.saul/ops235/lab2check2.bash</span></code></b></li><li>Using the appropriate command check to see if and run on your centos1 VM is now running'''c7host machine'''.</libr><libr>There are other commands that can be used (such as '''suspend'''If the shell script indicates any major errors, please inform your OPS235 instructor or lab assistant to advise what to do'''shutdown'''). The "shutdown" command may not always work since it relies on the guest handling a particular ACPI event. Why do you think it is useful to have commands to manipulate VMs?</libr><libr>Since this is a text-based version of Linux, you do not need to turn off the screen-saver.</li></ol>
===Part 3: Manipulating VMs via VM Backup & Management by Shell Scripts===
{|width="40%" align="right" cellpadding="10"
|- valign="top"
If you require <u>'''additional practice'''</u> in creating shell scripts using logic, loops and mathematical operations, run the commands in your '''Matrix''' account: <ul><li>'''/home/murray.saul/scripting-2'''</li><li>'''/home/murray.saul/scripting-3'''</li></ul>
Perform the following steps in your c7host machine:
# Start the '''centos1''' virtual machine, and stop the '''centos2''' and '''centos3''' virtual machines.
# Switch to the '''c7host''' machine, and open a shell terminal.
# Enter these admin commands into your '''c7host''' machine and note the result:
:: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh list</span></code></b>
:: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh list --all</span></code></b>
:: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh list --inactive</span></code></b>
{{Admon/important|Virtual Machine Does not Shutdown from Command|If the Virtual machine fails to shutdown from the <code>virsh shutdown</code> command, then you can go to the '''Virtual Machine manager''' and '''halt''' or '''shutdown''' within the VM itself, then you can click the '''PowerOff''' button in the VM window. You'll want to avoid a forced shutdown since those are equivalent to yanking the power cord out of the wall on a physical machine!|}}
<ol><li value="4">Now, shut-down your centos1 VM normally, and close the centos1 VM window.</li><li>Switch to your terminal and issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh start centos1</span></code></b></li><li>Using the appropriate command check to see if your centos1 VM is now running.</li><li>There are other commands that can be used (such as '''suspend''', or '''shutdown'''). The "shutdown" command may not always work since it relies on the guest handling a particular ACPI event. Why do you think it is useful to have commands to manipulate VMs?</li><li>Since this is a text-based version of Linux, you do not need to turn off the screen-saver.</li></ol>
# Open a Bash shell terminal and login as root.
# Use a text editor (such as <b><code><span style="color:#3366CC;font-size:1.2em;">vi</span></code></b> or <b><code><span style="color:#3366CC;font-size:1.2em;">nano</span></code></b>) to create a Bash Shell script called: <b><code><span style="color:#3366CC;font-size:1.2em;">backupVM.bash</span></code></b> in /root's home directory.
=== Part 4: Backing Up Virtual Machines ===
{| width="40%" align="right" cellpadding="10"
|- valign="top"
|colspan="2"|{{Admon/important|Backing up VMs|There are two general processes in order to back up your images:<ol><li>'''Compressing your images''' (also recommended to backup up to external storage USB Key) using the '''gzip''' command.</li><li>'''Backup the VM xml configuration file''' (preferably to USB key) using '''virsh''' shell command to add VM to virtual machine manager list (in the event that the HOST machine is "wiped" and re-installed, but VM images and xml configuration files have been backed up external storage).</li></ol><br />Taking the time to backup the image of the Operating System's file system allows the user to return to a '''"restoration point"''' using the '''gunzip''' command in case something bad occurs to the OS during a lab.<br />Failure to take the time to make and confirm backups can result in loss of lab work for the student!|}}
|}
# Shut down all of the virtual machines.
# Change to the directory <b><code>/var/lib/libvirt/images/</code></b>. Note the size of the files in this directory. What do these files contain?
# Make a compressed backup of the '''centos3.qcow2''' file to your home directory with this command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">gzip < centos3.qcow2 > ~YourUserId/centos3.qcow2.backup.gz</span></code></b><br />(Note: Make certain to use the redirection signs "<" and ">" properly in the command!)
# Compare the size of the compressed and original files (hint: use '''ls -lh'''). If file is very large (like 15GB), you didn't compress it and you need to remove that file and perform the previous step until you get it right!
# Start the '''''centos3''''' VM.
# '''Make certain that you are in your VM and <u>not</u> in your main system!'''
# Wreck <u>only</u> your centos3 system! Try this command inside the centos3 virtual machine:<b><code><span style="color:#3366CC;font-size:1.2em;">rm -rf /*</span></code></b> (ignore error messages).
# Shut down the centos3 VM. If you tried to start the centos3 VM, it would not boot since all system files have been removed!
# Restore the original image from the backup in your home directory by typing this command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">gunzip < ~YourUserId/centos3.qcow2.backup.gz > centos3.qcow2'''</span></code></b>
# Restart the VM. Is it working normally?
# Create compressed backups of your other virtual machines (ie. '''centos1''' and '''centos2''').
# You should make a copy of the xml configuration file in case you "wipe" and re-install the host machine, and want to add a restored VM backups to the virtual machine manager list. We will demonstrate using the centos3 xml configuration file, and prove that a "clone" can be added to your list.Please perform the following step:
# Execute the following command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh dumpxml centos3 > centos3.xml</span></code></b>
# Examine the file <b><code><span style="color:#3366CC;font-size:1.2em;">centos3.xml</span></code></b>. What does it contain? What format is it in?<br><br>
# We will now learn how to download a compressed image file and xml configuration file and add it as a VM to the virtual manager menu.
# Issue the following commands:<ul><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget http://cs.senecac.on.ca/~murray.saul/ops235/practical1.qcow2.gz</span></code></b></li><li><b><code><span style="color:#3366CC;font-size:1.2em;">wget https://scs.senecac.on.ca/~murray.saul/ops235/practical1.xml</span></code></b><br><br></li></ul>
<ol><li value="17">Copy these files to the '''/var/lib/libvirt/images''' directory and decompress the image</li><li>Make certain your present working directory is: '''/var/lib/libvirt/images'''</li><li>Issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">virsh define practical1.xml</span></code></b></li><li>What happened in the virtual manager window? To remove a VM entry in the Virtual Manager window, simply issue the command: '''virsh undefine vm_name''' (without the '''.xml''' file extension)</li><li> Launch the VM to see if it boots-up</li><li>Can you log into this VM? Perhaps your instructor will give you a clue in week #7... >;p<br><br></li></ol>
{| width="40%" align="right" cellpadding="10"
|- valign="top"
|colspan="2"|{{Admon/tip|Shutting Down the Host while Virtual Machines are Running|If you shut down your host system while virtual machines are running, they will be suspended, and will resume the next time you boot your host system.}}
|}
<ol>
<li value="22">For the remainder of these labs, it is assumed that you will backup <u>'''both'''</u> the images and xml configuration files for <u>'''all'''</u> Virtual machines, when asked to backup your virtual machines. It is also highly recommended to backup these files to an external storage device (eg. USB key) in case the host machine gets "wiped" and you need to rebuild your HOST machine and then restore your Virtual Machines...</li>
<li>Answer this question in your log book:</li>
</ol>
::* In order to fully back up a virtual machine, what information should be saved in addition to the virtual machine image?
<ol><li value="24">A previous OPS235 student graciously created a shell script that you can download and run to check to see how you performed this lab (to see if you are on the right track).<br>Simply issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">wget http://matrix.senecac.on.ca/~murray.saul/ops235/lab2check2.bash</span></code></b> and run on your '''c7host machine'''.<br><br>'''If the shell script indicates any major errors, please inform your OPS235 instructor or lab assistant to advise what to do'''.<br><br></li></ol>