Linux:KVM虚拟化

本章操作基于centos7系统


简介

KVM是Kernel Virtual Machine的简写,目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,在2008年被redhat公司收购并获得了一项hypervisor技术,不过redhat的KVM被认为将成为未来linux hypervisor的主流,准确的来说KVM不仅仅是linux内核的一个模块。管理和创建完成的KVM虚拟机,需要更多的辅助工具。接下来部署KVM虚拟化环境。

公司部分的linux服务器利用率不是很高,为了充分利用这些linux服务器,可以部署KVM ,在物理机上运行多个业务系统,比如在运行Nginx服务器上部署KVM,然后在虚拟机上运行Tomcat


需要环境&配置

1) 需要图形化桌面环境

2)内存:2048M或以上

3)处理器:核心数 2或以上

4)如果是虚拟机需要开启虚拟化引擎:首选模式:intel VT-x 或 AMD-V 

5)硬盘:100G以上


 基础环境准备

打开虚拟机的虚拟化

Linux:KVM虚拟化_第1张图片

Linux:KVM虚拟化_第2张图片 勾选上虚拟化lnetl tv-x……即可

如果你没有桌面环境可以使用两个命令,如果有,跳过下面两条命令即可

yum -y groupinstall  gnome-desktop  
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

 安装KVM

yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img.x86_64 python-virtinst.noarch bridge-utils.x86_64 libvirt virt-manager

qemu-kvm.x86_64             //kvm模块

qemu-kvm-tools.x86_64   //kvm调试工具,可不安装

python-virtinst.noarch      //python组件,记录创建vm时的xml文件

qemu-img.x86_64          //qemu组件,创建磁盘,启动虚拟机等

bridge-utils.x86_64       //网络支持工具

libvirt    //虚拟机管理工具

virt-manager      //图形界面管理虚拟机

安装完以后  reboot  重启服务器

 重启以后查看是否开启了虚拟化

如果你是intel的cpu就使用

cat /proc/cpuinfo | grep vmx

Linux:KVM虚拟化_第3张图片

开启成功

如果你是AMD的cpu那么就用 

cat /proc/cpuinfo | grep smv

检查KVM模块是否安装

lsmod | grep kvm

Linux:KVM虚拟化_第4张图片


KVM网络配置

宿主服务器安装了KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法NAT和Bridge,默认是NAT。

nat地址转换就是虚拟机用物理机的网卡上网

桥接就是把虚拟机和真机放到一个局域网

下面我这里是桥接模式的配置

 我这里的主机网卡名为ens33

vim /etc/sysconfig/network-scripts/ifcfg-ens33

写入

DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE="br0"

桥接到br0

vim /etc/sysconfig/network-scripts/ifcfg-br0

写入

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.254.111
NETMASK=255.255.255.0
systemctl restart network

Linux:KVM虚拟化_第5张图片

现在就可以了


KVM图形化创建虚拟机

先去/下创建两个文件一个用于放iso镜像,一个用于放虚拟机

mkdir -p /kvm/iso /kvm/xuniji

iso用于放镜像,xuniji用于放虚拟机文件

让后我们把要创建虚拟机的镜像放如/kvm/iso中,我这里还用centos镜像演示

Linux:KVM虚拟化_第6张图片

iso镜像放进去以后去开启软件 

Linux:KVM虚拟化_第7张图片

图形化找到kvm软件

 或者在命令行中使用命令行打开

virt-manager 

现在我们要在软件里把刚刚创建好的文件选择上

Linux:KVM虚拟化_第8张图片

 双击打开

Linux:KVM虚拟化_第9张图片

点击储存,再点左下角➕

Linux:KVM虚拟化_第10张图片 名字随便写,我这个先加虚拟机存放目录,所以我这个名字就叫虚拟机了,让后前进

Linux:KVM虚拟化_第11张图片

点击浏览,让后找到/kvm/xuniji

Linux:KVM虚拟化_第12张图片 点击打开

Linux:KVM虚拟化_第13张图片

现在虚拟机存放目录就好了,再去添加iso文件,和这个一样

 Linux:KVM虚拟化_第14张图片

 Linux:KVM虚拟化_第15张图片

