KVM虚拟化

一、kvm简介 

(1)简介

  KVM:就是Keyboard Video Mouse的缩写。KVM 交换机通过直接连接键盘、视频和鼠标 (KVM) 端口,让您能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在 Windows 的 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。

   KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT 基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP 解决方案具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能。

   KVM 是个"怪胎",原本是类型2 的主机虚拟化;但一旦在OS 上加载了kvm.ko 模块,就会"感染"OS,使其变为hypervisor(kvm),原本的软件空间作为控制台,转化成类型1 模式的主机虚拟化

(2)KVM的组件

   ① kvm.ko:模块

     API 应用程序编程接口

   ② qemu-kvm:用户空间的工具程序;

    qemu-KVM是一种开源虚拟器,它为KVM管理程序提供硬件仿真。

    运行中的一个kvm虚拟机就是一个qemu-kvm进程,运行qemu-kvm程序并传递给它合适的选项及参数即能完成虚拟机启动,终止此进程即能关闭虚拟机;

   ③ libvirt 虚拟化库:Libvirt是一个C工具包,可以与最近版本的Linux(以及其他操作系统)的虚拟化功能进行交互。主包包含了导出虚拟化支持的libvirtd服务器。

     C/S:

       Client:

         libvirt-client

         virt-manager

     Daemon:

       libvirt-daemon

(3)KVM模块load进内存之后,系统的运行模式:

     内核模式:GuestOS执行IO类的操作时,或其它的特殊指令操作时的模式;它也被称为"Guest-Kernel"模式;

     用户模式:Host OS的用户空间,用于代为GuestOS发出IO请求;

     来宾模式:GuestOS的用户模式;所有的非IO类请求

二、安装

 (1)前提:

   ① 必须跑在x86 系统的架构上

   ② 必须支持硬件级虚拟化

     vmx:Intel VT-x

     svm:AMD AMD-vt

   ③ 在虚拟机上再虚拟化,需开启虚拟化 Intel VT-x/EP

   1.配置主机支持虚拟化

   

 

  2.查看是否支持

1     # grep -i -E '(vmx|svm|lm)' /proc/cpuinfo
2 
3     注意:vmx 或 svm或lm 必须出现一个,表示是支持的
View Code

  

 

  3.装载KVM 模块

1     # yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v
2     # yum update
3     # yum upgrade
4     # modprobe kvm
View Code

  4.查看模块

1     # lsmod |grep kvm
View Code

  

  5.安装用户端工具 qemu-kvm

1     # yum install libvirt-daemon-kvm qemu-kvm virt-manager -y
View Code

  6.启动kvm守护程序并创建虚拟桥

1     # systemctl start libvirtd.service
2     # virsh iface-bridge eth0(ens33) br0        //centos6是eth0,7是ens33
3     # systemctl restart netowrk
View Code

  

   7.打virt-manager 窗口,创建虚拟机

    #查看虚拟机

  

 

1    # virt-manager
View Code

  

  8.上传镜像用于创建系统

  

  9.创建虚拟机

    (1)选择本地镜像安装

  

    (2)选取镜像

  

  

  

  (3)配置cpu、内存

  

  (4)配置硬盘大小

  

  (5)核对配置信息,勾选安装前配置,注意网络选网桥br0

  

  (6)选取键盘和图形界面VNC,方便鼠标键盘操作

  

  (7)开始安装

   

  (8)最小化安装

  

  (9)配置网络

  

  

  

  

  (10)配置密码开始安装

  

  (11)安装完成,测试连接

  

  

  

  

三、Virsh常用命令

 1   virsh list                       #显示本地活动虚拟机
 2   virsh list –all                    #显示本地所有的虚拟机(活动的+不活动的)
 3   virsh define ubuntu.xml               #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
 4   virsh start ubuntu                #启动名字为ubuntu的非活动虚拟机
 5   virsh create ubuntu.xml              # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
 6   virsh suspend ubuntu                 # 暂停虚拟机
 7   virsh resume ubuntu                 # 启动暂停的虚拟机
 8   virsh shutdown ubuntu             # 正常关闭虚拟机
 9   virsh destroy ubuntu              # 强制关闭虚拟机
