一、KVM定义

基于内核的虚拟机(英语:Kernel-based Virtual Machine,简称KVM),是一种用于Linux内核中的虚拟化基础设施。

KVM眼下支持Intel VT及AMD-V的原生虚拟技术。

1)是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方式。

2)它包括一个为处理器提供底层虚拟化 可载入的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

3)KVM还须要一个经过改动的QEMU软件(qemu-kvm)。作为虚拟机上层控制和界面。

4)在主流的Linux内核,如2.6.20以上的内核均已包括了KVM核心。

5)KVM能在不改变linux或windows镜像的情况下同一时候执行多个虚拟机,(它的意思是多个虚拟机使用同一镜像)并为每个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。

能够对kvm进行控制管理的组件主要有两个:

QEMU-KVM:

在 Linux 系统中,首先我们能够用 modprobe 系统工具去载入 KVM 模块,假设用 RPM 安装 KVM 软件包,系统会在启动时自己主动载入模块。载入了模块后,才干进一步通过其它工具创建虚拟机。

但仅有 KVM 模块是远远不够的。由于用户无法直接控制内核模块去做事情。还必须有一个用户空间的工具。

关于用户空间的工具,KVM 的开发人员选择了已经成型的开源虚拟化软件 QEMU。QEMU 是一个强大的虚拟化软件。它能够虚拟不同的 CPU 构架。比方说在 x86 的 CPU 上虚拟一个 Power 的 CPU。并利用它编译出可执行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。

所以 Linux 发行版中分为 kernel 部分的 KVM 内核模块和 QEMU-KVM 工具。这就是 KVM 和 QEMU 的关系。

Libvirt/Virsh/Virt-manager:

虽然 QEMU-KVM 工具能够创建和管理 KVM 虚拟机。RedHat 为 KVM 开发了更通用的辅助工具libvirt。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其它虚拟机。使用 libvirt,你仅仅须要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机。便能够用相同的命令控制不同的虚拟机了。

Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令 virsh。你能够通过使用 virsh 命令来使用 libvirt 的所有功能。

同一时候还能使用图形界面进行管理操作,其工具是 Virt-manager。他是一套用 python 编写的虚拟机管理图形界面。用户能够通过它直观地操作不同的虚拟机。

Virt-manager 就是利用 libvirt 的 API 实现的。


安装说明:

在该篇博客中。我主要通过kvm虚拟化安装2个操作系统

1、centos 6.7

2、windows 7


安装前注意。须要在BIOS中开启例如以下两个功能:

VT(Virtualization Technology):处理器虚拟化硬件支持

VT-D(Virtualization Techonlogy for Directed I/O):I/O设备虚拟化硬件支持


准备工作:

系统镜像(CentOS-6.7-x86_64-bin-DVD1)

系统镜像(Source_WIN7_x64)


二、KVM安装

1、设置时间

2、查看CPU是否支持

vmx:Intel系列CPU支持虚拟化标志

svm:AMD系列CPU支持虚拟化标志

3、Libvirt/Virsh/Virt-manager 组件安装,并设置为开机执行。

记得先加入 /etc/hosts ,不然会报错:Name or service not known

安装包介绍:

libvirt-client   # libvirt的client,最重要的功能之中的一个就是在宿主机关机时能够通知虚拟机也关机
gpxe-roms-qemu # 虚拟机 iPXE 的启动固件,支持虚拟机从网络启动
libvirt-python # libvirt 为 python 提供的 API
python-virtinst # 一套 Python 的虚拟机安装工具
qemu-kvm # KVM 在用户空间执行的程序
libvirt # 用于管理虚拟机,它提供了一套虚拟机操作 API
virt-manager # 基于 libvirt 的图像化虚拟机管理软件
virt-viewer # 显示虚拟机的控制台 Console
virt-top # 相似于 top 命令,查看虚拟机的资源使用情况
virt-what # 在虚拟机内部执行,查看虚拟机执行的虚拟化平台
qemu-img # 用于操作虚拟机硬盘镜像的创建、查看和格式转化

4、检查kvm模块并进行载入

kvm模块:该模块实现虚拟化核心基础架构。与硬件平台无关

kvm_intel:该模块主要涉及到硬件虚拟化

假设没有检測到模块。则执行(一般用rpm安装kvm包,系统会在启动时自己主动载入模块。

):

模块文件在系统该位置:

5、校验kvm是否成功安装。假设以下为空,则表示没问题

假设报错。例如以下图。则启动 libvirtd 服务,而且设置开机启动


