虚拟机的创建和管理

系统虚拟机管理

1.安装

<<图形界面安装>>

镜像安装
(1)
在真机中用root身份执行"virt-manager"


(2)点击下图红色标注的地方-->选择"localinstall media(ISO image or CDROM)-->Foward


(3)
点击Use ISO image-->Browse


(4)
点击Browse Local-->选择该镜像在本机的存储位置



(5)
镜像位置选定-->Foward


(6)
分配内存大小和cpu个数


(7)
分配硬盘大小(4.8G以上)


(8)
给该虚拟机命名


(9)
用上下键选中下图第一个选项-->Enter


(10)
选择安装过程中使用的语言,默认使用EnglishUS



出现下面菜单图:


(11)点击DATE&TIME选择时区-->选择RegionAsiaCityShanghai-->done


(12)
点击LANGUAGE SUPPORT-->选择英文和简体中文-->done


(13)
点击SOFTWARE SELECTION-->选择Server with GUI-->done


(14)
选择INSTALLATION DESTINATION-->选择下图红色标注的部分


(15)
partitioning scheme改成下图标注部分-->点击下图蓝色链接


(16)
"/""/boot"以及"swap"按照下图分区-->done


(17)Begin Installation


(18)
设置超级用户密码,和普通用户名以及密码



<<采用脚本进行安装>>

1)创建一个Create_vm.sh文件,文件内容如下


#!/bin/bash                                                                   
命令运行环境的指定
virt-install   \                                                                 
安装虚拟机
--name $1  \                                                                 
虚拟机名称指定,$1表示脚本后的第一串字符
--ram 1024 \                                                                 
内存大小
--file /var/lib/libvirt/images/$1.qcow2
bus=virtio  \     硬盘文件指定安装路径以及设置硬盘类型
--file-size 8 \                                                                 
硬盘文件大小
--cdrom /iso/rhel-server-7.1-x86_64-dvd.iso \              
安装源指定
--network source=br0,model=virtio \                            
设置网络接口
--cpus 1 &                                                                    
设置cpu个数
2)给该文件授予执行权限
chmod +x /dir/Create_vm.sh

(3)执行该脚本
/dir/Create_vm.sh $1

注意:脚本文件的执行需要用绝对路径,不论时用脚本还是用图形界面安装一个虚拟机,都会产生一个硬盘文件.qcow2(在/var/lib/libvirt/images查看),一个前端管理工具文件.xml:只记录硬件的信息(在/etc/libvirt/qemu查看)如下图红色标注



2.管理

virt-manager                                                            开启图形管理工具
virt-viewer vmname                                                 
显示虚拟机,vmname表示虚拟机名称
virsh list                                                                   
列出正在运行的vm
virsh list --all                                                            
列出所有vm
virsh start vmname                                                  
运行指定vm
virsh shutdown vmname                                         
正常关闭指定vm
virsh destroy vmname                                             
强行结束指定vm
virsh create vmname.xml                                        
临时恢复指定vmvmname表示前端管理文件
virsh define vmname.xml                                       
永久恢复vm
virsh undefine  vmname                                          
删除vm的前端管理,不会删除硬盘文件
Tips
:从A主机拷贝虚拟机(以拷贝的虚拟机叫node1为例)到B主机上
拷贝A主机硬盘文件 :cp/var/lib/libvirt/images/node1.qcow2  Udir

拷贝A主机前端管理文件:cp/etc/libvirt/qemu/node1.xml Udir   xml:可扩展标记语言,用作数据封装)
将硬盘文件移动到B主机指定路径下:mv Udir/node1.qcow2 /var/lib/libvirt/images/
将硬盘文件移动到B主机指定路径下:mv Udir/node1.xml  /etc/libvirt/qemu/
永久恢复vmvirsh definenode.xml

3.虚拟机快照(相当于重新建立一个虚拟机)

1)实验:以node1为母盘,建立一个快照,并恢复该快照虚拟机

①qemu-img create -f qcow2 -b  node1.qcow2node_snap.qcow2 


②查看快照硬盘文件和母盘文件大小 


③此时只是创建了硬盘文件并没有前端管理文件。
我们可以采用图形的方式新建前端管理文件。具体步骤:

virt-manager


选中镜像硬盘文件的存储位置





④快照虚拟机创建完毕,查看/etc/libvirt/qemu/下多了node_snap.xml文件 



2)实验:以node1为母盘,建立多个快照,并恢复该快照虚拟机
①当建立多个快照的时候,把快照的母盘的前端管理工具文件隐藏起来,原因:保护起来,一旦母盘崩掉,所有快照也会崩掉。如下图,node1.qcow2仍存在,可是node1.xml被删除


②为母盘更改名字:


③创建多个快照:


采用图形的方式新建前端管理文件,如上述实验1

(3)创建快照脚本

脚本中用绝对路径比较稳定


脚本中包含前端管理文件的创建,先给该脚本执行权限,再执行命令即可


(4)恢复快照脚本


注意:单步查看脚本文件的执行,查看错误,sh -x 脚本文件名。不论时用脚本还是用命令快照一个虚拟机,都会产生一个硬盘文件.qcow2/var/lib/libvirt/images),一个前端管理工具文件.xml:只记录硬件的信息(/etc/libvirt/qemu)。