一、虚拟化VT开启确认

  KVM 本身也有一些弱点,那就是相比裸金属虚拟化架构的 Xen 、 VMware ESX 和 HyperV , KVM 是运行在 Linux 内核之上的寄居式虚拟化架构,会消耗比较多的计算资源;不过针对这一点, Intel 、 AMD 已经在处理器设计上有专门的VT-x 和 AMD-V 扩展,这种特性在每次硬件更新的时候也会更新,往往每次更新后都对虚拟化性能和速度上有明显的提升,所以长远来看,也不是什么大问题。
  KVM 的虚拟化需要硬件支持(需要处理器支持虚拟化:如 Intel 厂商的 Intel-VT ( vmx )技术&&AMD 厂商的 AMD-V ( svm )技术。是基于硬件的完全虚拟化。而 Xen 早期则是基于软件模拟的半虚拟化( Para-Virtualization ),新版本则是基于硬件支持的完全虚拟化。但 Xen 本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
  你当前的 CPU 是否支持 VT 技术?当不确定你当前 CPU 是否支持 VT 技术时
  1. 可以在 windows 下使用 cpu-z 软件来进行测试
  2. 可以在 Linux 下查看 CPU 的相信信息来确定
  CPU 虚拟化给我们带来了哪些好处?
  CPU 的虚拟化技术可以将单 CPU 模拟多 CPU 并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
  虚拟化技术与多任务超线程的技术的区别?
  虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的 CPU 或者是虚拟主机上;而超线程技术只是单 CPU 模拟双 CPU 来平衡程序运行性能,这两个模拟出来的 CPU 是不能分离的,只能协同工作
  安装kvm前准备工作
  1. 确定处理器有 VT
  命令行: grep vmx /proc/cpuinfo (INTEL 芯片 )
      grep svm /proc/cpuinfo (AMD 芯片 )
      cat /proc/cpuinfo | grep -e vmx -e nx -e svm
  不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo
  如果 flags:里有 vmx 或者 svm 就说明支持 VT ;如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。
  2. 当你硬件本身支持虚拟化,但查询相应参数无果时,请检查 BIOS 设定,确认你的 BIOS 中开启了硬件支持虚拟化的功能!
  将如下选项设为Enabled
  Intel(R) Virtualization Tech [Enabled]

二、KVM虚拟化安装

1、安装 KVM 要求
(1)64bitCPU( 支持虚拟化 VT-x or AMD-V)
(2)2G 以上空闲内存,确认内存大小
  grep -e MemTotal /proc/meminfo
  free -m
(3)6GB 空闲存储空间
2、安装 KVM 并检测
(1)YUM 安装 KVM

yum -y install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img

(2)YUM 安装 KVM( 简单版 )

yum install kvm virt-manager libvirt* -y

(3)如果无法连入互联网 , 可自行建立源来完成安装并避免各种关联。建立一个本地的 YUM 源:

< 挂载 RHEL 光盘 >
#mount /dev/cdrom /mnt/cdrom
< 建立 YUM 本地源 >
#cd /etc/yum.repos.d
#vim kvms.repo
kvms.repo里的内容
[kvms]
name=Red Hat
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0

也可以上传一个镜像文件至宿主机上,进行伪文件系统挂载:

mount -o loop -t iso9660 /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1810.iso /mnt

(4)kvm虚拟化所需组件介绍
  kvm:核心套件
  virt-manager:图形化 KVM 管理软件
  libvirt:提供虚拟机与宿主相互通信的机制
  libvirt-python:允许使用 libvirt API
  python-virtinst:CLI 下创建 KVM 的工具
  libvirt-client:提供 client 访问 kvm 服务器的机制 ,并包含 virsh 命令进行 管理和控制VMs
  qemu-kvm:提供用户级 KVM 环境
  qemu-img:VMs 磁盘管理
3、启动 KVM
  (1)modprobe kvm    加载 kvm 模块
  (2)lsmod | grep kvm   查看加载成功
  (3)systemctl start libvirtd  启动kvm
  (4)systemctl status libvirtd  查看kvm状态
4、启动并检测 KVM
  virsh list --all

  如出现
  Id Name State
  -------------------------------------------------------
  则安装成功

  virsh list  表示列出已开机的虚拟机
5、在 GUI 模式下安装虚拟机,启动虚拟系统管理器

三、KVM网络模式设置

1、NAT ( 默认上网 ):虚拟机利用 host 机器的 ip 进行上网。对外显示一个 ip;
  virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能,默认ip为192.168.122.1


2、自带的Bridge:将虚拟机桥接到 host 机器的网卡上 ,vm和 host 机器都通过 bridge 上网 . 对外有同网段的不通 ip,此种方式host却不能和vm联通
3、Linux Bridge:基本原理就是创建一个桥接接口 br0 ,在物理网卡和虚拟网络接口之间传递数据。此种方式host也可以和vm连通


  Linux Bridge 是 Linux 上用来做 TCP/IP 二层协议交换的设备,其功能大家可以简单的理解为是一个二层交换机或者 Hub。多个网络设备可以连接到同一个 Linux Bridge,当某个设备收到数据包时,Linux Bridge 会将数据转发给其他设备
(1)添加 br0 网卡的配置文件

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-br0

(2)修改网卡配置文件

vim ifcfg-ens33
TYPE=Ethernet
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
vim ifcfg-br0
TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.11.12
PREFIX=24(NETMASK=255.255.255.0)
GATEWAY=192.168.11.2
DNS=192.168.11.2

(3)重启host:reboot
(4)检查
  # ethtool br0
  # brctl show
  # ifconfig br0

  #lsblk 命令用来查看block设备的信息

四、virt-manager创建虚拟机

(1)首先通过命令 virt-manager 启动图形界面:
  点下面的图标创建虚机

(2)给虚机命名为 kvm1,这里选择从哪里启动虚机。如果是安装新的 OS,可以选择第一项。如果已经有安装好的镜像文件,选最后一项(如下图)。


(3)接下来需要告诉 virt-manager 镜像的位置,点击 “Browser”


(4)需要在系统中上传一个镜像文件到属主机上,放到 /var/lib/libvirt/images/ 目录下,这是 KVM 默认查找镜像文件的地方。


(5)为虚拟机分配 CPU、内存和磁盘


(6)为虚拟机命名,并在安装前配置硬件参数,点击“Finish”。网络选择三节课创建的br0网桥,点击绿色“对勾”开始安装

(7)控制台弹出如下图,安装linux安装步骤安装即可:


virt-manager 可以对虚机进行各种管理操作,界面直观友好,很容易上手。 同时我们也可以用命令 virsh 管理虚机,比如查看宿主机上的虚机:

kvm虚拟化安装与部署(2)的更多相关文章

  1. centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课

    centos vmware centos6.6 64位 kvm虚拟化安装配置     第四十二节课 上半节课 下半节课 f

  2. KVM虚拟化平台环境部署

    一:安装依赖包 二:配置网卡 三:配置环境 实验环境: KVM01   192.168.200.10 关闭防火墙及相关的安全机制 [root@KVM01 ~]# systemctl stop fire ...

  3. 一文告诉你Linux如何配置KVM虚拟化--安装篇

    KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装 ...

  4. KVM虚拟化安装配置

    一.KVM的基础配置及安装: 1.查看是CPU否支持虚拟化: [root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo vm ...

  5. kvm虚拟化安装及虚拟机创建

    1.开启虚拟化(VMware虚拟机为例),安装centos7操作系统. 2.查看CPU是否开启虚拟化 #zgrep  "vmx" /proc/cpuinfo 3.配置yum源,通过 ...

  6. Kvm虚拟化安装与虚拟机创建

    1. 验证CPU是否支持KVM:如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的. egrep '(vmx|svm)' /proc/cpuinfo 2. 关闭SELinux ...

  7. KVM虚拟化简介及安装

    kvm是基于图形化的linux操作的 安装图形化界面的知识点: 磁盘空间有两个词: 精简置备:我先在我系统里面去声明我要一个50G的空间,但是呢,我不会把50G都分给你,你用多少,我分给你多少,但是做 ...

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

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

  9. kvm 虚拟化概述及 virt-manager 安装虚拟机

    一.KVM定义 基于内核的虚拟机(英语:Kernel-based Virtual Machine,简称KVM),是一种用于Linux内核中的虚拟化基础设施. KVM眼下支持Intel VT及AMD-V ...

随机推荐

  1. Jmeter接口测试-MD5加密-请求验签(完整流程)

    第一部分:先准备好Jmeter 1.在开始编写脚本之前,先要确保你的Jmeter能够正常运行.若你还没有安装Jmeter,可参考以下方法: A.Jmeter需要java运行环境,所以需要下载JDK,J ...

  2. 【Redis破障之路】三:Redis单线程架构

    众所周知,Redis是一个单线程架构的NoSQL数据库,但是是单线程模型的Redis为什么性能如此之高?这就是我们接下来要探究学习的内容. 1.Redis的单线程架构 1.1.Redis单线程简介 首 ...

  3. UT之最后一测

    经过前面几次文章的分享的UT的相关知识,今天接着分享UT相关最后一测文章,希望对大家在UT的学习中有一点点的帮助. Spring集成测试 有时候我们需要在跑起来的Spring环境中验证,Spring ...

  4. 号外号外!DevUI Admin V1.0 发布啦!

    4月是鸟儿的月份,是木棉花的月份,是 DevUI Admin 发布的月份. 广受大家期待的 DevUI Admin 终于迎来了第一个开源 Angular 版本! DevUI Admin 是一个企业级中 ...

  5. 1075 PAT Judge

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

  6. hdu4807枚举费用流

    题意:      给你一个有向图,每条边上都有每一时刻的最大流量,有k个人在点0,他们要去点n-1,问你最晚到达的那个人最快要多久. 思路:      这个题目做了很多次,用过费用流,也用过最大流,结 ...

  7. hdu4450 不错的贪心

    题意: 卡片游戏 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total S ...

  8. hdu4965 巧用矩阵乘法结合律

    题意:      给两个矩阵,n*m的矩阵A,和m*n的矩阵B, 求(A*B)^(n*n)其中 m<=6,n<=1000. 思路:       一开始直接模拟,写了个矩阵快速幂,超时了,因 ...

  9. 逆向 string.h 函数库 memset、strcpy、strcmp 函数

    memset 函数 函数原型:void *memset(void *str, int c, size_t n) 主要功能:复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符 ...

  10. 线程操作与进程挂起(Windows核心编程)

    0x01 线程挂起与切换 对于挂起进程,挂起线程则比较简单,利用 ResumeThread 与 SuspendThread 即可,当线挂起时线程用户状态下的一切操作都会暂停 #include < ...