Linux系统中虚拟机的管理

1.虚拟机管理命令

	virt-manager		开启虚拟机管理器
	virsh list		显示正在运行的虚拟机	
	virsh list --all	查看所有虚拟机
	virsh start desktop	打开虚拟机
	virsh shutdown desktop	正常关闭虚拟机(可被阻塞)
	virsh destory desktop	强行关闭虚拟机
	virt-viewer desktop	显示虚拟机(但是会占用终端,可以用ctrlz,bg jobsnum打入后台)

例:

	virt-manager 开启虚拟机管理器。

Linux系统中虚拟机的管理_第1张图片

	virsh list		显示正在运行的虚拟机	
	virsh list --all	查看所有虚拟机

Linux系统中虚拟机的管理_第2张图片

模拟虚拟机的恢复
准备一个已经安装好的虚拟机
scp root@ip:/etc/libvirt/qemu/westos.xml /mnt/
scp root@ip:/var/lib/libvirt/images/westos.qcow2 /mnt/
在虚拟机管理器中删除这个装好的虚拟机(连文件一起删除)
(westos.xml 是虚拟机westos的硬件信息文件 westos.qcow2是虚拟机westos的文件信息)
Linux系统中虚拟机的管理_第3张图片

模拟恢复过程

	cd /mnt
	virsh create westos.xml			用硬件信息文件启动虚拟机

在操作过程中会有以下报错

error:Cannot access storage file ‘/var/lib/libvirt/images/westos.qcow2’(as uid:107.gid:107): No such file or directory
Linux系统中虚拟机的管理_第4张图片

原因是:用硬件信息启动虚拟机,默认在 /var/lib/libvirt/images/中寻找westos.qcow2系统的文件信息。而我们scp过来的westos.qcow2系统文件信息在/mnt,所以会产生报错。

解决方法:

	mv /mnt/westos.qcow2 /var/lib/libvirt/images/

Linux系统中虚拟机的管理_第5张图片

	virsh define westos.xml		永久恢复虚拟机

Linux系统中虚拟机的管理_第6张图片

virsh undefine westos	删除虚拟机(正在运行时删除不了,关闭运行即可)文件信息还在
rm -fr /var/lib/libvirt/images/westos.qcow2    删除虚拟机的文件信息

虚拟机的安装脚本
编辑一个sh文件($1是占位符,运行脚本时后面跟什么就是什么)

	vim /mnt/vm_create.sh

	1 test -z "$1" && {
	2         echo "Error: Please input VMNAME following scritps!!"     
	3         exit
	4 }				(1-4行:定义当$1占位符所在的位置是空的时候退出脚本不再执行,在此意义为当运行脚本安装虚拟机没有指定虚拟机名称时,退出安装脚本)
	5 virt-install \		(第5行 开启虚拟机图形化管理的命令,‘\’换行符,与前面命令空格隔开,后面不接空格,意为下一行命令是上一行命令的衔接)
	6 --name $1 \			(虚拟机的名字)
	7 --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \	(镜像虚拟机的安装文件,--cdrom后面接的是自己的镜像虚拟机存放路径)
	8 --memory 1024 \							(内存选1024)
	9 --vcpus 1 \								(cpu选1)
	10 --disk /var/lib/libvirt/images/$1.qcow2,size=6,bus=virtio \		(硬件信息是存放在 /var/lib/libvirt/images/$1.qcow2,路径不能错,size硬盘大小为6,)
	11 --network source=br0,model=virtio  &> /dev/null  &			(设置网关,屏蔽错误输出到null,且打入后台执行)

Linux系统中虚拟机的管理_第7张图片

	chmod +x vm_create.sh		对编辑的脚本进行授执行权
	/mnt/vm_create.sh		运行脚本即可

Linux系统中虚拟机的管理_第8张图片

快照(reset虚拟机的原理)

快照就相当于在虚拟机的硬件信息前放了一块’玻璃’,透过’玻璃’进行操作,所有的操作痕迹作用在‘玻璃’上,但是呈现出来的效果就是‘玻璃’上的痕迹加‘玻璃’后的内容,操作失误还原只需拿走‘玻璃’更换新的即可(因为母盘没有任何改变)。

	cd /var/lib/libvirt/images/	进入虚拟机硬件信息存放的位置
	ls				找出自己所需要的母盘信息(这里用westos虚拟机的信息做母盘,westos.qcow2)

Linux系统中虚拟机的管理_第9张图片

	qemu-img create -f qcow2 -b westos.qcow2 node1.qcow2	
	以westos.qcow2为母盘进行快照,生成node1.qcow2即成功 

Linux系统中虚拟机的管理_第10张图片
在安装虚拟机时选取硬件信息node1.qcow2进行安装。
Linux系统中虚拟机的管理_第11张图片

测试: 在硬件信息node1.qcow2安装的虚拟机node1中,rm -fr /* 使其系统崩溃不能重启,关闭虚拟机node1。然后删除/var/lib/libvirt/images/里面快照出来的文件node1.qcow2。然后重复以westos.qcow2为母盘进行快照一个新的node1.qcow2。再次打开虚拟机node1即可正常运行。

快照的脚本编辑(以快照出来的硬件信息进行虚拟机的后台安装)

	vim /mnt/vm_create_snopshot.sh

	1 qemu-img create \
	2 -f qcow2 \
	3 -b /var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2 &> /dev/null
	(1-3行以$1.qcow2为母盘生成快照$2.qcow2)
  	4 
	5 virt-install \	(安装命令)
	6 --name $2 \		(新虚拟机的名称)
	7 --memory 1024 \	(内存选用1024)
	8 --vcpus 1 \		(cpu选用规格1)
	9 --disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \	(硬件信息存放的路径,路径不能错)
	10 --network source=br0,model=virtio \		(网络的相关设置)
	11 --import &> /dev/null &	(屏蔽错误输出到null中,并打入后台运行。)

Linux系统中虚拟机的管理_第12张图片
chmod +x vm_create_snopshot.sh 对编辑的脚本授权
/mnt/vm_create_snopshot.sh westos node1 运行脚本
Linux系统中虚拟机的管理_第13张图片

你可能感兴趣的:(Linux运维初学)