KVM简介: KVM,是Keyboard Video Mouse的缩写,KVM 通过直接连接键盘、视频和鼠标 (KVM) 端口,能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在BIOS环境下,随时访问目标计算机。KVM
提供真正的主板级别访问,并支持多平台服务器和串行设备。KVM 技术已经从最初的基础SOHO办公型,发展成为企业 IT
基础机房设施管理系统。可以从kvm 客户端管理软件轻松的直接访问位于多个远程位置的服务器和设备。KVM over IP
解决方案具备完善的多地点故障转移功能、符合新服务器管理标准 (IPMI) 的直接界面,以及将本地存储媒体映射至远程位置的功能


文章目录

  • 一、安装kvm
  • 二、centos7 为kvm配置桥接网络
  • 三、debian 为kvm创建桥接网络
  • 四、XML 配置文件创建桥接网络



一、安装kvm

安装KVM(Kernel-based Virtual Machine)在CentOS 7上通常需要执行以下步骤:

1.检查虚拟化支持:

egrep -c '(vmx|svm)' /proc/cpuinfo

如果输出为1或更多,则表示虚拟化功能已启用。

2.检查模块加载,CPU虚拟化可用性

lsmod | grep kvm

2.安装KVM和相关组件:

sudo yum install qemu-kvm libvirt libvirt-python virt-install libguestfs-tools

3.kvm 安装图形化界面
KVM默认是通过命令行管理的,但你可以使用图形化界面工具来更方便地管理虚拟机。一个常用的图形化工具是virt-manager,它提供了一个基于GTK的用户界面,允许你创建、编辑和管理虚拟机。

yum install virt-manager

4.启动libvirtd服务

systemctl start libvirtd
systemctl enable libvirtd

5.创建iso目录,rz上传iso镜像

mkdir /root/iso
cd   /root/is

ll 查看

kvm 指令 获取IP地址 kvm over ip_桥接

6.使用virt-manager在图形界面创建虚拟机
打开终端并运行以下命令启动virt-manager:

virt-manager

kvm 指令 获取IP地址 kvm over ip_IP_02


点击文件

kvm 指令 获取IP地址 kvm over ip_linux_03

文件 > 新建虚拟机 > 前进 > 浏览 > 本地浏览 > 选择镜像 > 前进 > 前进 > 完成

二、centos7 为kvm配置桥接网络

1.安装必要的软件

确保系统上已安装bridge-utils,这是用于创建和管理网络桥接的工具。

yum install bridge-utils

2.编辑网络配置文件

cp /etc/sysconfig/network-scripts/ifcfg-enp8s0 /etc/sysconfig/network-scripts/ifcfg-enp8s0.bak

将文件修改为类似以下的内容,将原始配置文件转移到桥接设备上:

TYPE=Ethernet
DEVICE=enp8s0
ONBOOT=yes
BRIDGE=br0

BRIDGE=br0这表示与这个配置文件关联的网络接口(如物理网卡 enp8s0)将会被桥接到一个名为 br0 的网络桥上。
3.创建一个新的桥接配置文件

vim /etc/sysconfig/network-scripts/ifcfg-br0

编辑/etc/sysconfig/network-scripts/ifcfg-br0,确保包含以下内容

TYPE=Bridge
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
IPADDR=<桥接IP地址>
NETMASK=<子网掩码>
GATEWAY=<网关地址>

4.重启网络服务

systemctl restart network

至此,kvm的虚拟机已经可以使用桥接网络

三、debian 为kvm创建桥接网络

1.安装Bridge-utils:
确保你的系统已安装bridge-utils包,这个包包含了创建和管理网络桥接所需的工具。

sudo apt-get install bridge-utils

2.编辑网络配置文件:
打开网络配置文件以编辑,文件路径通常是/etc/network/interfaces。

vim /etc/network/interfaces

将文件修改为类似以下的内容:

# The primary network interface
auto enp0s3    # 根据实际情况替换为你的物理网卡接口
iface enp0s3 inet manual

auto br0
iface br0 inet static
    address 192.168.20.10    # 桥接的IP地址
    netmask 255.255.255.0    # 子网掩码
    gateway 192.168.20.1     # 网关地址
    bridge_ports enp0s3      # 指定物理网卡接口
    bridge_stp off            # 禁用Spanning Tree Protocol
    bridge_fd 0               # 不使用桥接设备的转发延迟
    bridge_maxwait 0          # 桥接设备启动的等待时间

注意:将上述配置中的enp0s3替换为你实际的物理网卡接口,并根据你的网络环境调整IP地址、子网掩码和网关等参数。

3.重启网络服务
应用更改并重启网络服务。

sudo systemctl restart networking

四、XML 配置文件创建桥接网络

1.创建桥接网络 XML 文件
vim br0.xml

<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
  <virtualport type="openvswitch"/>
  <portgroup name="br0-port"/>

  <ip address="192.168.20.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.20.2" end="192.168.20.254"/>
    </dhcp>
    <route address="0.0.0.0" prefix="0" gateway="192.168.20.254"/>
  </ip>
</network>

参数解释:

<name>br0</name>:
作用: 定义桥接网络的名称。
意义: 为桥接网络分配一个唯一的标识符,方便管理和区分不同的网络。

<forward mode="bridge"/>:
作用: 定义桥接模式,允许数据通过桥接网络进行传输。
意义: 指定网络的传输模式,这里是使用桥接模式。

<bridge name="br0"/>:
作用: 指定桥接设备的名称。
意义: 指定用于连接虚拟机和物理网络的桥接设备的名称。
# 这一行是用来指定桥接网络所使用的物理网卡的关键参数。
# 确保 br0 是你系统中已存在的物理网卡的名称,并根据需要进行调整。
# 

<virtualport type="openvswitch"/>:
作用: 指定虚拟端口的类型。
意义: 定义桥接网络使用的虚拟端口类型,这里是Open vSwitch。

<portgroup name="br0-port"/>:
作用: 定义端口组的名称。
意义: 为桥接网络中的虚拟机组分配一个标识符,用于标识虚拟机连接到的特定网络。

<ip address="192.168.20.1" netmask="255.255.255.0">:
作用: 定义桥接设备的IP地址和子网掩码。
意义: 指定桥接设备的网络配置,使其成为具有特定IP地址的网络节点。

<dhcp>:
作用: 定义DHCP配置。
意义: 允许虚拟机通过DHCP协议自动获取IP地址,方便动态分配。

<range start="192.168.20.2" end="192.168.20.254"/>:
作用: 定义DHCP分配的IP地址范围。
意义: 指定DHCP服务器可以分配的IP地址范围,确保这个范围不会与其他设备冲突。

<route address="0.0.0.0" prefix="0" gateway="192.168.20.254"/>:
作用: 定义默认路由。
意义: 指定桥接网络上的默认路由,用于指示数据包离开桥接网络时的下一跳网关。这里的 address="0.0.0.0" 表示默认路由,gateway="192.168.20.254" 是默认路由的网关地址。

2.使用 virsh net-define 命令定义网络:

virsh net-define bridge-network.xml

3.使用 virsh net-start 命令启动网络:

virsh net-start bridge-network

4.使用 virsh net-autostart 命令设置网络自动启动

virsh net-autostart bridge-network

5.查看网络状态

virsh net-list