×
登录
我已经注册了,直接登录
注册
我还没有注册用户,现在注册
  • 请输入手机号码

  • 请输入密码

  • 点击刷新验证码

KVM云服务器如何搭建

2026-07-10 05:06:20 来源:紫云

搭建KVM(Kernel-based Virtual Machine)云服务器,核心是在物理服务器(宿主机)上安装KVM虚拟化环境,并通过管理工具创建、管理虚拟机,最终对外提供云服务器服务。以下是详细步骤(以CentOS 7/8为例,其他Linux发行版思路类似)。

一、准备工作

1. 硬件要求

  • CPU:支持硬件虚拟化(Intel VT-x 或 AMD-V),需开启BIOS/UEFI中的虚拟化选项(部分服务器默认关闭,需手动开启)。
  • 内存:建议≥8GB(根据虚拟机数量调整,每个虚拟机至少分配1GB+)。
  • 存储:建议≥100GB(用于宿主机系统、虚拟机镜像、ISO镜像等)。
  • 网络:至少1块物理网卡(如需多网络隔离,可多网卡或配置VLAN)。

2. 系统要求

  • 宿主机安装Linux系统(推荐CentOS 7/8、Ubuntu 20.04/22.04,本文以CentOS 7为例)。
  • 关闭SELinux(或设置为宽松模式)、关闭防火墙(或开放必要端口,如SSH、VNC等)。

二、检查硬件虚拟化支持

先确认CPU是否支持虚拟化,以及是否已开启:

# 检查Intel VT-x(Intel CPU)
egrep -c '(vmx)' /proc/cpuinfo
# 检查AMD-V(AMD CPU)
egrep -c '(svm)' /proc/cpuinfo
  • 输出结果≥1:支持虚拟化;输出0:不支持或未开启(需进BIOS开启)。

三、安装KVM及相关工具

KVM依赖qemu-kvm(虚拟化核心)、libvirt(管理工具)、virt-install(创建虚拟机)等组件。

1. 安装必要包

# CentOS 7
yum install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install bridge-utils
# CentOS 8(用dnf替代yum)
dnf install -y qemu-kvm libvirt libvirt-python libguestfs-tools virt-install bridge-utils

2. 启动并开机自启libvirtd服务

systemctl start libvirtd
systemctl enable libvirtd

3. 验证KVM安装

# 检查KVM模块是否加载
lsmod | grep kvm
# 输出类似:kvm_intel(或kvm_amd)、kvm,说明加载成功
# 检查libvirt状态
virsh version
# 显示libvirt版本、hypervisor(qemu/kvm)信息,说明正常

四、配置网络(桥接模式,推荐)

默认libvirt会创建virbr0(NAT模式),但云服务器通常需要桥接模式(虚拟机直接获取局域网IP,或直接对外网暴露)。

