Linux(RadHat)基础学习—虚拟机管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux(RadHat)基础学习—虚拟机管理相关的知识,希望对你有一定的参考价值。

1.虚拟机:

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。**

学习中使用的是redhat系统的虚拟机它由两部分文件构成:
(1).硬盘文件(qcow2文件):记录着操作系统。所有系统信息全在硬盘。qcow2文件
(2).硬件信息文件(xml文件):丢失损坏可以再次生成。xml文件。

2.redhat虚拟机的安装

1.下载镜像,放到合适位置(下面将镜像我放到根目录的iso目录下的)
##A.图形界面安装
执行:virt-manager进入虚拟机管理器中新建安装虚拟机。
在虚拟机安装好系统环境后,会重启,进入系统设置界面,进行语言、时区、超级用户密码设置等操作。

##B.脚本安装
1.创建文件:
xxxx(最好规范命令:create_vm.sh)

技术分享图片
2.写入内容:
技术分享图片

#!/bin/bash    ##打开shell,使下面的命令在bash中执行
virt-install --cdrom /iso/rhel-server-7.3-x86_64-dvd.iso      ##从目录中载入镜像文件
--ram 1024 --cpus 1 --disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=9   ##硬盘文件位置,类型,大小
--name $1 --network bridge=br0,model=virtio

3.新建虚拟机:create_vm.sh 虚拟机名字

(1)执行新建虚拟机命令:sh create_vm.sh xyz
技术分享图片

(2)选择第一行安装Linux7.3,
技术分享图片

(3)选择安装过程中的语言
技术分享图片
(4)配置设置
技术分享图片
(5)选择时区(东八区上海)
技术分享图片
(6)选择系统的语言(除了默认的英语,这里还选择了汉语)
技术分享图片
(7)选择最简图形界面安装
技术分享图片
(8)选择自由分区设置容量
技术分享图片

技术分享图片

技术分享图片

技术分享图片
最终有根目录,根目录下的boot目录、swap目录
技术分享图片
选择接受改变
技术分享图片

(9)点击左边的选项进去,设置超级用户密码
技术分享图片

技术分享图片

(10)等待安装完成。

技术分享图片
(11)安装完成,重启虚拟机。
技术分享图片
(12)同意安装使用协议
技术分享图片
技术分享图片
设置完成后,点击右下角,完成安装向导。
这样就完成了一台虚拟机的安装,后面是系统使用设置,语言,时区,然后添加一个普通用户。
(13)在虚拟机管理器中我们可以看到新建的虚拟机,在这里,选中虚拟机,鼠标右键点击也可以对它进行开关机等操作。
技术分享图片

3.虚拟机管理命令

virt-manager      开启虚拟机管理管理器(图形界面)
virt list      查看正在运行的虚拟机
virt list --all      查看所有的虚拟机
virsh start 虚拟机名     开启虚拟机
virsh shutdown 虚拟机名   正常关闭虚拟机
virsh destroy 虚拟机名    强制关闭虚拟机
virt-viewer 虚拟机名    图形化显示虚拟机

虚拟机恢复:

virsh create 虚拟机名.xml   暂时恢复,当退出时,虚拟机又会消失
virsh define 虚拟机名.xml   永久恢复

4.模拟虚拟机恢复

准备一个已经安装好的虚拟机
移动文件模拟待恢复的虚拟机(模拟备份好的虚拟机)
mv /etc/libvirt/qemu/虚拟机.xml /mnt
mv /var/lib/libvirt/images/虚拟机.qcow2 /mnt
在虚拟机管理器中删除这个虚拟机。(模拟故障)
技术分享图片
技术分享图片
恢复过程:
cd /mnt 切换到刚刚防止文件的目录,用硬件信息启动虚拟机
virsh create 虚拟机.xml 暂时恢复虚拟机,
virsh define 虚拟机.xml 永久恢复虚拟机
这个过程会出现错误:
(1)暂时恢复虚拟机时出错:

error: Failed to create domain from test.xml
error: Cannot access storage file ‘/var/lib/libvirt/images/test.qcow2‘ (as uid:107, gid:107): No such file or directory

(2)永久恢复虚拟机虽然不会报错,但是无法启动的。

解决办法-------> 这两个错误都是因为在硬件信息文件xml中,硬盘qcow2的位置在/var/lib/libvirt/images/,而此时,硬盘文件xyz.qcow2在/mnt目录下,所以会报错。将xyz.qcow2移动到/var/lib/libvirt/images/就可以了。
为了避免误删文件,最好把硬件信息文件也放回到/etc/libvirt/qemu/
移动文件后成功恢复:
技术分享图片
在虚拟机管理器中可以看到恢复的虚拟机xyz:
技术分享图片

<< 3秒新建虚拟机>>

虚拟机的磁盘可以生成快照,每个虚拟机都有快照,快照相当于一面镜子,我们看镜子时可以看到完整的虚拟机。在进行虚拟机操作时,实际上是对这面镜子(快照)操作,也就是说,虚拟机在操作时是对快照进行操作,而不是直接在这个磁盘文件里操作,当然,生成快照的磁盘一定要存在。
对于虚拟机的构成,我们就可以直接从磁盘生成快照从而快速建立新的虚拟机。前提是存在虚拟机的磁盘文件与硬件信息文件

可以在虚拟机管理器中一步一步设置新建虚拟机,我们可以写脚本使其自动新建虚拟机。图形界面的新建虚拟机不做示范。

快照秒建虚拟机

1.硬盘文件建立快照脚本:

建立文件:vim vm_kuaizhao.sh

写入内容:
技术分享图片

#!/bin/bash
qemu-img create -f qcow2 -b        ##指定文件格式是qcow2
/var/lib/libvirt/images/$1.qcow2   ##指定原始磁盘名字
/var/lib/libvirt/images/$2.qcow2    ##指定创建的快照的名字
virt-install --name $2              ##直接将创建的快照名字作虚拟机名字
--ram 1024                 ##分配内存大小
--cpus 1               ##cpu颗数
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio --network bridge=br0,model=virtio  ##网络设置
--import &              ##将新建的快照导入新建的虚拟机

保存退出。

2.运行脚本新建虚拟机:sh vm_kuaizhjao.sh xyz xyz1

<<虚.拟.机.重.置>>

基于新建虚拟机,可以实现重置虚拟机。在对虚拟机进行误操作后,我们可以直接换一面镜子(重建快照)就可以了。也就是说,我们可以将虚拟机原有快照删除,从磁盘文件那重新生成同名的快照,将快照导入,就实现了重置虚拟机。

新建文件:vm_reset.sh

写入内容
技术分享图片

#!/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 &

保存退出

执行文件重置虚拟机:sh vm_reset.sh 虚拟机名 磁盘名

以上是关于Linux(RadHat)基础学习—虚拟机管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux(RadHat)基础学习—系统日志管理

Linux(RadHat)基础学习—进程管理

Linux(RadHat)基础学习—网络管理

Linux(RadHat)基础学习—系统服务控制及sshd服务

Linux(RadHat)基础学习—FTP服务

Linux(RadHat)基础学习—了解SELinux