Linux从入门到精通——Linux中虚拟机的管理

一.虚拟机的管理

使用虚拟机需要以下几个前提条件:

  •      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 yasuo                      ##建立一个名称为yasuo的虚拟机                                                   

 

 

运行完脚本后弹出了该界面,接下来附上安装系统相关教程

选择第一项,安装系统,第二项为测试该镜像文件完整性并安装系统,第三项为系统排错模式

 

 

选择整个安装过程使用的语言,不是安装好以后系统的语言,在此我选择默认的美式英文,如果想选中文可以往下查找,选好之后点右下角的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 yasuo                                 ##对虚拟机install进行快照,生成yasuo                          

 

 

快照生成

 

三.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                                                           

 

 

 

重置成功,以后的实验操作都可在快照上进行,做坏了使用脚本重置即可

 

注:运行脚本时一定要注意自己要输入的参数是什么意思,在写脚本时要想清楚

posted on 2018-07-31 11:19  对方正在输入你的  阅读(334)  评论(0编辑  收藏  举报

导航