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

  • 检查硬件和系统的兼容性

    • 检查硬件虚拟化:LC_ALL=C lscpu | grep Virtualization

      这行代码其中 LC_ALL=C为设置输出语言用,lscpu输出CPU信息,在输出的CPU信息里面查找“Virtualization”(虚拟化),输出结果如果有"AMD-V"(AMD CPU) 或者"VT-X"(Intel CPU),则说明你的电脑硬件支持并且已开启虚拟化,可以下一步

      那如果没有显示以上两种呢,就进入BIOS(或者UEFI)找到虚拟化/virtualization/VT-X/AMD-V一般来说是这四个名字里面任意一个,当然,如果你的班子BIOS里面是virtualization里面有vt-x和vt-d两个的话,就两个都开。然后,理论上你就能继续了,除非,你的硬件 根本不支持虚拟化(除非厂家手动阉割,现在一般不会有这问题,博主的本本一开始买来BIOS里面就是没有AMD-V的,后来就是靠BIOS更新加上的)。

      举个例子:博主linux上的显示是:Virtualization: AMD-V则证明该电脑支持AMD 的虚拟化技术

    • 检查系统是否支持lsmod | grep kvm

      这行代码告诉你系统是否加载了KVM有关模块,如果有输出相关模块,请看kvm配置,否则接着看kvm的安装(kvm基于内核,需要内核模块才能正常工作)

  • KVM 安装过程

    KVM的依赖项除了内核和内核模块主要有这些:firewalld(防火墙),dnsmasq,ebtables(网络方面),libvirt(虚拟化接口),qemu(虚拟机本体)。另外,使用bridge-utils可以设置网卡桥接。

    知道了需要的包,安装就好了.

    如果你的系统是Centos(RHEL/Fedora同理)你完全可以在安装的时候就选择虚拟化服务器的,如果要手动安装,那么需要跑这样一条命令(CENTOS8/fedora可能需要把yum替换为dnf):

    sudo yum install -y virt-* libvirt bridge-utils qemu qemu-img qemu-kvm,需不需要操作selinux就看着办,如果因为selinux的原因导致无法开机,那就改,没问题就不需要动了(博主不是专业的运维。平时主玩ARCH,对这块不是特别了解)

玩Ubuntu系列(ubuntu/deepin/mate/kali……)的同学安装kvm的话也类似,不过这包名可能和上面有所不同,代码如下:

sudo apt install qemu qemu-kvm libvirt-bin bridge-utils

Arch用户

sudo pacman -S qemu libvirt ebtables dnsmasq firewalld bridge-utils

安装完软件包,接下来开启防火墙和libvirt守护进程

sudo systemctl start firewalld && sudo systemctl start libvirtd需不需要enable看你们自己的需要,如果是虚拟化母机或者经常用到虚拟机的话,那么建议enable,开机自动把虚拟化服务启动。

讲完了基础安装工作,剩下的就是你如何控制kvm的事情了。图形化/命令行

图形化控制KVM一般使用virt-manager(中文名:虚拟系统管理器),剩下的就是图形化设置的工作了。

嗯,没错,就是这个东西,创建虚拟机的话,只需要点创建虚拟机按钮就好了(就是图上那个亮着的按钮)。

