Tips:因为博客园排版的原因,图片显示不清晰,可以放大网页查看清晰图片。

如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstation,还须将处理器的虚拟化引擎中的三项开启。

本机主要硬件配置(使用VMware workstation模拟)

CPU:i5-6200U(2核)

内存:4G

硬盘:SATA 100Gx2

网卡:Intel(R) 82574Lx2

安装Linux

这里我使用的是CentOS 7.4,其他发行版的Linux也可以。使用KVM可以完全命令行操作,但本文旨在简单介绍KVM,所以通过GUI操作。附加环境建议选上Compatibility Libraries、Development tools,如果英文水平有限语言可以选择中文,具体如何选择Linux环境查看下一节。

安装KVM

安装KVM有多种方式可供选择

1.安装系统时,在基础环境中选择Virtualization Host,附加环境中选择Virtualization Platform,这将仅安装基础虚拟化环境和命令行工具,此时只能通过命令行管理虚拟机。

2.安装系统时,在基础环境中选择Server with GUI,附加环境选择Virtualization Client, Virtualization Hypervisor, and Virtualization Tools,除了将安装虚拟化环境和命令行工具,还将安装一个管理虚拟机的图形工具(virt-manager)。

3.手动安装

在已经安装好的Linux中,安装下列rpm包。

qemu-kvm:此包提供hypervisor以及宿主机和虚拟机之间的通信。

qemu-img:此包提供虚拟机磁盘管理工具。

libvirt:简单来说就是提供控制hypervisor的库,基于这个库可以编写各种工具管理虚拟机。还提供了负责处理库调用、管理虚拟机和hypervisor的名为libvirtd守护进程。
4.编译安装

Tips:qemu-img是qemu-kvm的依赖包,所以安装命令中可以不敲出qemu-img。

yum install qemu-kvm libvirt

一些可选择的工具包

virt-install:这个包提供了virt-install命令,用于从命令行创建虚拟机。

libvirt-python:这个包包含一个模块,它允许用Python编写的应用程序使用libvirt 提供的API。

virt-manager:这个包提供了virt-manager工具,也称为Virtual Machine Manager。这是一个用于管理虚拟机的图形工具,它使用libvirt-client库作为管理API。

libvirt-client:此包提供用于访问libvirt的API和库,还包括virsh,用于从命令行管理和控制虚拟机。

yum install virt-install libvirt-python virt-manager virt-install libvirt-client

Tips:因为virt-manager是一个图形界面工具,所以要使用virt-manager,Linux必须安装图形界面。

写本文时,我采用的是第3种方式手动部署,并安装了所有列举的可选择包。不过一段时间后我再次使用该方式在CentOS 7.4手动部署,却始终无法启动libvirtd服务,推测是centos默认yum源(Base)中libvirt的版本升级,版本较高导致CentOS 7.4的默认环境不再适用,所以还是更推荐前两种方法,或者手动安装时使用ISO镜像源。

libvirtd服务非常重要,必须确保该服务能够正常运行,才能使用各种管理工具。

GUI创建虚拟机

按 win ,选择全部,打开虚拟系统管理系统,也就是virt-manager

选择从本地安装介质

定位安装介质,这里选择使用ISO映像

可以向默认路径复制系统ISO,然后刷新。

也可以选择本地浏览,选择自定义路径中的映像。

设置内存和CPU

这个可以理解为设置系统盘大小,选项“选择或创建自定义存储”是设置虚拟机存储路径,我这里直接前进使用默认路径。

虚拟机储存路径如图,如果想要手动配置一些硬件相关信息,可以勾选在安装前自定义设置, 网络维持默认的虚拟网络NAT即可。

Tips:如果选择安装前自定义配置,需要再次手动设置ISO映像位置。

点击开始安装

Tips:virt-manager和VMware workstation差不多,多尝试几次就熟悉了,可以参考:https://virt-manager.org/

此外,本文只是简单介绍KVM,更多关于KVM可以参考系列文章:

