美文网首页
CentOS创建KVM虚拟机

CentOS创建KVM虚拟机

作者: tinychen | 来源:发表于2021-03-22 09:50 被阅读0次
image

使用qemu-kvm在CentOS8上通过GUI创建虚拟机。

1、安装系统组件

首先我们需要安装epel源和相应的虚拟机工具

yum install epel-release -y
yum install qemu-kvm qemu-img libvirt virt-manager virt-top.x86_64 virtio-win.noarch virt-viewer.x86_64 virt-install.noarch -y

virt-install 
libvirt #安装libvirt会将libvirt-client作为依赖进行安装,libvirt-client即libvirt的客户端,最重要的功能之一就是就在宿主机关机时可以通知虚拟机也关机,使虚拟机系统正常关机,而不是被强制关机,造成数据丢失
ipxe-roms-qemu #虚拟机iPXE的启动固件,支持虚拟机从网络启动
qemu-kvm #KVM在用户空间运行的程序
virt-manager  #基于 Libvirt 的图像化虚拟机管理软件
libvirt   #用于管理虚拟机,它提供了一套虚拟机操作API
virt-viewer  #显示虚拟机的控制台console
virt-top  #类似于top命令,查看虚拟机的资源使用情况
virt-what  #在虚拟机内部执行,查看虚拟机运行的虚拟化平台
qemu-img  #用于操作虚拟机硬盘镜像的创建、查看和格式转化

一些主要组件的功能介绍如下:

  • virt-install

    Description : Package includes several command line utilities, including virt-install
    : (build and install new VMs) and virt-clone (clone an existing virtual
    : machine).

  • virt-who

    Description : Agent that collects information about virtual guests present in the system and
    : report them to the subscription manager.

  • virt-top

    Description : virt-top is a 'top(1)'-like utility for showing stats of virtualized
    : domains. Many keys and command line options are the same as for
    : ordinary 'top'.
    :
    : It uses libvirt so it is capable of showing stats across a variety of
    : different virtualization systems.

  • virt-viewer

    Description : Virtual Machine Viewer provides a graphical console client for connecting
    : to virtual machines. It uses the GTK-VNC or SPICE-GTK widgets to provide
    : the display, and libvirt for looking up VNC/SPICE server details.

  • virt-manager

    Description : Virtual Machine Manager provides a graphical tool for administering virtual
    : machines for KVM, Xen, and LXC. Start, stop, add or remove virtual devices,
    : connect to a graphical or serial console, and see resource usage statistics
    : for existing VMs on local or remote machines. Uses libvirt as the backend
    : management API.

  • libvirt

    Description : Libvirt is a C toolkit to interact with the virtualization capabilities
    : of recent versions of Linux (and other OSes). The main package includes
    : the libvirtd server exporting the virtualization support.

  • qemu-kvm

    Description : qemu-kvm is an open source virtualizer that provides hardware
    : emulation for the KVM hypervisor. qemu-kvm acts as a virtual
    : machine monitor together with the KVM kernel modules, and emulates the
    : hardware for a full system such as a PC and its associated peripherals.

2、创建虚拟机

2.1 配置虚拟机存储目录

这里我们直接开启宿主机Linux系统上面的GUI模式并且使用xrdp远程到桌面,然后使用virt-manager来进行GUI模式的创建虚拟机。

这里需要注意的是因为我们使用的是ISO镜像文件来进行虚拟机系统的安装,因此必须需要一个GUI界面来进行最开始的系统安装,等待系统安装完成之后,我们可以直接使用命令行操作来克隆虚拟机,就不用每次都打开GUI模式安装系统这么麻烦了。

接着我们创建一个目录专门用来存放虚拟机相关的镜像和文件,同时我们还需要注意权限的问题:

sudo mkdir -p /kvm/iso
sudo chown tinychen:tinychen /kvm -R

接着我们把相应的系统安装镜像复制进去(对应的系统安装镜像文件均可直接在对应的官网下载),然后打开Virtual Machine Manager(以下简称VMM)来创建虚拟机

image

首先我们在Edit→Preferences里面开启XML文件编辑功能,XML模式可以最大程度的控制虚拟机的所有配置,一些特殊的配置或者组件操作无法通过VMM的GUI界面完成的我们可以直接编辑对应的XML文件块来实现。