三、kvm网络配置

client安装完毕后,须要为其设置网络接口。以便和主机网络、客户机之间的网络通信。其实,假设要在安装时使用网络通信,须要提前设置客户机的网络连接。

kvm客户机网络连接有两种方式:

  • 用户网络(User Networking):NAT方式,让虚拟机訪问主机、互联网或本地网络上的资源的简单方法,可是不能从网络或其它的客户机訪问客户机。性能上也须要大的调整。
  • 虚拟网桥(Virtual Bridge):Bridge方式。这样的方式要比用户网络复杂一些,可是设置好客户机与互联网,客户机与主机之间的通信都非常easy。

Bridge方式原理:

Bridge方式即虚拟网桥的网络连接方式。是客户机和子网里面的机器能够互相通信。能够使虚拟机成为网络中具有独立IP的主机。

桥接网络(也叫物理设备共享)被用作把一个物理设备拷贝到一台虚拟机。网桥多用作高级设置。特别是主机多个网络接口的情况。

Bridge方式的适用范围:

服务器主机虚拟化。


Bridge方式配置网桥步骤:

注:网桥模式须要在真机 ifcfg-eth0 配置文件里加入 BRIDGE=”br0”,否则真机与虚拟机无法互通。

配置完毕后 eth0 口则不会显示地址信息,新配置的 br0 口会取代 eth0 口成为真机网口,装好的虚拟机 eth0 口将于真机 br0 口互通。

1、编辑改动网络设备脚本文件。改动网卡设备eth0

NM_CONTROLLED这个属性值,依据redhat公司的文档是必须设置为“no”的(这个值为“yes”表示能够由服务NetworkManager来管理。

NetworkManager服务不支持桥接,所以要设置为“no”。

)。但实际上发现设置为“yes”没有问题。通讯正常。

2、编辑改动网络设备脚本文件,添加网桥设备br0,而且重新启动网卡

3、配置完毕之后查看网卡。原来的 eth0:10.1.0.51 地址已经变为 br0:10.1.0.50。而且查看桥接接口。

四、安装图形化界面及配置 VNC 服务

1、配置桥接网络后,我们通过 Virt-manager 工具安装。Virt-manager 是一个图形化的虚拟机管理工具,它提供了一个简易的虚拟机操作界面,要使用它,须要先安装图形化界面。(至于为什么使用图形界面安装虚拟机 …… 由于本人也是刚学kvm虚拟化……,所以临时先这样吧~):

2、一般来说,服务器都是在 IDC 机房的。为了看到宿主机的图形化界面,还须要安装配置 VNC。

安装 VNC 程序软件包 tigervnc 和 tigervnc-server

编辑 vncserver 配置文件 /etc/sysconfig/vncservers,配置宿主机 VNC 虚拟机显示器为1,端口是5901;虚拟机显示器[2]的监听IP是 0.0.0.0,虚拟机显示器[1]监听127.0.0.1,分辨率 800x600

设置 VNC 密码,而且重新启动 vncserver 服务

通过client连接 vncserver,而且输入 ip:port 及 password


四、使用 Virt-manager 创建kvm虚拟机

前面我们介绍过,Virt-manager 是图形界面进行管理操作的工具,那接来下我就通过 Virt-manager 进行创建虚拟机,在这之前,先查看我前面提到须要准备的镜像文件。


1、创建 kvm Centos-6.5 虚拟机

1)执行 Virt-manager 软件

2)点击 —> Computer图标 —> 输入虚拟机名称 —> 选择本地ISO —> 点击 Forward

3)选择 CentOS-6.5 ISO 文件 —> OS type —> Version —> 点击 Forward

4)选择 Memory(RAM) —> CPUs —> 点击 Forward

5)分配磁盘大小 —> 点击 Forward

6)选择 Customize configuration before install —> 点击 Advanced options —> 选择 Host Device eth0 (Bridge ‘br0’) —> 选择 Virt type:kvm —> 选择 Architecture:x86_64 —> 点击Finish

7)在自己定义界面中 —> NIC配置 —> 选择 Device model:virtio —> 而且点击 Begin installation

8)在下图中能够看到正在执行的虚拟机,開始安装系统

9)虚拟机centos6.7 已经安装完毕~ 通过 xshell 终端及 ping 进行測试,能否够訪问外网

主机名:kvm-virtual-centos6.7

IP地址:10.1.0.60

至此,第一台虚拟机 Centos6.7 已经安装完毕,而且能够使用