1. 创建桥接网卡(以物理网卡eth0为例,需替换为实际网卡名,如ens33

先查看物理网卡名:

ip addr  # 或 ifconfig

2. 编辑网卡配置文件(CentOS 7)

  • 备份原网卡配置:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
  • 修改物理网卡eth0配置(改为桥接的从属设备):
vi /etc/sysconfig/network-scripts/ifcfg-eth0

内容修改为:

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0  # 桥接到br0
  • 创建桥接网卡br0配置:
vi /etc/sysconfig/network-scripts/ifcfg-br0

内容(根据实际网络修改,如静态IP或DHCP):

TYPE=Bridge
BOOTPROTO=static  # 或dhcp(若局域网有DHCP)
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.100  # 宿主机IP(替换为你的局域网IP)
NETMASK=255.255.255.0
GATEWAY=192.168.1.1    # 网关(替换为你的网关)
DNS1=8.8.8.8
DNS2=114.114.114.114

3. 重启网络服务

systemctl restart network

4. 验证桥接

brctl show  # 或 ip link show br0
# 输出应显示br0桥接了eth0,说明配置成功

五、创建虚拟机(云服务器)

使用virt-install命令创建虚拟机,需准备ISO镜像(如CentOS、Ubuntu的ISO,或云镜像如CloudStack/Cirros)。

1. 准备ISO镜像

将ISO上传到宿主机(如/var/lib/libvirt/images/目录,这是libvirt默认存储池):

mkdir -p /var/lib/libvirt/images/iso
# 上传ISO到该目录,例如CentOS-7-x86_64-Minimal.iso

2. 创建虚拟机(示例:1核2G,20G磁盘)

virt-install \
--name=my-kvm-vm \          # 虚拟机名称
--ram=2048 \                # 内存(MB)
--vcpus=1 \                 # CPU核心数
--disk path=/var/lib/libvirt/images/my-kvm-vm.qcow2,size=20 \  # 磁盘路径(qcow2格式,动态扩容)
--os-type=linux \           # 系统类型
--os-variant=centos7.0 \    # 系统版本(可通过`osinfo-query os`查看支持的版本)
--network bridge=br0 \      # 桥接网络(用之前创建的br0)
--graphics vnc,listen=0.0.0.0,port=5901 \  # VNC远程连接(端口5901,可自定义)
--cdrom=/var/lib/libvirt/images/iso/CentOS-7-x86_64-Minimal.iso \  # ISO路径
--noautoconsole             # 不自动连接到控制台

3. 验证虚拟机状态

virsh list --all  # 查看所有虚拟机(包括关机状态)
# 输出应显示my-kvm-vm状态为running或shut off

六、管理虚拟机(常用命令)

# 启动虚拟机
virsh start my-kvm-vm
# 关闭虚拟机(优雅关机)
virsh shutdown my-kvm-vm
# 强制关闭虚拟机(类似拔电源)
virsh destroy my-kvm-vm
# 重启虚拟机
virsh reboot my-kvm-vm
# 删除虚拟机(需先关机)
virsh undefine my-kvm-vm  # 仅删除配置,磁盘文件需手动删除
# 查看虚拟机VNC端口(用于远程连接安装系统)
virsh vncdisplay my-kvm-vm  # 输出如:1,对应端口5901(5900+1)
# 连接虚拟机控制台(本地)
virsh console my-kvm-vm  # 按Ctrl+]退出

七、远程连接虚拟机(安装系统)

创建虚拟机时指定了VNC端口(如5901),可通过VNC客户端(如RealVNC、TightVNC、Remmina)远程连接宿主机IP:5901,完成系统安装。

  • 连接后,按提示安装Linux系统(注意:安装时磁盘选择之前创建的20G磁盘,网络选择桥接的br0,即可获取局域网IP)。

八、进阶:搭建“云”特性(可选)

若需实现弹性伸缩、镜像模板、用户自助管理等云服务器特性,可结合以下工具:

  1. CloudStack:开源云平台,支持KVM、Xen等,提供Web界面管理虚拟机、网络、存储。
  2. OpenStack:企业级开源云平台,组件复杂但功能强大(需部署Nova、Glance、Neutron等组件)。
  3. oVirt:基于KVM的企业级虚拟化管理平台(Red Hat支持),提供Web界面和高级功能(如高可用、迁移)。

简单示例:用oVirt管理KVM

  • 安装oVirt Engine(管理节点):参考oVirt官方文档
  • 将KVM宿主机添加到oVirt集群,即可通过Web界面创建、管理虚拟机,实现“云”体验。

九、注意事项

  1. 存储优化:虚拟机磁盘建议用qcow2格式(支持快照、动态扩容),避免用raw格式(占用空间大)。
  2. 快照备份:用virsh snapshot-create创建虚拟机快照,方便回滚:
virsh snapshot-create my-kvm-vm  # 创建快照
virsh snapshot-list my-kvm-vm    # 查看快照
  1. 资源限制:通过virsh edit my-kvm-vm编辑XML配置,限制CPU、内存、磁盘IO等(避免单个虚拟机占用过多资源)。
  2. 安全:若对外网提供服务,需配置防火墙(如firewalld)、SSH密钥登录,避免弱密码。

总结

以上是单节点KVM云服务器的搭建流程,核心是“安装KVM→配置桥接→创建虚拟机→管理虚拟机”。若需多节点、多租户、自动化部署等云特性,需结合CloudStack/OpenStack等云平台工具。

开始使用我们的产品

销售客服
售后技术支持