然后,连接这里选择QEMU/KVM,就是使用KVM虚拟机创建.

    番外内容:[有的同学可能先装了libvirt和virt-manager后装qemu的,就会出现没有连接或者连接里面没有KVM的,那么,在确保kvm服务开启的状态下,点击文件,添加连接。
![](https://img2020.cnblogs.com/blog/2045563/202006/2045563-20200625211926555-1690702968.png)
出来这个页面,这里不用动,直接确定,不出意外,你就能导入KVM的连接了,需要知道的是,如果你之前使用virsh或者qemu命令行管理的话,你能够在这里导入kvm连接,但是,并不能接管原来创建的虚拟机。]

至于以何种方式创建虚拟机,就看你需要,不过一般使用第一项使用ISO安装系统,如果你之前有kvm/qemu的磁盘镜像(qcow2),你也可以用第四个(导入现有磁盘镜像).



这里选择需要使用的ISO镜像文件.

点击浏览弹出这个窗口



然后本地浏览选择镜像



选择CPU/运行内存资源



然后创建虚拟硬盘,这里如果你有现成的qcow2/row镜像,你也可以直接拿来用。

番外内容:[需要注意这点:通过libvirt 创建qemu镜像的大小是固定的,就是分多少它马上就吃多少的,不像vmware这样会动态扩展,当然,也可以实现,需要参考下面使用代码创建虚拟机]

然后没有什么问题了,就直接点完成,开始安装系统,安装系统过程,这里就不赘述了,至于基础的管理工作,进去虚拟机的窗口,点击那个管理按钮,会进入类似于vmware虚拟机设置的页面,在里面可以进行操作(部分操作需要关机)。

下面是代码创建虚拟机的介绍(高级玩法可能需要手动修改XML文件,这里就暂时不介绍了)

  • 首先,你需要使用virsh这个命令来管理虚拟机,先创建存储卷(磁盘镜像)

    virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow2|vmdk

    一般QEMU/KVM支持的镜像为qcow/qcow2/row

    或者使用qemu-img来创建镜像

    敲黑板:qemu-img除了可以创建镜像以外,也和virsh一样支持镜像修改,另外,qemu-img创建镜像可以选择预分配模式,从而解决上面使用图形化镜像过大的问题.

    qemu-img create -f 'qcow2' -o preallocation=off /home/udream/test.qcow2 10G 这样就可以创建一个10G大小的,关闭预分配的qcow2镜像,这个镜像文件没安装系统之前的大小是192.2Kb,默认直接创建的大小为10G

    然后,有了磁盘镜像,就可以创建虚拟机了

    举例代码如下:
             virt-install  \
- --name test \
--memory 4096 \
--vcpus=2,maxvcpus=4 \
--cpu host \
--cdrom $HOME/test.iso \
--disk /home/udream/test.qcow2,size=10GiB \
--network user \
--virt-type kvm

这段代码指定了虚拟机名字test,内存1g,CPU最少2核最大4核,安装盘位置:$HOME/test.iso,盘的大小,网络类型,虚拟化接口KVM,使用之前创建的虚拟盘 /home/udream/test.qcow2 大小 10G

  创建完成虚拟机以后使用```virsh start 虚拟机名字```启动虚拟机
关闭虚拟机把start改为shutdown,强制关机为destory,重启是reboot
管理虚拟网络,使用virsh net-后面跟操作(start/destory/create……)
当然,还有pool设置存储池,vol设置存储卷,snapshot设置快照,具体的,因为字数原因(怕某些同学太长不看),就不一个个码了,你可以敲virsh --help查看具体帮助信息,不过。这几个最常用的也就是create/start/stop/destory/list了,
这里举个例子,启动虚拟网络:```virsh net-start 虚拟网络名``` 创建存储池```virsh pool-create XML描述文件名```,其他的命令可以按照这样的方式操作,下一篇是virsh命令的具体玩(配)法(制)介绍。

这次就讲到这里了,本次内容原创纯手码,部分命令为了确认正确性,参考了arch wiki,测试环境为ARCHLINUX 5.7.4-arch1-1 桌面环境kde plasma。

一文告诉你Linux如何配置KVM虚拟化--安装篇的更多相关文章

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

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

  2. kvm虚拟化安装与部署(2)

    一.虚拟化VT开启确认 KVM 本身也有一些弱点,那就是相比裸金属虚拟化架构的 Xen . VMware ESX 和 HyperV , KVM 是运行在 Linux 内核之上的寄居式虚拟化架构,会消耗 ...

  3. Linux中安装配置KVM虚拟化

    KVM 概述: KVM 即 Kernel-based Virtual Machine 基于内核的虚拟机. KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各 ...

  4. 安装配置KVM虚拟化

    安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...

  5. 虚拟化之KVM的安装篇

    1,在安装KVM之前,首先需要在自己的电脑开启cpu虚拟化技术(这个需要BIOS中设置). 如下操作都是在本人虚拟机中设置,所以可以看到我多添加一块磁盘,目的是用来做kvm虚拟机的磁盘. 另外,虚拟机 ...

  6. Centos6.7 64位安装配置kvm虚拟化

    首先,需要我们的cpu支持虚拟化,有的机器支持但是并未在bios开启,这个需要事先开启. 1. Dell R710安装centos6.7 64位 ,Dell R710在开机后按F2进入BIOS,Pro ...

  7. KVM虚拟化安装配置

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

  8. Linux下配置IP及安装vmware tool

    =======================CentOS 7以下======================= 配置IP: 1.获得mac地址 2.编辑ifcfg-eth0文件:vi /etc/sy ...

  9. 【linux开发】Linux下配置java环境 安装eclipse

    配置JDK环境 本文转自:http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html,有修改 下载 登录oracle的网站去下载JDK1.8 ...

随机推荐

  1. 高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.MySQL分区表操作 1.定义:数据库表分区是数据库基本设计规范之一,分区表在物理上表现为多个文件, ...

  2. 使用Python代码制作GIF动态图

    使用Python  PIL.Image 制作GIF图片: import  PIL.Image                      相关模块 img = Image.open(img_name)  ...

  3. Java实现 LeetCode 692 前K个高频单词(map的应用)

    692. 前K个高频单词 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. 示例 1: 输入: [&qu ...

  4. Java实现 LeetCode 432 全 O(1) 的数据结构

    432. 全 O(1) 的数据结构 实现一个数据结构支持以下操作: Inc(key) - 插入一个新的值为 1 的 key.或者使一个存在的 key 增加一,保证 key 不为空字符串. Dec(ke ...

  5. 如何拿到阿里P8 Offer-候选人视角谈面试

    自我介绍 首先简单自我介绍一下,我叫陈映平,花名叫做小卡,2011年校招进入腾讯,是腾讯课堂B侧的前端技术负责人.2015年响应总理的号召,跟朋友一起出来创业,跟前面一位讲师的经历有点像,然后2018 ...

  6. MIT6.S081/6.828 实验1:Lab Unix Utilities

    Mit6.828/6.S081 fall 2019的Lab1是Unix utilities,主要内容为利用xv6的系统调用实现sleep.pingpong.primes.find和xargs等工具.本 ...

  7. Android getMeasuredHeight()与getHeight()的区别

    getMeasuredHeight()返回的是原始测量高度,与屏幕无关 getHeight()返回的是在屏幕上显示的高度 实际上在当屏幕可以包裹内容的时候,他们的值是相等的,只有当view超出屏幕后, ...

  8. 5分钟速成Markdown

    一.认识 Markdown Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版.字体设置.它使我们专心于 ...

  9. [windows][技巧]百度网盘提示您的电脑已安装百度网盘,是否覆盖,解决方法

    目录 故障描述 解决方法 故障描述 解决方法 win+r,输入regedit,进入注册表 依次打开HKEY_CURRENT_USER->Software->Baidu->BaiDuY ...

  10. numpy.random.randn()与numpy.random.rand()的区别

    numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值. n ...