Skip to main content

Kylin Linux Advanced Server V10 离线部署 KVM + Web 可视化管理

整体方案

组件 软件包 说明
虚拟化内核 qemu-kvm、qemu-img KVM 核心
虚拟化管理 libvirt、libvirt-client、virt-install 虚拟机生命周期管理
桥接网络 bridge-utils、iproute 虚拟机网络
Web 可视化 cockpit + cockpit-machines 浏览器管理界面(推荐)
本地图形(可选) virt-manager 有桌面环境时使用

一、离线包准备(在同版本有网机器上操作)

找一台相同 Kylin V10 版本的联网机器(或虚拟机),下载全部依赖包:

# 创建包存放目录
mkdir -p /opt/kvm-offline

# 下载 KVM + Cockpit 全部依赖(不安装)
yum install --downloadonly --downloaddir=/opt/kvm-offline \
  qemu-kvm \
  qemu-kvm-tools \
  qemu-img \
  libvirt \
  libvirt-client \
  libvirt-python \
  virt-install \
  bridge-utils \
  iproute \
  cockpit \
  cockpit-machines \
  cockpit-networkmanager \
  cockpit-storaged \
  cockpit-packagekit \
  virt-viewer

如果 --downloadonly 报错(缺少插件),先执行:

yum install yum-plugin-downloadonly

下载完成后,将整个 /opt/kvm-offline 目录打包拷到目标离线服务器:

tar czf kvm-offline.tar.gz -C /opt kvm-offline
# 拷贝到目标机器后解压
tar xzf kvm-offline.tar.gz -C /opt

二、目标服务器环境检查

# 1. 检查 CPU 是否支持虚拟化(vmx 或 svm 必须有输出)
egrep -c '(vmx|svm)' /proc/cpuinfo

# 2. 检查 KVM 模块是否加载(BIOS 需开启 VT-x/AMD-V)
lsmod | grep kvm

# 3. 查看系统版本
cat /etc/kylin-build
# 或
cat /etc/os-release

如果 egrep 返回 0,需要进 BIOS 开启虚拟化(Intel VT-x / AMD-V)。


三、配置本地离线 YUM 源

# 1. 挂载 Kylin V10 安装 ISO(如果有)
mkdir -p /mnt/kylin-iso
mount -o loop Kylin-Server-10.iso /mnt/kylin-iso

# 2. 备份原有源
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

# 3. 创建本地 ISO 源
cat > /etc/yum.repos.d/local-iso.repo << 'EOF'
[local-iso]
name=Kylin V10 Local ISO
baseurl=file:///mnt/kylin-iso
enabled=1
gpgcheck=0
EOF

# 4. 创建离线 KVM 包源
cat > /etc/yum.repos.d/kvm-offline.repo << 'EOF'
[kvm-offline]
name=KVM Offline Packages
baseurl=file:///opt/kvm-offline
enabled=1
gpgcheck=0
EOF

# 5. 清理缓存并重建
yum clean all
yum makecache

如果没有 ISO,仅靠 /opt/kvm-offline 目录即可,createrepo 生成元数据:

yum install createrepo
cd /opt/kvm-offline && createrepo .

四、安装 KVM 核心组件

# 安装 KVM 和管理工具
yum install -y qemu-kvm qemu-img libvirt libvirt-client virt-install bridge-utils

# 启动 libvirtd 并设置开机自启
systemctl start libvirtd
systemctl enable libvirtd

# 验证安装
virsh --version
virsh list --all

五、安装 Cockpit Web 可视化管理界面

# 安装 Cockpit 及虚拟机管理插件
yum install -y cockpit cockpit-machines cockpit-networkmanager cockpit-storaged

# 启动 Cockpit
systemctl start cockpit.socket
systemctl enable cockpit.socket

# 防火墙开放 9090 端口
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reload

Cockpit 默认监听 9090 端口,浏览器访问:

https://服务器IP:9090

使用 root 或本地系统用户 登录即可。左侧菜单点 "虚拟机"(Virtual Machines) 即可:

  • 创建/启动/停止/删除虚拟机
  • 查看 VNC 控制台
  • 分配 CPU、内存、磁盘、网卡
  • 配置虚拟网络和存储池

六、配置桥接网络(让虚拟机和物理机同网段)

如果需要虚拟机和局域网其他机器互通,配置桥接网卡:

# 编辑物理网卡配置(假设网卡名为 eth0,用 ip addr 确认)
nmcli connection show

# 创建桥接接口
nmcli connection add type bridge con-name br0 ifname br0

# 将物理网卡加入桥接
nmcli connection add type bridge-slave con-name br0-port1 ifname eth0 master br0

# 配置 br0 的 IP(根据实际网络修改)
nmcli connection modify br0 ipv4.method manual \
  ipv4.addresses 192.168.1.10/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns 192.168.1.1

# 关闭原物理网卡的自动连接,激活桥接
nmcli connection down eth0
nmcli connection up br0

如果服务器是远程管理,操作 NetworkManager 时务必小心,建议带外管理口操作,避免网络中断。


七、创建虚拟机(两种方式)

方式一:Cockpit Web 界面(推荐)

  1. 浏览器打开 https://服务器IP:9090
  2. 左侧点 虚拟机 → 创建虚拟机
  3. 选择安装介质(上传 ISO 或指定路径)
  4. 分配 CPU、内存、磁盘
  5. 网络选择 br0(桥接)或默认 NAT 网络
  6. 点击创建,在 Web 控制台中安装系统

方式二:命令行创建

# 上传操作系统 ISO 到服务器 /var/lib/libvirt/images/

# 创建虚拟机示例(2核/4G/40G 磁盘)
virt-install \
  --name kylin-vm01 \
  --ram 4096 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/kylin-vm01.qcow2,size=40,format=qcow2 \
  --cdrom /var/lib/libvirt/images/Kylin-Server-10.iso \
  --network bridge=br0 \
  --graphics vnc,listen=0.0.0.0,port=5901 \
  --os-type linux \
  --os-variant kylin10

八、验证清单

# KVM 模块
lsmod | grep kvm

# libvirt 状态
systemctl status libvirtd

# Cockpit 状态
systemctl status cockpit.socket

# 虚拟网络
virsh net-list --all

# 存储池
virsh pool-list --all

# 查看现有虚拟机
virsh list --all

常见问题

问题 解决
virsh listpermission denied 当前用户加入 libvirt 组:usermod -aG libvirt root,重新登录
Cockpit 打开后无"虚拟机"菜单 yum install cockpit-machines,确认已安装
Web 控制台黑屏 确认 qemu-kvm-common 已装,且 --graphics vnc 配置正确
离线包缺依赖 在有网机器上 yum deplist 包名 查看完整依赖链,或直接同步整个 base 源
虚拟机无法上网 NAT 模式检查 virsh net-start default;桥接模式检查 br0 配置

需要我补充某个具体环节(比如 ISO 源完整同步脚本、Cockpit 权限配置、或批量虚拟机创建)随时说。