什么是虚拟化

虚拟化其实就是一种资源管理技术,将计算机的各种实体资源(CPU,内存,磁盘等),转换成可供分区的电脑配置环境,是云计算的基础。

虚拟化管理程序—hypervisor

hypervisor是一个运行在虚拟机和物理机之间的中间软件层,即虚拟机监视器。

虚拟化的种类

  • 全虚拟化:hypervisor与os(物理机操作系统)分离,hyperviosr捕捉虚拟机上的特权指令(申请资源等)转化成二进制信息交给os处理,os将处理完的结果返回给hypervisor,hypervisor在转换信息交给虚拟机。
    VirtualBox,KVM,VMware Workstation等
  • 半虚拟化:hypervisor与os融合在一起,hypervisor可以直接自行处理虚拟机的指令。
    Xen等
  • 硬件辅助虚拟化:多增加一个cpu指令环 ring-1 来转化 ring0 的特软指令,特权指令直接由cpu虚拟给出,不需要软件参与转化。
    VirtualBox,KVM,VMware ESX和Xen
  • 操作系统虚拟化 :虚拟机不需要安装操作系统,应用即虚拟机。

虚拟化技术的优势

  • 降低运营成本:摆脱了繁重昂贵的物理服务器。
  • 提供了应用的兼容性:虚拟化由很好的应用隔离性,在平台上运行的应用互不干扰。
  • 加速应用部署:缩短了部署时间。
  • 提高服务可用性:虚拟机便于备份,迁移,恢复。
  • 提高了资源利用率:提高了CPU,内存,磁盘的利用率。
  • 动态资源调度:可以根据虚拟机使用资源的情况给他分配资源。
  • 降低能源消耗:由于资源利用率提高了,所以减少了不必要的物理服务器,从而减小了能源的消耗。
  • 便于管理:由于虚拟化将多台服务器部署在一台物理设备上,一个管理员就可以管理多台虚拟设备。

VMM(virtual machine manager)

VMM是虚拟机管理员,可以让用户管理多个虚拟机。

KVM简介

KVM是基于LINUX内核的虚拟化基础设施,可以将linux内核转化为hypervisor。
KVM 目前由 Red Hat 等厂商开发,对 CentOS/Fedora/RHEL 等 Red Hat 系发行版支持极佳。

KVM的部署

hostname -I #查看有多少个ip地址(网卡)
  • 查看cpu支持
[root@yiki ~]# cat /proc/cpuinfo |grep 'vmx'
由内容显示,则说明有cpu支持
  • 安装工具qemu-kvm
[root@yiki ~]# yum -y install libvirt* virt-* qemu-kvm* 
安装软件说明:
libvirt    # 虚拟机管理
virt       # 虚拟机安装克隆
qemu-kvm   # 管理虚拟机磁盘
  • 启动服务
[root@yiki ~]# systemctl start libvirtd.server
[root@yiki ~]# systemctl enable libvirtd.server
[root@yiki ~]# systemctl status libvirtd.server
  • 安装并启动vnc,用来安装虚拟机
[root@yiki ~]# yum -y install tightvnc
  • 配置安装kvm虚拟机
[root@yiki ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/eden.raw,format=raw,size=10 --cdrom /data/CentOS-7-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5900 

--noautoconsole开始安装......
正在分配 'test2.raw'                                    | 2.0 GB  00:00     
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

到这一步就配置完成了,然后打开vnc连接kvm机器的ip(本机ip)进行安装,安装完后,打开KMM的控制台操作即可。
创建每一台虚拟机时,prot不能重复,否则无法创建
便于复制:
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/eden.raw,format=raw,size=10 --cdrom /data/CentOS-7-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5900

参数解释:
–name:创建的虚拟机的名字
–disk:虚拟机的域,存储虚拟机相关的东西
–cdrom:镜像的存储路径
–network:网络方式选择默认default

KVM常用命令

virsh console centos7(虚拟机名)  #连接到虚拟机
virsh dumpxml centos7  > centos7.xml  #关机时备份
virsh list --all  #查看虚拟机列表
virsh undefine centos7  #删除虚拟机
virsh define centos7-off.xml  #导入虚拟机
virsh domrename 【oldname】 【newname】  #虚拟机重命名
virsh suspend 【虚拟机名】  #挂起虚拟机
virsh resume 【虚拟机名】  #恢复虚拟机
virsh vncdisplay 【虚拟机名】  #查看虚拟机的端口