KVM

一、KVM简介

公司部分Linux服务器利用率不高,为充分利用这些linux服务器,可以部署KVM虚拟化平台,在物理机上运行多个业务系统(虚拟机)。例如,在运行Nginx的服务器上部署KVM,然后在虚拟机上运行Tomcat,MySQL等企业服务。

KVM是Kernel Virtual Machine的简写,目前Linux发行版自带的软件,在64位的系统平台上运行KVM,同时需要硬件(CPU)支持VT技术。

KVM的前身是QEMU,2008年被RedHat 收购并获得一项 hypervisor 技术,不过RedHat的KVM被认为将成为未来的Linux hypervisor 的主流,准确的来说KVM仅仅是linuux内核的一个模块,管理和创建完整的KVM虑拟机需要重讨的辅助下且

KVM从2.6.20版本后就直接整合到linux内核,它依托CPU虚拟化指令集(如Inter-VT AMD-V)实现高性能的虚拟化支持,由于与linux内核高度整合,因此在性能,安全性,兼容性,稳定性上有很好的实现。在KVM的环境中运行的每个虚拟化操作系统表现为单个系统进程并与linux安全模块(selinux)有很好的整合,可以灵活的实现资源的管理及分配。

二、安装kvm

1、环境

真机linux必须是64位操作系统,RHEL5.4及以上的系统平台

cpu支持VT技术(BIOS中开启)

注意:VMware虚拟机中linux开机前需要勾选Inter VT-x/EPT或AMD/RV(V)

 

 

 

查看cpu是否支持虚拟化:

Inter CPU:

 cat /proc/cpuinfo | grep vmx

AMD CPU:

 cat /proc/cpuinfo | grep svm

2、安装

1)可在安装系统时选择桌面与虚拟化

 

 

 

1)在已有的系统上安装kvm

在CentOS7的系统光盘镜像中,已经提供了安装KVM所需软件,通过部署基于光盘镜像的本地yum源,直接使用yum安装所需软件即可。

 "GNOME Desktop"    #安装GNOME桌面环境

 qemu-kvm            #KVM模块

 qemu-kvm-tools       #KVM调试工具,可不安装

 qemu-img            #qemu组件,创建磁盘,启动虚拟机

 bridge-utils           #网络支持工具

 libvirt                #虚拟机管理工具

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

 yum -y groupinstall 'GNOME Desktop'

 yum -y install qemu-kvm qemu-kvm-tools qemu-img bridge-utils virt-manager libvirt

注意:使用yum安装完桌面后,将系统默认的运行target修改为graphical.target。重启系统后进入图形界面,若不修改系统的默认运行target,重启时可能会出错。

查看是否安装成功

 lsmod | grep kvm

如果没有执行以下命令加载模块

 modprobe kvm

启动libvirtd服务

 systemctl restart libvirtd

3、设置kvm网络

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

  1. 用户模式,即NAT方式,这种方式是默认网络,I数据包由NAT方式通过主机接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络
  2. 桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部机器可以直接访问到虚拟机内部,但需要网卡支持,并编辑网卡参数文件以支持桥接

Bridge:

 cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-br0

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

TYPE="Bridge"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

NAME="br0"

DEVICE="br0"

ONBOOT="yes"

IPADDR="192.168.200.117"

PREFIX="24"

GATEWAY="192.168.200.1"

DNS1="202.106.0.20"

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

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

NAME="ens32"

UUID="1184afaa-b6aa-40c2-be03-cfb356b20367"

DEVICE="ens32"

ONBOOT="yes"

BRIDGE=br0

4、KVM 管理工具:

virt-manager 是基于libvirt的图形化虚拟机管理软件,不同版本的virt-manager的界面和操作方法可能不同,是使用KVM虚拟机最简单的方法。

 virt-manager

创建虚拟机:

1、创建存储池并创建存储卷:

双击QEMU/KVM->存储->单击+按钮新建存储池,创建两个存储池KVM、ISO将CentOS7安装镜像上传到服务器目录/virtual/ISO中。

KVM:用于存放虚拟机磁盘镜像文件。

ISO:用于存放安装操作系统的镜像文件

 

1、创建储存卷,单机KVM,单机对话框右下角的新建卷,设置大容量与分配容量

