【linux】虚拟机管理

1. 图形界面安装虚拟机

以超级用户的身份打开虚拟机管理器,输入命令virt-manager
在这里插入图片描述
打开界面如图所示,desktop和server是两个已有虚拟机。
在这里插入图片描述
我们重新安装一个新的虚拟机,点击左上角File->New Virtual Machine。选择第一项,采用镜像法安装系统,前提是我们要有镜像文件iso。
在这里插入图片描述
Forward,选择Use ISO image->Browse->Browse Local->open添加镜像文件。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
RAM选择1024MB,CPUs选择1,硬盘容量disk选择10GB,名字随便,此处自己酌情配置即可,完成后点击Finish。此处就不放截图了。
在这里插入图片描述
选中刚新建的虚拟机,右键单击->open,我们来完善虚拟机的其他配置。
在这里插入图片描述
系统语言环境选择English,这样有利于查看语法,当然你也可以选择中文,->continue。
在这里插入图片描述
DATE&TIME选择东八区
在这里插入图片描述
KEYBOARD和LANGUAGE SUPPORT,我在english之外还添加了Chinese。
在这里插入图片描述
SOFTWARE SELECTION选择Server with GUI图形界面,对于虚拟机,建议先不要对右侧的选项作选择 ,点击Done
在这里插入图片描述
INSTALLATION DESTINATION我们选择自己来分区
在这里插入图片描述
分区方案选择标准分区。
在这里插入图片描述
我们将10GB硬盘容量分为以上三个区,大概讲一下/boot和/swap的分区。
/boot是系统的启动目录,存放系统自动启动文件,内核,初始化程序。如果有/boot独立分区时,务必让该分区在整块硬盘的最前面部分。这一步其实安装程序帮我们完成了,我们可以看到/boot所在的磁盘分区为vda1。
/swap是内存交换空间,理论上说“swap最好为物理内存的1.5到2倍之间”,但我们只配置了500mb,这是为什么呢?swap交换空间是很重要的,它可以避免因为物理内存不足而造成的系统效能低的问题。一般而言,如果物理内存有4GB以上时,其实swap也可以不必额外设置。swap内存交换空间的功能是:当有数据被存放在物理内存里面,但是这些数据又不时常被CPU所取用,那么这些不常被使用的程序将会被丢到swap交换空间中,而将速度较快的物理内存空间释放出来给真正需要的程序使用。所以,如果系统不是很忙,而内存又很大,自然不太需要swap。
在这里插入图片描述
Accept Changes保存改动即可。
在这里插入图片描述
右下角->Begin Installation
在这里插入图片描述
最后两个设置,一个是配置root用户的密码,第二个是新增加一个普通用户及密码。接下来就是等待安装过程咯。完成后,点击Reboot进行重启。
在这里插入图片描述

在这里插入图片描述
上图是我们刚新建的普通用户,登入即可使用安装的新虚拟机啦。
图形界面安装虚拟机是简单,但是如果我们要安装的是很多台虚拟机,难道要每一次都将这些步骤重新走一遍?那工作效率可太低了。因此,接下来介绍一下使用脚本进行虚拟机的安装、快照以及重置,大大克服了镜像法安装的繁多步骤。

2. 脚本批量安装虚拟机

介绍两种脚本安装虚拟机的情况。一种是从无到有,通过写.sh脚本文件快速安装一个新的虚拟机。第二种是在已有其他安装好的虚拟机文件基础之上,如何快速安装。

2.1 普通脚本文件安装

首先要切换到root用户下,通过ps可以查看到当前的进程,使用which bash可以看出系统命令是存储在/usr/bin/目录下。我们可以将等会写好的脚本文件与系统命令放在一起,方便调用。
在这里插入图片描述
编辑.sh脚本文件,这里我们的文件名是createvm.sh
在这里插入图片描述
编辑内容如下:
在这里插入图片描述
对照之前的图形界面安装虚拟机我们来简单理解一下,首先点击创造新的虚拟机按钮;说明清楚iso镜像文件的绝对地址;配置内存为1024MB,单核;虚拟机名字我们设置为一个参数,通过带参命令的执行传进来;/var/lib/libvirt/images/name.qcow2是硬盘,硬盘大小为10GB,行末的空格和斜杠表示换行。
脚本文件写完后,怎么执行呢?当然要赋予文件可执行权限啦。
在这里插入图片描述
然后把createvm.sh移动到/usr/bin/目录下,这样调用起来就和系统常规命令一样快捷。
在这里插入图片描述
安装效果如下:
在这里插入图片描述
之后就进入了和图形界面一样的安装模式,此处不再赘述。

2.2 拥有硬盘文件与硬盘信息文件的快速安装/恢复虚拟机

