centos部署 KVM 虚拟化平台(保姆级)

发布于:2025-03-26 ⋅ 阅读:(30) ⋅ 点赞:(0)

目录

KVM 工作原理

方法一安装KVM

方法2 YUM 安装 KVM

验证

配置 KVM 网络

virt-manager

(1)创建存储池

(2)创建镜像存储池

(3)创建存储卷

(4)新建虚拟机

完成


KVM 工作原理

       用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。KVM Driver 为

虚拟机创建虚拟 CPU 和虚拟内存,然后执行 VMLAUNCH 指令进入客户模式,装载 Guest

OS 并运行。Guest OS 运行过程中如果发生中断或者影子缺页等异常,将暂停 Guest OS

的运行并保存当前上下文退出到内核模式来处理这些异常。内核模式处理这些异常时如果不

需要 I/O 则处理完成后重新进入客户模式。如果需要 I/O 则进入到用户模式,由 Qemu 来处

理 I/O,处理完成后进入内核模式,再进入客户模式

确认CPU支持虚拟化技术:

执行命令检查CPU是否支持Intel VT-x或AMD-V:

grep -E 'vmx|svm' /proc/cpuinfo

如果输出中包含vmx(Intel)或svm(AMD),则表示CPU支持虚拟化技术。

关闭NetworkManager服务:

为避免不明错误,关闭NetworkManager服务:

systemctl stop NetworkManager

systemctl disable NetworkManager

方法一安装KVM

安装必要的软件包:

使用yum安装KVM及相关组件:

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

启动并设置libvirtd服务开机自启:

systemctl start libvirtd

systemctl enable libvirtd

方法2 YUM 安装 KVM

在 CentOS 的系统光盘镜像中,已经提供了安装 KVM 所需软件。通过部署基于光盘镜

像的本地 YUM 源,直接使用 YUM 安装所需软件即可,安装 KVM 所需软件具体包含以下

几个。

yum groupinstall -y "GNOME Desktop" //安装 GNOME 桌面环境

yum -y install qemu-kvm //KVM 模块

yum -y install qemu-kvm-tools //KVM 调试工具,可不安装

yum -y install virt-install //构建虚拟机的命令行工具

yum -y install qemu-img //qemu 组件,创建磁盘、启动虚拟机等

yum -y install bridge-utils //网络支持工具

yum -y install libvirt //虚拟机管理工具

yum -y install virt-manager //图形界面管理虚拟

需要注意的是:在使用 YUM 安装完桌面后执行 ln -sf

/lib/systemd/system/graphical.target /etc/systemd/system/default.target 命令,将系统的默

认运行 target 更改为 graphical.targe。重启后系统将进入图形化界面。若不执行上述命令更

改系统的默认运行 target,重启时可能报错。

验证

重启系统后,查看 CPU 是否支持虚拟化,对于 Intel 的服务器可以通过以下命令查看,

只要有输出就说明 CPU 支持虚拟化;AMD 服务器可用 cat /proc/cpuinfo | grep smv 命令查

看。

[root@bdqn ~]# cat /proc/cpuinfo | grep vmx

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush

dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl

xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1

sse4_2 x2apic popcnt tsc_deadline_timer xsave avx hypervisor lahf_lm ida arat epb pln pts

dtherm tpr_shadow vnmi ept vpid tsc_adjus

检查 KVM 模块是否安装:

[root@bdqn ~]# lsmod | grep kvm

kvm_intel 170181 0

kvm 554609 1 kvm_intel

irqbypass 13503 1 kvm

置 KVM 网络

宿主服务器安装完成 KVM,首先要设定网络,在 libvirt 中运行 KVM 网络有两种方法:

NAT 和 Bridge,默认是 NAT。

关于两种网络模式的说明:

Ø 用户模式,即 NAT 方式,这种方式是默认网络,数据包由 NAT 方式通过主机的网卡接

口进行传送,可以访问外网,但是无法让外部主机访问虚拟机内部网络。

Ø 桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接

访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

这里以 Bridge(桥接)为例进行操作演示。注:宿主机 IP 地址为 192.168.10.1 。

[root@bdqn ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet

第 8 页 共 24 页

BOOTPROTO=none

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=58b0765c-572c-4f63-89a7-1bf720b1fab0

DEVICE=ens33

ONBOOT=yes

BRIDGE=br0

[root@bdqn ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0

TYPE=Bridge

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=br0

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.10.1

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

重启 network 服务。

[root@bdqn ~]# /etc/init.d/network restart

第 9 页 共 24 页

Restarting network (via systemctl): [ OK ]

确认 IP 地址信息。

[root@bdqn ~]# ifconfig

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255

inet6 fe80::3362:2f44:ebd1:62e prefixlen 64 scopeid 0x20<link>

ether 00:0c:29:3a:81:cc txqueuelen 1000 (Ethernet)

RX packets 3 bytes 234 (234.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 19 bytes 2613 (2.5 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

ether 00:0c:29:3a:81:cc txqueuelen 1000 (Ethernet)

RX packets 200 bytes 17407 (16.9 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 184 bytes 24024 (23.4 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10<host>

loop txqueuelen 1 (Local Loopback)

RX packets 550 bytes 47778 (46.6 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 550 bytes 47778 (46.6 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255

ether 52:54:00:64:3e:58 txqueuelen 1000 (Ethernet)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

出现以上信息,说明网卡桥接成功了。

virt-manager

virt-manager 是基于 libvirt 的图像化虚拟机管理软件。需要注意的是,不同发行版上的

virt-manager 版本可能有所不同,图形界面和操作方法也可能不同。本文使用了 CentOS

7.3。创建 KVM 虚拟机最简单的方法是通过 virt-manager 接口。从控制台窗口启动这个工

具,以 root 身份输入 virt-manager 命令,出现如图

虚拟化管理步骤如下。

(1)创建存储池

双击 QEMU/KVM,选择“存储”选项卡,然后单击“+”按钮新建存储池。如图所示,单

击“前进”按钮,根据提示输入或浏览用以设置存储目录,如/data_kvm/store,最后单击“完成”

按钮即可。

(2)创建镜像存储池

以同样的操作创建一个镜像存储池,命名为 bdqn_iso,目录为/data_kvm/iso 即可。在

安装操作系统时,需要把镜像上传到服务器目录/data_kvm/iso,如图

(3)创建存储卷

单击刚创建好的“bdqn”,单击对话框中“卷”右边的 “+”按钮建立一个存储卷,并设置最

大容量,如图

(4)新建虚拟机

单击“完成”按钮后,回到虚拟系统管理器。右击“QEMU/KVM”,然后选择“新建”选项,

在弹出的对话框中按图 1.8 所示选择“本地安装介质”,然后单击“前进”按钮。

单击“浏览”按钮选择镜像文件,再选择操作系统型及版本,如图

单击“前进”按钮,在图所示的对话框中适当分配内存和 CPU 资源,如 1 核 CPU、

1GB 内存。

单击“前进”按钮,在如图  所示的对话框中点选“选择或创建自定义存储”单选按钮,

单击“管理”按钮选择文件,然后单击“前进”按钮。

在如图所示将虚拟机名称命名为“CentOS 7.3“,并勾选话框中的“在安装前自定义

配置”复选框,单击“完成”按钮,弹出如图

在“引导选项”视图中勾选“主机引导时启动虚拟机”复选框,这样在物理宿主机启动后,

这个 VM 也会启动,最后单击“应用”按钮,如图

最后单击“开始安装”按钮即可,整个虚拟化配置过程完成。下面就是安装操作系统的工

作,和平时安装 Linux 系统一样

完成