2、安装虚拟机

3、安装acpid    :电源管理

 rpm -ivh /media/Packages/acpid-2.0.19-9.el7.x86_64.rpm

 systemctl restart acpid

5、KVM基本功能管理

1、查看命令帮助

 virsh -h

2、查看KVM配置文件存放目录

 ls /etc/libvirt/qemu    

autostart  centos7.0.xml  networks    #虚拟机的属性配置文件

 ls /aa/KVM/    

centos7.0      #虚拟机的磁盘镜像文件

3、查看虚拟机状态

 virsh list --all

4、虚拟机的关机与开机,首先保证acpid服务安装并在运行

关机:

 virsh shutdown centos7.0

开机:

 virsh start centos7.0

5、强制关闭电源

 virsh destroy centos7.0

6、通过配置文件启动虚拟机

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

7、挂起虚拟机

 virsh suspend centos7.0

8、恢复虚拟机

 virsh resume centos7.0

9、配置虚拟机伴随宿主机自动启动:会在/etc/libvirt/qemu下创建一个autostart文件夹

 virsh autostart centos7.0

10、备份虚拟机

 virsh dumpxml centos7.0 > /etc/libvirt/qemu/centos7.0-2.xml

11、虚拟机的删除与添加

需要先关机然后删除:

 virsh undefine centos7.0

还原:

 mv /etc/libvirt/qemu/centos7.0-2.xml /etc/libvirt/qemu/centos7.0.xml

 virsh define /etc/libvirt/qemu/centos7.0.xml

12、修改虚拟机配置

 virsh edit centos7.0

6、磁盘文件管理

通过文件管理可以直接查看,修改,复制虚拟机的内部文件。

虚拟机文件有raw与qcow2、ged格式,KVM虚拟机默认使用qcow2格式,

  • raw格式性能最好,速度最快,缺点是不支持一些新的功能,如镜像,zlib磁盘压缩,AES加密等
  • qcow2格式的磁盘存储空间更小,支持如AES加密,zlib磁盘压缩

针对两种格式的文件有不同的工具可以选择,这里介绍本地,YUM安装libguestfs-tools产生的命令工具(可以直接读取qcow2格式的磁盘文件),因此需要将 raw格式的磁盘文件转换成qcow2格式

1、转换raw格式到qcow2格式

查看镜像文件:

 qemu-img info /aa/KVM/centos7.0

 关机:转换文件格式

 qemu-img convert -f raw -O qcow2 /aa/KVM/centos7.0  /aa/KVM/centos7.0.qcow2

 yum -y install libguestfs-tools

2、修改centos7.0的xml配置文件

 virsh edit centos7.0

40<driver name='gemu' type=' qcow2/>

41<source file=/virtual/KVM/centos7.0. qcow2l/>

3、virt-cat  类似于cat命令

 virt-cat -a /aa/KVM/centos7.0.qcow2 /etc/sysconfig/network

4、vir-edit,用于编辑文件

 virt-edit -a /aa/KVM/centos7.0.qcow2 /etc/resolv.conf

5、virt-df 用于查看虚拟机磁盘信息

 virt-df -h cetnos7.0

7、克隆与快照介绍

1、克隆   需要先关机

virt-clone -o 源虚拟机名称 -n 克隆的虚拟机名称 -f 克隆的虚拟机磁盘镜像路径

 virt-clone -o centos7.0 -n centos7.0-2 --file /kvm/centos7.0-2.qcow2

2、拍摄快照     注意:必须是qcow2格式

 virsh snapshot-create centos7.0

3、查看快照版本信息

 virsh snapshot-current centos7.0

<domainsnapshot>

  <name>1572001335</name>  #版本信息

4、查看快照信息

 virsh snapshot-list centos7.0

5、恢复快照

 virsh snapshot-revert centos7.0 1572001315

6、删除快照

 virsh snapshot-delete centos7.0 1572001335

7、修改快照名称

 virsh snapshot-edit centos7.0 --snapshotname 1572001315 --rename

<domainsnapshot>

  <name>1572001315</name

posted @ 2019-10-28 19:27  别脱鞋好嘛  阅读(367)  评论(0编辑  收藏  举报