当然这个方法的实现建立在我们拥有硬盘文件和前端文件的基础上。
硬盘文件:/var/lib/libvirt/images/potizo.qcow2
硬盘信息文件:/etc/libvirt/qemu/potizo.xml
在这里插入图片描述
如上图所示,在虚拟机管理器中只有三个虚拟机,没有名为zoe这个虚拟机。
但是我们有zoe这个虚拟机的硬盘文件和硬盘信息文件,在/mnt目录下。
在这里插入图片描述
下来就是恢复过程,当然也可以理解为安装,因为把这两个文件拷贝到其他主机上就可以安装出来一个和zoe一模一样的虚拟机。
还记得我们之前用脚本文件安装虚拟机时,createvm.sh里关于硬盘配置的语句是什么吗。–disk /var/lib/libvirt/images/$1.qcow2,我们现在要做的就是先把硬盘文件放回原本应该存在的目录下。(为什么一定要存放在这个目录下,我们先不用管,这个路径是KVM默认查找镜像的地方)如果没有移动硬件文件,就直接恢复虚拟机的话,会出现如下错误。
在这里插入图片描述
所以切记,在恢复虚拟机之前,一定要把硬盘文件vmname.qcow2移动到/var/lib/libvirt/images/下,然后恢复即可。这里create和define都能恢复虚拟机,区别在于create是临时恢复,define是永久恢复。
在这里插入图片描述
在这里插入图片描述
我们再查看一下虚拟机管理器,名为zoe的虚拟机找回来了。

3. 虚拟机管理命令

  • virt-manager 进入虚拟机管理器界面
  • virsh list 显示当前正在运行的虚拟机
  • virsh list --all 查看所有虚拟机
  • virsh start potizo 打开虚拟机
  • virsh shutdown potizo 正常关闭虚拟机(前提是进系统)
  • virsh destroy potizo 强制关闭虚拟机
  • virt-viewer potizo 显示虚拟机
  • virsh create potizo.xml 临时恢复虚拟机,xml是硬盘信息文件即前端管理文件
  • virsh define potizo.xml 永久恢复虚拟机
  • virsh undefine potizo 删除虚拟机的前端管理,但不会删除存储
    【注】:“potizo”是我的虚拟机名字

4. 制作虚拟机快照

4.1 命令方式

在这里插入图片描述
这句命令的意思是以rhel7.0.qcow2为母盘,创建一个名为potizo的虚拟快照。然后打开虚拟机管理器,用快照生成potizo.qcow2硬盘文件来安装虚拟机(这与之前的用镜像文件安装不一样噢)
在这里插入图片描述
选择Import existing disj image->Forward
在这里插入图片描述
把快照文件的路径放进去,下一步
在这里插入图片描述
在这里插入图片描述
给普通用户起名字,最后Finshin,利用快照文件安装了一个新的虚拟机potizo,它的母盘是虚拟机rhel7.0。
在这里插入图片描述

4.2 脚本方式

在这里插入图片描述
配置内容如下:
在这里插入图片描述
首先说明这是一个快照文件, 以参数1的虚拟机为母盘,创建一个名为参数2的虚拟机快照。剩下的与脚本安装虚拟机语句含义一样,&>/dev/null表示不显示过程中的繁琐信息,&表示后台运行,不占用终端。
然后给该文件赋予可执行权限。
在这里插入图片描述
将snapshot.sh文件移动到/usr/bin/目录下,调用起来和系统常规命令一样快捷。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到我们创建的以rhel7.0为母盘的student虚拟机已经running啦。(:hh我是装了多少个虚拟机

4.3 小补充

有了快照,我们完全不用害怕玩坏虚拟机,只要母盘没事,玩坏以后快照再弄一个就是。
因此建议将母盘虚拟机隐藏起来,以免被我们误删。
方法一:
直接undefine母盘信息文件,并且更改母盘的硬盘文件名称。
对了,硬盘信息.xml文件存在的路径是/etc/libvirt/qemu。和硬盘文件不在一个路径。
在这里插入图片描述
1)undefine硬件信息文件。
在这里插入图片描述
2)修改硬盘文件名称,rhel7.0.qcow2改为rh7.qcow2
在这里插入图片描述
方法二:
在虚拟机管理器下删除虚拟机但是保留硬盘文件(不勾选删除选项),然后修改硬盘文件.qcow名字即可,与法一2)做法一致。
在这里插入图片描述

5. 脚本实现reset虚拟机

编辑reset_vm.sh文件
在这里插入图片描述
编辑内容如下:
在这里插入图片描述
这里简单解释一下,我们重置虚拟机的第一步就是要强制关闭虚拟机;第二步删除虚拟机的硬盘文件;第三部以某个虚拟机为母盘创建快照;打开并显示虚拟机。
在这里插入图片描述
现在我们测试一下刚写的reset_vm.sh,打开并显示虚拟机potizo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现虚拟机potizo被破坏了,无法显示。(这里是实验需要,所以我人为在potizo虚拟机下rm -fr /*)。然后重置potizo
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/potizo/article/details/83305040