LInux基础命令(十二)虚拟机

概念

虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,是对真实环境的虚拟化!

虚拟机种类

(1)系统虚拟机,例如:VMware(微软)、KVM(小红帽)

(2)程序虚拟机,例如:Java虚拟机(JVM)

(3)操作系统层虚拟化,例如:Docker

总结:它们应对的场景不同,能解决的问题不同!

虚拟机出现的原因

真实的机房,需要保持室内温度在16度左右(40度左右报警),机器的运行需要散热,所以就需要制冷,能源损耗问题

虚拟化的好处:缩减服务器的数量,节省能源,低碳!

安装虚拟化环境

    1)查看电脑硬件是否支持虚拟化  

cat /proc/cpuinfo |grep --color -E "vmx|svm"

    2)如果支持,则安装虚拟化所必须的软件

yum install qemu-kvm qemu-img

##安装虚拟化的软件包

yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client

##管理虚拟化的套件!

   3)用virsh命令来控制虚拟机

• virsh list               -->查看已经开启的虚拟机
• virsh destroy server     -->强制关闭
• virsh list --all         -->查看所有的虚拟机
• virsh start server       -->开启虚拟机
• virsh shutdown server    -->正常关闭

################################

virsh destroy  server       -->删除虚拟机,特点:  

virsh undefine server        -->解除标记 

安装虚拟机

    1)硬件要求

硬盘

328M -->无图形
6G   -->有图形(至少)
10G  -->默认
8G   -->自定义!

内存:4G左右

swap分区的作用:当内存使用超过80%的部分,将超过80%的地方放到swap,虽然慢,单还能使用!

    2)图形界面的安装

核心过程

(1)虚拟机的四种安装方式,选择第一种的dvd的iso镜像安装!

(2)寻找镜像源、安装指定内存大小和cpu的核数、虚拟机的大小、虚拟机的名字

(3)虚拟机的安装界面

    3.1)安装过程中使用的语言为英语,时区选择中国上海

    3.2)系统支持的语言(英文、中文)

    3.3)安装源默认是本地,安装方式是GUI的,会分析二者的依赖关系(成功黄色消失)

    3.4)磁盘分区自定义,然后就finish开始安装

(4)安装出现Complete的标志,表明安装成功,然后REboot

(5)同意红帽的协议,选择自定义普通用户及其密码,完成安装

注意:安装完成之后,为了保持性能,关闭虚拟机,硬盘设置的类型为virto类型(默认是IDE)并且网络源选择桥接!

   3)模拟虚拟机的恢复

           需求:想copy一下别人的虚拟机来用

      3.1)图形安装

     核心文件

# /etc/libvirt/qemu/*.xml          -->前端控制文件默认的位置
# /var/lib/libvirt/images/*.qcow2  -->虚拟机硬盘文件

说明:*表示的是虚拟机的名字,注意文件所在的目录!

LInux基础命令(十二)虚拟机

需求:改变虚拟机的参数,通过前端控制文件,注意重启服务!

systemctl restart libvirtd.service 

特点:当前所有的连接都会关闭!

copy虚拟机的原理:利用虚拟机硬盘文件(qcow2为后缀名)来创建虚拟机!

此种方式图形安装虚拟机等价方式

LInux基础命令(十二)虚拟机

LInux基础命令(十二)虚拟机

LInux基础命令(十二)虚拟机

LInux基础命令(十二)虚拟机

注意:这种方式没有再指定虚拟机的硬盘的大小!

      3.2)命令行的安装

##核心命令

virsh create wzj.xml  

##默认会从从当前路径下寻找此xml文件,如果找不到则报错,也可以用全路径的名字!

##虚拟机的硬盘文件默认已经存在于/var/lib/libvirt/images/目录下

##后续:也可以改变此xml中硬盘配置文件的路径(source),自定义硬盘配置文件的路径,但要注意重启服务!

##提示:不建议修改其路径!