image

2.2 创建虚拟机

直接点击加号或者上面的File→New Virtual Machine然后选择使用本地媒体创建虚拟机(这里我们使用刚刚复制进去的ISO镜像文件)

image

接着我们可以看到有四种创建虚拟机的方式:

  • 从本地的媒体资源安装(iso文件或者CD光盘)
  • 通过网络协议获取安装的镜像文件然后进行安装
  • 通过PXE进行安装
  • 导入已有的虚拟机硬盘镜像文件

我们选择第一种方式进行新建虚拟机操作。

image

由于是第一次创建虚拟机,我们需要先在VMM中添加一个池(pool),把先前创建的存放iso镜像文件的目录作为一个池添加到VMM中。

image

添加完成之后我们就可以看到里面的镜像文件,这里我们选择CentOS7的版本进行安装。

image

选择镜像之后VMM会自动检测镜像文件内包含的操作系统。

image

接下来是设定CPU和内存,注意这里的内存单位是MB,而CPU的单位是个,即并不是我们常说的CPU核心数量或者是超线程的线程数量,而是虚拟设定的多少个CPU,这里选择4即为4个CPU而不是一个4核CPU,这个选项我们后面需要再进行修改

image

接下来便是进行虚拟机的硬盘参数设置,我们这里选择手动创建一个硬盘。

image

和之前一样我们再创建一个池专门用来存放虚拟机的系统镜像文件。

image

接着在对应的池中新建一个qcow2磁盘文件。

image

这里我们可以看到硬盘的格式主要有raw和qcow2两种。qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:

  • 更小的空间占用,即使文件系统不支持空洞(holes);
  • 支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;
  • 支持快照(snapshot),镜像文件能够包含多个快照的历史;
  • 可选择基于 zlib 的压缩方式
  • 可以选择 AES 加密

qcow2最大的特点就是可以节省硬盘空间,只有在虚拟机实际占用了磁盘空间时,其文件才会增长。比如这里我们创建了一个40G的硬盘镜像文件,但是实际占用并没有40G,只有在虚拟机实际使用了硬盘空间之后,qcow2格式的镜像文件才会增大。

image image

最后需要设置的就是虚拟机的网卡,这里我们要勾选Customize configuration before install,在系统开始安装之前进行一些参数的设置。

image

2.3 配置虚拟机其他参数

首先我们看到Overview中的ChipsetFirmware两个参数,它们分别相当于物理机电脑主板的芯片组和固件模式(BIOS或UEFI),如果有新版本的需求(如虚拟机KVM直通GPU)可以选择UEFI(OVMF)来进行启动,需要注意VMM中的快照(snapshot)功能不支持UEFI(OVMF)固件的虚拟机,因此这里我们选择默认的Q35和BIOS即可。

image

接下来我们需要对前面设定的CPU参数进行更改。这里我们编辑对应的XML文件将CPU模式修改为host-passthrough以便将CPU的全部特性传递到虚拟机中,同时修改CPU个数为1,核心数为4,每个核心的线程数为1。

image
  <cpu mode="host-passthrough">
    <topology sockets="1" cores="4" threads="1"/>
  </cpu>
image

设定安装系统的ISO为只读,保证ISO文件不会被修改,同时设置数据总线方式为SATA保证最好的兼容性。

image

配置两个网卡,分别为桥接宿主机的网卡和NAT模式,其中桥接网卡使用e1000e型号保证最好的兼容性,NAT模式的网卡使用VirtIO型号可以达到最大100G的传输速度。

image image

其他还会默认添加一些常用的组件,我们根据自己的需求进行修改,这里我只保留了常用的USB重定向设备,声卡、网卡、串行总线等基本设备,如果不清楚具体需求,建议保留。

image

最后整个完整的xml文件如下:

