一.虚拟机的管理
使用虚拟机需要以下几个前提条件:
- CPU必需支持虚拟化,可以在/proc/cpuinfo文件中想找flags,如果是inter的显示为vmx,amd的显示为svm
- CPU必需支持64位操作系统,可以在上述文件中查找lm标记,如果有则支持
- 系统必需为64位的RHEL,且系统版本为RHEL6.4及以上为最佳
- 必需在BIOS里开启CPU的VT功能
RedHat使用虚拟化的软件依赖:
yum install qemu-kvm qemu-img ###用户级 KVM 仿真器和磁盘映像管理器
yum install virt-manager ###虚拟机管理界面
1.使用的命令和常用参数:
virt-manager ##开启虚拟机管理器
virsh list ##查看正在运行的虚拟机
virsh list --all ##查看所有的虚拟机
virsh start desktop ##开启虚拟机
virsh shutdown desktop ##正常关闭虚拟机,有关闭的过程,非正常的关闭会被阻塞
virsh destory desktop ##强制关闭虚拟机,相当于直接断电
virt-viewer desktop ##显示虚拟机
虚拟机管理器界面
显示正在运行的虚拟机,由于我电脑上目前没有开启虚拟机所以没有显示
显示所有的虚拟机,可以看到开了两个虚拟机,其他三个都是关闭的
开启以后用virsh list查看可以看到虚拟机正在运行,但是没有图形界面显示
在虚拟机正常运行的情况下,没有登陆进入系统,所以正常关闭命令被阻塞了,可以看到desktop还是在运行中
使用shutdown则可以关闭,可以看到desktop已经关闭了
在桌面上显示虚拟机图形界面
2.虚拟机的恢复
准备一个已经安装好的虚拟机
mv /etc/libvirt/qemu/test.xml /mnt ##此文件是虚拟机的配置文件,
mv /var/lib/libvirt/images/test.qcow2 /mnt
在虚拟机管理器中删除这个装好的虚拟机
virsh create test ##一次性恢复
在系统报错以后:
mv /mnt/test.qcow2 /var/lib/libvirt/images/
virsh define test ##永久恢复
二.安装虚拟机
1.使用管理器安装
打开虚拟机管理器后
点左上角小灯泡创建新虚拟机
选择第一项,使用镜像文件安装,自己有网络安装源的话也可以选第二项
选择镜像文件的路径
在文件目录中双击选择镜像文件
设定内存大小和分配cpu核心数,给一颗即可,给太多会使真机变卡
设定磁盘大小
设定虚拟机名称,之后点finish完成安装,一个新的虚拟机就安好了,接下来将进入系统安装界面,安装流程见下文。
2.编写脚本安装
建议在根目录下新建一个目录,把系统镜像文件放到里头,不然放在别的目录下该文件所有者会改变不再是root
编写脚本如下:
#!/bin/bash
virt-install \
--cdrom 系统镜像文件绝对地址/系统镜像文件 ##指定系统镜像安装文件的来源
--ram 1024 \ ##内存大小,默认单位为M
--cpus 1 ##给一颗cpu
--disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=9 \ ##指定系统硬盘安装文件路径,bus表示硬盘类型,size表示硬盘大小
--network bridge=br0,model=virtio &> /dev/null & ##设定网络方式为桥接网络,类型为虚拟,&表示在后台运行,使用输出重定向把报错扔进垃圾桶里,扔向垃圾桶的过程后台运行
注:在shell中,表示换行的字符为'空格\',有时候一条命令使用的参数和对象会很长,写在一行会显得杂乱无章,使用换行可以很清楚地看懂每行的含义,也方便注释
$1 脚本后所跟的第一串字符,$1 传参变量:将脚本外部的内容,传到内部,如果运行脚本的时候带参数,那么可以在脚本里通过 $1 获取第一个参数,$2 获取第二
个参数......依此类推,一共可以直接获取9个参数(称为位置参数)。$0用于获取脚本名称。
在/mnt下创建个脚本文件,名字任意取,不过最好是能表意的名字,让自己知道其作用是什么
脚本内容如图,写完后退出保存,运行脚本
1 sh install.sh
运行完脚本后弹出了该界面,接下来附上安装系统相关教程
选择第一项,安装系统,第二项为测试该镜像文件完整性并安装系统,第三项为系统排错模式
选择整个安装过程使用的语言,不是安装好以后系统的语言,在此我选择默认的美式英文,如果想选中文可以往下查找,选好之后点右下角的continue进入下一界面
在此界面选则安装细节,首先选择DATE&TIME
设定时间和时区,在rhel中是没有北京时区,可以选择上海,都是在东八区,选完后点左上角的Done
选完时间时区后点LANGUAGE SUPPORT安装输入法,在此我跳过了KEYBOARD,想要别的键盘设置的可以自己更改,选完后点Done
点击SOFTWAREA安装软件,在此为了提高安装速度,我只选择了安装基本图形界面,想要其他功能的可以自行添加,完成后点Done
点击INSTALL DESTINATION设定系统分区,选i will configure partitioning 自行手动设定,也可选自动安装,点Done
点左下角的加号添加分区
添加swap分区,大小设定为200,默认单位为M,添加/boot分区,大小设定500,添加/分区,将其余所有空间全部给/分区,选完后点Done
设定root用户密码和普通用户名称及密码,在此可不添加普通用户,坐等安装完成后,点击右下角reboot,重启系统,完成系统的安装。
三.虚拟机的快照
在使用虚拟机时如果不慎操作失误使系统崩溃,而又嫌重装虚拟机太费时间,就需要使用到快照。
快照的原理类似于“照镜子”,你在镜子上看到的是真实存在的像,而在镜子上涂鸦改变的只是镜像而不是真实的像。所谓快照实际上将r w x分开,
读的时候读取母盘的信息,而操作写入时则是对快照操作。
脚本内容如下:
#!/bin/bash
qemu-img create -f qcow2 -b \ ##-f 表示快照后的文件类型为XXX
/var/lib/libvirt/images/$1.qcow2 \ ##$1表示输入脚本命令空格之后输入的第一个字符,-b表示要照的文件为XXX
/var/lib/libvirt/images/$2.qcow2 ##快照后的文件为XXX
virt-install \
--name $2 \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/$2.qcow2,bus=virtio \
--import & ##添加已经存在的硬盘信息文件
在/mnt下创建个脚本文件
写完后退出保存,运行脚本
1 sh quickphoto.sh install
快照生成
三.reset脚本
脚本内容为:
#!/bin/bash
virsh destroy $1
rm -fr /var/lib/libvirt/images/$1.qcow2
qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2
/var/lib/libvirt/images/$1.qcow2
virsh start $1
virt-viewer $1
创建脚本文件
脚本内容如图,退出保存,运行脚本
1 sh reset.sh yasuo install
重置成功,以后的实验操作都可在快照上进行,做坏了使用脚本重置即可
注:运行脚本时一定要注意自己要输入的参数是什么意思,在写脚本时要想清楚