##特点:用虚拟机的硬件信息文本临时创建一个虚拟机, 此方法为方便开发调试等临时需求,不会持久化,虚拟机关机后就消失了,不推荐生产系统使用

##测试:# virt-manger -->force虚拟机后,没有了此虚拟机列表了!

xml:扩展性标记语言,语法要求严格(必须闭合)!

##(1)永久创建一个虚拟机-->根据前端控制文件来创建的!

virsh define hello.xml(已存在的)

##说明:xxx为xml文件所在的路径及文件名称,在当前目录下则不写路径!

##(2)删除虚拟机

virsh undefine hello

说明:注意参数是虚拟机的名字,而不是hello.xml

特点:注意只是删除了xml文件(前端控制文件),并没有删除虚拟机的硬件配置文件!

注意:若要永久删除虚拟机,还得删除虚拟机的硬件配置文件!

明确1:关闭了的虚拟机,只是不在运行状态而已,通过virsh undefine xxx就能从virsh列表里面(virsh list查看当前系统中的虚拟机列表)将其删除

明确2:undefine命令不会删除虚拟机的硬盘文件,而且运行状态的虚拟机是不能删除的!

    需求:虚拟机管理器删除虚拟机然后恢复!

    4)快照

         4.1)快照的引入

虚拟机比较珍贵,弄坏了就没有了,属于根!

         4.2)快照的原理

(1)保持磁盘文件和系统内存在该时间点的状态,以便在出现故障后虚拟机能够恢复到该时间点

(2)如果对某个虚拟机创建了多个快照,那么就可以有多个可恢复的时间点

         4.3)快照的好处

对快照的修改,并不影响源文件,可以随意做编辑!

         4.4)命令行创建快照的方式

1)qemu-img create -f qcow2 -b /var/lib/libvirt/images/wzj.qcow2 /var/lib/libvirt/images/node.qcow2

 说明:创建快照,-f 指定快照的类型(qcow2) ,-b 指定快照来源的虚拟机 ,后跟参数照成什么样子

 注意:只有一个文件,因为其前端控制文件是源前端控制文件!

(2)du -sh /var/lib/libvirt/images/node.qcow2 -->查看快照的大小-->大约124K

(3)file node.qcow2 -->查看快照的真正来源!

(4)创建虚拟机-->选择快照的方式第四个导入快照-->选中快照的文件

补充:虚拟机reset的原理!

    5)自动化安装

      5.1)虚拟机的脚本安装

#!/bin/bash
virt-install \
--cdrom /home/kiosk/Downloads/rhel-server-7.3-x86_64-dvd.iso \
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=8 \
--name $1 \
--network model=virtio,bridge=br0 &> /dev/null &

# 安装源头!

# 内存大小

# cpu的核数

# 虚拟机硬盘的位置,总线的类型,虚拟机的硬盘的容量-->注意:多个参数以逗号隔开

# 虚拟机的名字

# 网络:网卡的类型和联网的方式(桥接)

###############需求:自定义虚拟机的名字,并且不显示信息##############

      5.2)虚拟机的快照安装

#!/bin/bash
#(1)创建快照
qemu-img create -f qcow2 -b \
/var/lib/libvirt/images/$1.qcow2 \
/var/lib/libvirt/images/$2.qcow2 \ &> /dev/null 

##执行脚本携带参数

      5.3)创建快照并用快照安装虚拟机的脚本方式!

#!/bin/bash
#(1)创建快照
qemu-img create -f qcow2 -b \
/var/lib/libvirt/images/$1.qcow2 \
/var/lib/libvirt/images/$2.qcow2 \ &> /dev/null 
#(2)利用快照安装虚拟机,要导入(import)
virt-install \
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
--name $2 \
--import \
--network model=virto,bridge=br0 &> /dev/null &

##注意:默认快照命令行安装会占用当前的命令行,所以要打入后台!

三、虚拟机的另外两种安装方式

PXE+kickstart网络安装CentOS7.4系统及过程中各种报错

Kickstart配置文件超详细解析

kickstart部署及使用