10   virsh dominfo ubuntu               #显示虚拟机的基本信息
11   virsh domname 2                # 显示id号为2的虚拟机名
12   virsh domid ubuntu                  # 显示虚拟机id号
13   virsh domuuid ubuntu             # 显示虚拟机的uuid
14   virsh domstate ubuntu               # 显示虚拟机的当前状态
15   virsh dumpxml ubuntu              # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
16   virsh setmem ubuntu 512000          # 给不活动虚拟机设置内存大小
17   virsh setvcpus ubuntu 4              # 给不活动虚拟机设置cpu个数
18   virsh edit ubuntu               # 编辑配置文件(一般是在刚定义完虚拟机之后)
View Code

四、Qemu-kvm安装

  1.创建虚拟网桥

1     # yum -y install bridge-utils 
2     # brctl addbr br-int0 
3     # brctl show
View Code

  

1     # ifconfig -a
View Code


  2.激活网桥

1     # ip link set br-int0 up
View Code


  3.删除网桥

1     # ip link set br-int0 down
2     # brctl delbr br-int0
3     # ifconfig -a
4     # brctl show
View Code


  4.手动创建物理网桥

 1     # cd /etc/sysconfig/network-scripts
 2     # cp ifcfg-eth1/ens33 ifcfg-br0
 3     # vim ifcfg-br0
 4       TYPE=Bridge
 5       NAME=br0
 6       UUID=395fbf3c-07ef-4f58-a6a6-049c646a3d2b
 7       DEVICE=br0
 8       ONBOOT=yes
 9       IPADDR=192.168.11.199
10       NETMASK=255.255.255.0
11       GATEWAY=192.168.11.254
12       DNS1=114.114.114.114
13       ZONE=public
View Code

    

  5.把主机的网卡连接到网桥上

1     # vim ifcfg-eth1/ens33
2       DEVICE=eth1/ens33
3       ONBOOT=yes
4       BRIDGE=br0
View Code

      

  6.重启网卡

1     # systemctl restart network
2     # brctl show
View Code

    

  7.安装qemu-kvm

1     # yum install qemu-kvm libvirt-daemon-kvm virt-manager 
2     # modprobe kvm
3     # lsmod |grep kvm
View Code

    

 

  8.创建软链接,把qemu写入PATH变量

1     # ln -sv /usr/libexec/qemu-kvm /usr/bin/
2     # qemu-kvm -h
View Code

  9.安装VNC图形工具

1     # yum install vnc-server tigervnc -y
2     # vncpasswd
3     # vncserver
View Code

    

  10.创建虚拟机所需要的iso镜像和磁盘

1     # mkdir /kvm/images -pv
2     # qemu-img create -o preallocation=metadata -f qcow2 /kvm/images/centos.qcow2 60G
View Code

    

  11.创建虚拟机

 1     # qemu-kvm -cpu host -smp 1 -name centos   -m 512 -drive file=/kvm/images/centos.qcow2,if=ide,media=disk,format=qcow2 -drive file=/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1804.iso,media=cdrom -boot     dc  -usbdevice  tablet
 2 
 3     -cpu  :指定CPU的模式
 4 
 5     -smp  :指定CPU的个数
 6 
 7     -name  :指定虚拟机的名字
 8 
 9     -m   :指定虚拟机内存大小
10 
11     -drive file :指定硬盘设备文件
12 
13     if=ide  :指定硬盘设备连接的借口类型
14 
15     media=disk  :指定硬盘设备为磁盘
16 
17     format=qcow2 :指定映像文件的格式 
18 
19     -boot    :定义启动引导次序
View Code

    

    


  12.另开终端打开安装

1     # vncviewer :5900
View Code

    

  13.开始安装

    

原文地址:https://www.cnblogs.com/jay-fred/p/9962887.html