本章操作基于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以上
打开虚拟机的虚拟化
如果你没有桌面环境可以使用两个命令,如果有,跳过下面两条命令即可
yum -y groupinstall gnome-desktop
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
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
开启成功
如果你是AMD的cpu那么就用
cat /proc/cpuinfo | grep smv
检查KVM模块是否安装
lsmod | grep 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
现在就可以了
先去/下创建两个文件一个用于放iso镜像,一个用于放虚拟机
mkdir -p /kvm/iso /kvm/xuniji
iso用于放镜像,xuniji用于放虚拟机文件
让后我们把要创建虚拟机的镜像放如/kvm/iso中,我这里还用centos镜像演示
iso镜像放进去以后去开启软件
图形化找到kvm软件
或者在命令行中使用命令行打开
virt-manager
现在我们要在软件里把刚刚创建好的文件选择上
双击打开
点击储存,再点左下角➕
名字随便写,我这个先加虚拟机存放目录,所以我这个名字就叫虚拟机了,让后前进
点击浏览,让后找到/kvm/xuniji
现在虚拟机存放目录就好了,再去添加iso文件,和这个一样
这样两个文件就添加好了,现在,放虚拟机,选择镜像就去这两个文件夹就行了,如果你的服务器硬件资源足够大的化,可以创建大量的虚拟机
现在就可以去创建虚拟机了
这里选择你要的虚拟机配置,配置完了再前进
先去配置虚拟机硬盘大小,让后点管理
在结束前可以再去配置一下硬件啥的,如果没有要配置的了,那么直接就开始安装,就直接进入系统安装了
安装centos等系统我这里就不演式了,因为今天主要讲的是kvm
到这里我们的虚拟机就可以正常安装上了,除了Linux,Windows,类unix等等基本都是这样安装,也很向Windows上的VMware等软件
当我们需要进行克隆时需要让虚拟机为关闭的状态
或者
这样就克隆好了
点击快照
创建快照
恢复快照
网络接口配置
virsh -h
查看帮助
virsh list --all
查看当前虚拟机状态的列表
两个虚拟机都为运行状态
virsh shutdown 虚拟机名称
关闭指定的虚拟机
virsh shutdown centos7
virsh start 虚拟机名称
开启虚拟机
virsh start centos7
virsh destroy 虚拟机名称
关闭虚拟机(和shutdown 一个效果)
virsh create /etc/libvirt/qemu/虚拟机配置文件.xml
通过配置文件开启虚拟机
virsh create /etc/libvirt/qemu/centos7.xml
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 虚拟机名 快照编号