主流服务器虚拟化技术简单使用——KVM(一)的更多相关文章

  1. 主流服务器虚拟化技术简单使用——KVM(二)

    通过Linux工具管理KVM 主流服务器虚拟化技术简单使用——KVM(一)部署了一台KVM主机,提到KVM可以通过命令行工具(virt-install.virsh)和GUI工具(virt-manage ...

  2. 主流服务器虚拟化技术简单使用——Hyper-V(二)

    当在多台Windows Server上部署了hyper-v的时候,需要采用合适的方法管理这些hyper-v节点. 远程桌面 最简单的方法就是逐台远程桌面登陆Windows Server,再使用每台本地 ...

  3. 主流服务器虚拟化技术简单使用——Xen(一)

    Tips:因为博客园网页布局的原因,部分图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstat ...

  4. 主流服务器虚拟化技术简单使用——Hyper-V(一)

    Tips:因为博客园排版的原因,图片显示不清晰,可以放大网页查看清晰图片. 如果系统使用物理机,需要在BIOS里面开启Intel VT-x(或AMD-V),如果是VMware workstation, ...

  5. 主流服务器虚拟化技术简单使用——Xen(二)

    管理多台Xen主机可以使用GUI工具virt-manager和xm.xl等命令行工具. Tips:hypervisor一定要选到Xen web管理工具 Xen也有一个简易web管理工具叫xenwebm ...

  6. 虚拟化技术xen,kvm,qemu区别

    虚拟化类型 全虚拟化(Full Virtualization) 全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件之间用于工作协调,一些 ...

  7. [51CTO]服务器虚拟化开源技术主流架构之争

    服务器虚拟化开源技术主流架构之争 http://virtual.51cto.com/art/201812/589084.htm 大部分客户已经是KVM+OpenStack的架构了 我所见到的 工商云 ...

  8. 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较

    1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...

  9. 虚拟化技术:Xen与KVM的对比

    作为开源的虚拟化技术,对比Xen和KVM可以看到,Xen以6个无与伦比的优势领先:更好的可用资源.平台支持.可管理性.实施.动态迁移和性能基准. 可用资源:Xen的问世要比KVM早4年之久(两者分别是 ...

随机推荐

  1. 回顾2017系列篇(五):人工智能给UI/UX设计带来的影响

    如今,我们正处于设计新纪年的转折点上,用机器人和人工智能方面的专家说法表达即“The end is near(终点近了)”.但这并不意味着世界末日,但未来机器人将毫无疑问地接管一部分目前被人类占领的工 ...

  2. java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)

    总结一些日期常用的代码,方便以后直接拿 <code> /** * java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串) * @param year * @param m ...

  3. eclipse (android环境搭建)

    如何安装java环境 http://jingyan.baidu.com/article/a24b33cd59b58e19fe002bb9.html eclipse安装教程 http://jingyan ...

  4. eclipse Multiple annotations found at this line

    参考:http://blog.csdn.net/li396864285/article/details/42745071 这样的错不影响编程,是eclipse的校验问题 去掉相应的Build就行了

  5. javascript总结37:DOM:innerText 和 innerHTML

    innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...

  6. JavaScript语言精粹 笔记02 函数

    函数函数对象函数字面量调用参数返回异常给类型增加方法递归作用域闭包回调模块级联套用记忆   函数 1 函数对象 在JS中函数就是对象.对象是“名/值”对的集合并拥有一个连接到原型对象的隐藏连接.对象字 ...

  7. 编写高质量代码改善C#程序的157个建议——建议128:考虑让派生类的名字以基类名字作为后缀

    建议128:考虑让派生类的名字以基类名字作为后缀 派生类的名字可以考虑以基类名字作为后缀.这带来的好处是,从类型的名字上我们就知道它包含在哪一个继承体系中. Exception及其子类就是这样一个典型 ...

  8. APUE(8)---进程控制(1)

    一.进程标识 每个进程都有一个非负整型标识的唯一进程ID.因为进程ID标识符总是唯一的,常将其用做其他标识符的一部分以保证其唯一性.进程ID虽然是唯一的, 但是却是可以复用的.ID为0的进程通常是调度 ...

  9. 阿里云ECS搭建开源跳板机jumpserver无法获取验证邮件的问题及解决办法

    这段时间自己在阿里云上搭建了jumpserver3.0,在安装过程中需要输入邮箱smtp地址,输入之后会有一封验证邮件的,但是在阿里云ECS服务器上却无法收到邮件.查阅了阿里云官方的说明: 为什么无法 ...

  10. Jquery ajax的参数格式化

    jQuery的ajax会自动将js对象转换为可传递的参数,$.param(jsobj, boolean),但是默认会把对象中数组类型加上[]符号,后台就不怎么好取了 参数boolean为true时不加 ...