Linux:KVM虚拟化_第16张图片 Linux:KVM虚拟化_第17张图片

这样两个文件就添加好了,现在,放虚拟机,选择镜像就去这两个文件夹就行了,如果你的服务器硬件资源足够大的化,可以创建大量的虚拟机

 现在就可以去创建虚拟机了

Linux:KVM虚拟化_第18张图片

Linux:KVM虚拟化_第19张图片 Linux:KVM虚拟化_第20张图片

Linux:KVM虚拟化_第21张图片 Linux:KVM虚拟化_第22张图片

Linux:KVM虚拟化_第23张图片 

这里选择你要的虚拟机配置,配置完了再前进

 Linux:KVM虚拟化_第24张图片

先去配置虚拟机硬盘大小,让后点管理

 Linux:KVM虚拟化_第25张图片

Linux:KVM虚拟化_第26张图片 调整配置

Linux:KVM虚拟化_第27张图片

Linux:KVM虚拟化_第28张图片 Linux:KVM虚拟化_第29张图片

在结束前可以再去配置一下硬件啥的,如果没有要配置的了,那么直接就开始安装,就直接进入系统安装了

 安装centos等系统我这里就不演式了,因为今天主要讲的是kvm

到这里我们的虚拟机就可以正常安装上了,除了Linux,Windows,类unix等等基本都是这样安装,也很向Windows上的VMware等软件 


克隆,快照等操作

当我们需要进行克隆时需要让虚拟机为关闭的状态

Linux:KVM虚拟化_第30张图片

或者 

Linux:KVM虚拟化_第31张图片

 Linux:KVM虚拟化_第32张图片

 Linux:KVM虚拟化_第33张图片

这样就克隆好了 

 Linux:KVM虚拟化_第34张图片

点击快照

Linux:KVM虚拟化_第35张图片

创建快照 

Linux:KVM虚拟化_第36张图片

恢复快照 

网络接口配置

 Linux:KVM虚拟化_第37张图片


命令行操作kvm

virsh -h

查看帮助

virsh list --all

查看当前虚拟机状态的列表

Linux:KVM虚拟化_第38张图片

两个虚拟机都为运行状态

 virsh shutdown 虚拟机名称

关闭指定的虚拟机

 virsh shutdown centos7

 Linux:KVM虚拟化_第39张图片

virsh start 虚拟机名称

开启虚拟机 

virsh start centos7

 Linux:KVM虚拟化_第40张图片

 virsh destroy 虚拟机名称

关闭虚拟机(和shutdown 一个效果)

 virsh create /etc/libvirt/qemu/虚拟机配置文件.xml

 通过配置文件开启虚拟机

virsh create /etc/libvirt/qemu/centos7.xml 

Linux:KVM虚拟化_第41张图片

virsh suspend  虚拟机名称

挂起虚拟机

virsh resume  虚拟机名称

恢复挂起虚拟机

virsh autostart  虚拟机名称

 和宿主机一起开启,也就是当真机开机的时候虚拟机也会一起打开

备份虚拟机文件

virsh dumpxml 虚拟机名称   > /etc/libvirt/qemu/虚拟机名称.xml

 导出虚拟机配置

virsh shutdown 虚拟机名称

关闭虚拟机

 virsh undefine 虚拟机名称

删除虚拟机 

cd /etc/libvirt/qemu 

前往虚拟机主配置文件

mv 刚刚备份的虚拟机文件.xml   一开始的虚拟机文件名.xml

 恢复备份文件

 virsh define 虚拟机文件名.xml

通过备份的配置文件重新定义虚拟机 

virsh list --all 

虚拟机快照
kvm虚拟机使用镜像功能,磁盘格式必须为qcow2.

【创建快照】
virsh snapshot-create 虚拟机名

【查看快照版本信息】
 virsh snapshot-current 虚拟机名

【查看快照信息】
virsh snapshot-list 虚拟机名

【恢复快照到指定】

virsh snapshot-revert 虚拟机名 快照编号


 virsh snapshot-revert test01 1282572463

virsh snapshot-current 虚拟机名
【删除快照】
virsh snapshot-delete 虚拟机名  快照编号

 

你可能感兴趣的:(linux,服务器,运维)