2024年1月18日发(作者:)

配置KVM 虚拟机实验报告

一、 实验目的

在Linux操作系统上,实现KVM+QEMU+Libvirt环境,能够创建虚拟机,并通过virsh对虚拟机进行管理,了解虚拟机的系统架构与基本操作。

二、 实验环境

主机:CPU: Intel Core i5(双核四线程)

MEM: 32GB

Disk: 1.5TB

虚拟机主机:CentOS 7

虚拟化支持:KVM虚拟化需要CPU的硬件虚拟化加速的支持。这个可以在VMware Workstation的虚拟机设置中开启。

三、 实验步骤

1、 检查CPU虚拟化支持

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

vmx 为Intel的CPU指令集

2、 安装软件包

# yum install qemu-kvm libvirt virt-install virt-manager

在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包。 qemu-kvm包主要

包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。依赖包qemu-img主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。libvirt提供Hypervisor和虚拟机管理的API。依赖包libvirt-client是KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。virt-install用于创建和克隆虚拟机的命令行工具包。virt-manager是图形界面的KVM管理工具。

3、 激活并启动libvirtd服务

# systemctl enable libvirtd

# systemctl start libvirtd

4、 配置桥接网络

默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。

1.停止NetworkManager服务

# systemctl stop NetworkManager

该服务开启的情况下直接去修改网卡的配置文件会造成信息的不匹配而导致网卡激活不了。

2.修改以太网卡配置文件

# cd /etc/sysconfig/network-scripts

# vi ifcfg-eno1

DEVICE=eno1

BOOTPROTO=static

ONBOOT=yes

BRIDGE=br0

HWADDR=b8:ae:ed:7d:9d:11

NM_CONTROLLED=no

原有的以太网络不需要配置IP地址,指定桥接的网卡设备(如br0)即可。

3.修改桥接网卡配置文件

# cd /etc/sysconfig/network-scripts

# vi ifcfg-br0

TYPE=Bridge

HWADDR=b8:ae:ed:7d:9d:11

BOOTPROTO=static

DEVICE=br0

ONBOOT=yes

IPADDR=192.168.2.10

NETMASK=255.255.255.0

GATEWAY=192.168.2.1

DNS1=202.103.24.68

NM_CONTROLLED=no

桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eno1中BRIDGE对应。

NM_CONTROLLED参数表示该网卡是否被NetworkManager服务管理,设置为no的话就是不接管,那么之前不用停止NetworkManager服务。

开启主机IP地址转发

# vi /etc/

_forward = 1

# sysctl -p

重启网络服务

# systemctl restart network

# systemctl restart NetworkManager

5、 给虚拟机划分硬盘空间

#qemu-img create -f qcow2 2 10G

其中10G表示磁盘空间的大小。

6、 建立虚拟机的配置文件

# touch

# gedit

编辑,,内容如下

centos7.0 //虚拟机名称

1048576 //最大内存,单位k

1048576 //可用内存,单位k

2 //虚拟cpu个数

hvm

//光盘启动

destroy

restart

destroy

/usr/libexec/qemu-kvm

//目的镜像路径

//光盘镜像路径

//虚拟机网络连接方式

//当前主机网桥的名称

//为虚拟机分配mac地址,务必唯一,否则dhcp获得同样ip,引起冲突

//vnc方式登录,端口号自动分配,自动加1,可以通过virsh vncdisplay来查询

7、 定义并启动虚拟机。

使用# virsh define 定义虚拟机及相关信息,将CentOS镜像下载到demo,xml中定义的光盘镜像路径中,使用#virsh start centos7.0启动虚拟机。

四、 实验结果

使用#virsh list命令可以查看当前运行的虚拟机状态。

使用命令#virsh shutdown centos7.0可以关闭虚拟机。