2、创建 kvm Windows 7 虚拟机(后期添加)

创建windows虚拟机的配置和centos差点儿一样,仅仅只是使用不同的ISO镜像及操作系统选项。安装过程在此略过 ……


五、查看 centos6.5 和 windows7 虚拟机磁盘文件

1)以树状查看 libvirt 下所有文件夹

2)查看虚拟机磁盘文件

3)虚拟机 socket 文件及 save、dump、snapshot 文件夹

4)虚拟机xml配置文件(注:改图为后补,该实验中名称应该为Centos-6.5.xml)

kvm 虚拟化概述及 virt-manager 安装虚拟机的更多相关文章

  1. KVM虚拟化技术(四)安装虚拟机

    一.首先用比较简单的virt-manager来安装 # virt-manager 后面就是一般的安装系统流程了,这里不再复述 二.用virt-install命令行来安装 还是通过本地IOS文件来进行安 ...

  2. KVM虚拟化概述与安装

    虚拟化是构建云计算基础架构不可或缺的关键技术之一,云计算的云端系统,其实质上就是一个大型的KVM分布式系统,虚拟化通过在一个物理平台上虚拟出更多的虚拟平台,而其中的每一个虚拟平台则可以作为独立的终端加 ...

  3. kvm之四:从网上镜像安装虚拟机Centos6.8

    1.再加块硬盘,格式化挂载至新建目录/kvm2下 2.CentOS 6.8镜像地址 http://mirrors.163.com/centos/6.8/os/x86_64/ 3.配置安装参数,执行安装 ...

  4. kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  5. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  6. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  7. kvm虚拟化学习笔记(一)之kvm虚拟化环境安装

    平时一直玩RHEL/CentOS/OEL系列的操作,玩虚拟化也是采这一类系统,kvm在RHEL6系列操作系统支持比较好,本文采用采用OEL6.3操作系统,网上所有文章都说KVM比xen简单,我怎么感觉 ...

  8. <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化

    在第二章,你了解了KVM的内部结构:在本章中,您将了解如何将Linux服务器设置为虚拟化主机.我们正在讨论将KVM用于虚拟化并将libvirt作为虚拟化管理引擎. KVM开启了虚拟化并利用你的服务器或 ...

  9. kvm虚拟化实践

    .环境初始化 [root@localhost ~]# hostnamectl set-hostname kvm-node1 [root@kvm-node1 ~]# sed -i '/SELINUX=/ ...

随机推荐

  1. js 限制只能输入数字小数点

    function checkNum(e) { var re = /^\d+(?=\.{0,1}\d+$|$)/ if (e.value != "") { if (!re.test( ...

  2. TrueSec引导的Linux系统和安全检测工具预览

      650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=&qu ...

  3. BZOJ2118: 墨墨的等式(最短路构造/同余最短路)

    Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N.{an}.以及B的取值范围,求出有多少B可以使等式存在 ...

  4. numpy_basic3

    矩陣 矩阵是numpy.matrix类类型的对象,该类继承自numpy.ndarray,任何针对多维数组的操作,对矩阵同样有效,但是作为子类矩阵又结合其自身的特点,做了必要的扩充,比如:乘法计算.求逆 ...

  5. web.xml的配置及加载顺序

    一web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

  6. Elasticsearch入门系列~通过Java一系列操作Elasticsearch

    Elasticsearch索引的创建.数据的增删该查操作 上一章节已经在Linux系统上安装Elasticsearch并且可以外网访问,这节主要通过Java代码操作Elasticsearch 1.创建 ...

  7. Accelerated C++:通过演示样例进行编程实践——练习解答(第9章)

    我的Github地址:https://github.com/lanbeilyj/Accerlerated-C-plus-plus 9-0. Compile, execute, and test the ...

  8. android 4.4 添加物理按键

    kernel下添加 Linux-3.4/drivers/input/keyboard/Makefile linux-3.4/drivers/input/keyboard/sw-keyboard.c s ...

  9. JSP学习 —— 开篇:JSP,servlet容器,Tomcat,servlet容器之间的关系

    JSP(JAVA SERVER PAGE)的缩写,其本身就是servlet的简化,是一种动态网页标准,其特点是在HTML代码中嵌入JAVA代码,JSP标签或用户标签来生成网页.至于它为什么会出现,主要 ...

  10. ab压测返回结果解析

    Server Software:        Apache/2.2.25 (服务器软件名称及版本信息)Server Hostname:        localhost (服务器主机名)Server ...