上一节总结了文件的归档、压缩与解压,以及压缩方式的不同,这一节总结以下有关于虚拟机的创建、快照、重装以及管理
今天还是按照执行脚本的方式完成一系列命令
一、虚拟机的安装
虚拟机的安装可以通过图形化界面以及脚本执行
1、图形化界面安装:
通过左上角的小电视选择创建
选择创建类型,本地安装、网络安装、网络安装一个空盘、直接引用硬盘
之后选择安装路径、选择内存大小、CPU、硬盘大小、然后取名字就好了
然后打开虚拟机硬件管理页面(小灯泡),修改网卡类型为virios,硬盘类型virtIO
之后就可以进入安装页面了,然后修改时间、硬盘分区等信息
通过instll source选择安装类型
之后点有个!感叹号的选项,选择自定义硬盘,修改成如下/boot启动文件大小一般为480,swap交换区可以参照window虚拟内存大小
之后就安装好了
2、脚本安装
#!/bin/bash ##命令运行环境的指定
virt-install \ ##安装虚拟机
--name $1 \ ##虚拟机名称指定,$1表示脚本后的第一串字符
--ram 1000 \ ##内存
--file /var/lib/libvirt/images/$1.img \ ##硬盘文件
--file-size 8 \ ##硬盘文件大小
--cdrom /home/kiosk/Desktop/rhel-server-7.1-x86_64-dvd.iso & ##安装源指定
然后给他文件可执行权限就可以安装了
虚拟机生成后会产生两个文件!
一个在/var/lib/libvirt/images/ ,这里是虚拟机的硬盘存放的地方,这里很重要,不能随便删除
一个在/etc/libvirt/qemu/,这里是虚拟机管理器生成的有关虚拟机描述的xml文件,如果把这个删除的话,虚拟机管理器中就不会显示虚拟机
3、生成虚拟机快照
虚拟机快照相当于是在真正的虚拟机上生成了一个镜像,然后安装镜像就可以快速得到一个新的虚拟机,7.2中我们建议创建qcow2格式的虚拟机快照。
qemu-img create -f qcow2 -b /var/lib/libvirt/images/Node.1.qcow2 /var/lib/libvirt/images/Node.1.qcow2
qeme-img 命令
create 创建
-f qcow2 Qcow2格式 Node.1.qcow2
源为Node.1的虚拟机
Node.1.qcow2名为XXX的虚拟机
以下是虚拟机有关的操作的一个脚本(针对7.2),将脚本文件放入/usr/sbin下可直接执行
case $1 in ##输入以下字符完成对应操作
reset) ##重装虚拟机快照
virsh destroy $2 &> /dev/null
rm -rf /var/lib/libvirt/images/$2.qcow2 &> /dev/null
qemu-img create -f qcow2 -b /var/lib/libvirt/images/Node.1.qcow2 /var/lib/libvirt/images/$2.qcow2 &> /dev/null
echo reseting ....
virsh start $2 &> /dev/null
echo start now ....
virt-viewer $2 &> /dev/null &
echo Finish .....
;;
create.qcow2) ##安装虚拟机快照
cd /var/lib/libvirt/images/ &> /dev/null
qemu-img create -f qcow2 -b /var/lib/libvirt/images/Node.1.qcow2 /var/lib/libvirt/images/$2.qcow2 &> /dev/null
virt-install --name $2 --ram 1024 --file /var/lib/libvirt/images/$2.qcow2 --file-size 8 --import &> /dev/null &
echo Create sccuessful ...
;;
create) ##安装虚拟机
virt-install --name $2 --ram 1024 --file /var/lib/libvirt/$2.qcow2,bus=virtio --file-size 8 --network source=br0,model=virtio --cdrom /home/kiosk/Desktop/rhel-server-7.2-x86_64-dvd.iso &> /dev/null &
echo Creating ....
;;
start) ##启动虚拟机
virsh start $2 &> /dev/null
echo start now ....
;;
poweroff) ##关闭虚拟机
virsh destroy $2 &> /dev/null
echo ok
;;
view)
virt-viewer $2&> /dev/null &
;;
undefine) #删除前端管理
virsh undefine $2
echo Job Done ....
;;
addvm) ##通过硬盘添加虚拟机前端
virt-install --name $2 --ram 1024 --file /var/lib/libvirt/images/$2.qcow2 --file-size 8 --import &> /dev/null &
echo Restore the $2 , Done ....
;;
esac ##有一个问题就是不知道在这个结构小如何分割命令,试过 \ 但没用
create.qcow2 创建虚拟机快照
create 创建虚拟机
reset 重装虚拟机快照
启动和强行关闭虚拟机
4、虚拟机管理命令
libvirtd ##虚拟机服务
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 ##临时恢复指定vm,vmname表示前端管理文件
virsh define vmname.xml ##永久恢复vm
virsh undefine vmname ##删除vm的前端管理,不会删除存储
我先删除Node.1的前端管理,但是他的前端管理文件还在
我再通过管理文件临时永久恢复vm,注意这里首先要切换到有xml的目录下执行,或者写存在xm的绝对路径