<domain type="kvm">
  <name>centos7_demo</name>
  <uuid>2e80a698-c4f9-464b-bb3e-28c4987cbe9a</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://centos.org/centos/7.0"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory>8388608</memory>
  <currentMemory>8388608</currentMemory>
  <vcpu current="4">4</vcpu>
  <os>
    <type arch="x86_64" machine="q35">hvm</type>
    <boot dev="hd"/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <vmport state="off"/>
  </features>
  <cpu mode="host-passthrough">
    <topology sockets="1" cores="4" threads="1"/>
  </cpu>
  <clock offset="utc">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
  </clock>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/kvm/vm/centos7_demo.qcow2"/>
      <target dev="vda" bus="virtio"/>
    </disk>
    <disk type="file" device="cdrom">
      <driver name="qemu" type="raw"/>
      <source file="/kvm/iso/centos7.7.iso"/>
      <target dev="sda" bus="sata"/>
      <readonly/>
    </disk>
    <interface type="network">
      <source network="default"/>
      <mac address="52:54:00:83:cc:6d"/>
      <model type="virtio"/>
    </interface>
    <console type="pty"/>
    <channel type="unix">
      <source mode="bind"/>
      <target type="virtio" name="org.qemu.guest_agent.0"/>
    </channel>
    <channel type="spicevmc">
      <target type="virtio" name="com.redhat.spice.0"/>
    </channel>
    <input type="tablet" bus="usb"/>
    <graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
      <image compression="off"/>
    </graphics>
    <video>
      <model type="qxl"/>
    </video>
    <memballoon model="virtio"/>
    <rng model="virtio">
      <backend model="random">/dev/urandom</backend>
    </rng>
    <interface type="direct">
      <source dev="enp6s0" mode="bridge"/>
      <mac address="52:54:00:31:ad:1d"/>
      <model type="e1000e"/>
    </interface>
  </devices>
</domain>

2.4开始安装

image

接下来的安装就和正常的物理机安装操作系统一样,这里我们就不再赘述了,由于是CentOS的虚拟机,为了节约系统资源,我选择了最小化安装(Minimal Install)、关闭了KDUMP功能,并且使用LVM来设定分区以便后期扩容

image

最后可以通过virsh命令来查看虚拟机的状态

image

如果需要开启虚拟机只需要使用virsh start 虚拟机名即可。

相关文章

  • Kvm之二:创建虚拟机

    Centos7 Kvm 创建虚拟机 1、准备准备文件目录 2、创建虚拟机磁盘镜像文件 3、安装虚拟机linux操作...

  • KVM 创建 CentOS 以及网络配置

    kvm虚拟机的创建于管理,此篇为入门的教程。高手请飘过 下载CentOS 官方镜像创建以及硬件配置克隆以及网络配置...

  • CentOS创建KVM虚拟机

    使用qemu-kvm在CentOS8上通过GUI创建虚拟机。 1、安装系统组件 首先我们需要安装epel源和相应的...

  • KVM 克隆CentOS 以及网络简易配置

    kvm虚拟机的创建创建后一般情况下都不再进行本地安装一些操作,都是直接克隆一个虚拟机,快捷方便。但是CentOS ...

  • Linux上启用kvm嵌套虚拟化功能

    kvm支持嵌套虚拟化,即可以在虚拟机中创建虚拟机。本文主要介绍如何在使用Intel处理器的CentOS7中开启KV...

  • 云计算day2

    4.7:kvm虚拟机克隆 4.7.1:完整克隆 4.8:kvm虚拟机的桥接网络 4.8.1:创建桥接网卡 4.8....

  • kvm基本命令

    kvm常用管理命令 kvm连接方式 kvm磁盘磁盘 kvm快照管理 kvm克隆虚拟机 kvm桥接网络 kvm虚拟机...

  • Escape

    一、铺垫工作 1、先说KVM:QEMU启动过程 虚拟机的启动过程基本上可以这么总结:创建kvm句柄->创建vm->...

  • Linux - CentOS下载安装

    1、CentOS 下载 centOS下载 2、CentOS安装 1、设置创建好的CentOS 虚拟机 2、在虚拟机...

  • Day77-云计算基础KVM虚拟化[下]

    kvm虚拟机的桥接网络 默认的虚拟机网络是NAT模式,网段192.168.122.0/24 1:创建桥接网卡 创建...

网友评论

      本文标题:CentOS创建KVM虚拟机

      本文链接:https://www.haomeiwen.com/subject/znqmfltx.html