debian12部署KVM

1、更新/升级系统

apt-get update
apt-get upgrade

2、安装依赖包

debian安装

apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon

centos安装

dnf install qemu-kvm libvirt libvirt-daemon virt-install virt-manager libvirt-dbus

3、安装KVM软件包

apt install virt-manager

将当前登录用户加入 kvm 和 libvirt 用户组,以便能够创建和管理虚拟机

usermod -aG kvm $USER
usermod -aG libvirt $USER
#或者group编辑
vim /etc/group

普通用户使用sudo

#编辑 /etc/sudoers 文件 添加用户到 sudoers 文件。在文件末尾添加下面这一行
用户名 ALL=(ALL:ALL) ALL

4、命令配置

运行virsh命令列出 KVM 虚拟机的可用网络和状态:

virsh net-list --all

输出中看到的,libvirt的默认网络处于非活动状态,因此通过运行以下命令使其处于活动状态,并在系统重新启动时自动重新启动:

virsh net-start default
virsh net-autostart default

启用虚拟化守护进程(libvirtd):

systemctl status libvirtd
systemctl enable --now libvirtd
systemctl start libvirtd 

安装 cpu-checker 软件包

apt install -y cpu-checker

通过如下命令判断 KVM 虚拟化是否已经在运行:

kvm-ok

virsh基础命令

查看版本与帮助:

#查看virsh的版本信息
virsh -version
#查看virsh命令的帮助信息12
virsh --help

查看虚拟机:

#显示当前正在运行的虚拟机
virsh list
#显示主机下的所有虚拟机,包括未运行的
virsh list --all
#查看虚拟机的配置信息
virsh dominfo vm-name

创建和管理虚拟机:

#使用XML文件定义(创建)虚拟机
virsh define xml
#删除虚拟机名为vm-name ,但会保留虚拟机的配置文件和磁盘
virsh undefine vm-name 
#删除虚拟机并删除其NVRAM
virsh undefine vm-name --nvram

虚拟机的操作:

#启动名为vm-name的虚拟机
virsh start vm-name
#正常关闭虚拟机名为vm-name
virsh shutdown vm-name
#强制关闭(断电)名为vm-name的虚拟机
virsh destroy vm-name
#挂起(暂停)名为vm-name的虚拟机
virsh suspend vm-name
#恢复挂起的名为vm-name的虚拟机
virsh resume vm-name
#重启名为vm-name的虚拟机
virsh reboot vm-name

其他命令:

#查看名为vm-name的虚拟机的块设备(磁盘)信息
virsh domblklist vm-name
#查看名为vm-name的虚拟机的网卡配置信息
virsh domiflist vm-name
#查看名为vm-name的虚拟机的XML配置文件
virsh dumpxml vm-name
#编辑名为vm-name的虚拟机的XML配置文件
virsh edit vm-name
#进入名为vm-name的虚拟机控制台
virsh console vm-name

5、网络配置

查下当前网络

ip a

配置网络桥接模式,安装的依赖模块bridge-utils,上面已经安装过了

apt install bridge-utils  

备份原来网卡信息(debian)

cp /etc/network/interfaces /etc/network/interfaces.bak

修改/etc/network/interfaces

auto br0
iface br0 inet static
address 10.101.101.33
netmask 255.255.255.0
gateway 10.101.101.254
bridge_ports enp1s0 
bridge_stp off
bridge_fd 0
dns-nameserver 10.101.116.1

# br0桥接口名
#enp1s0是本机网卡出口

配置桥接模式,宿主机修改静态固定IP

/etc/network/interfaces.d 目录下创建:bridge配置文件 ---名字可以随便起

内容如下:

#bridge port 
auto br0
iface br0 inet static 
address 192.168.0.66
broadcast 192.168.0.255 
netmask 255.255.255.0 
gateway 192.168.0.1 
bridge_ports enp4s0 
bridge_stp off 
bridge_waitport 0 
bridge_fd 0
dns-nameserver 192.168.0.1 

#下边这行可以配置也可以不写
hwaddress ether 00:e0:1b:29:55:18

#注意:这里可以不绑定网卡mac物理地址,例如‘00:e0:1b:29:55:18‘,重启后会给桥接模式的网卡分配新的虚拟物理地址。
#也可以hwaddress绑定和enp4s0公用一个mac地址。

保存配置,重启网络服务

systemctl restart libvirtd
systemctl restart networking.service

启动kvm管理界面

virt-manager

X11图形界面PuTTY + Xming 下载

PuTTY - http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlopen in new window Xming - http://sourceforge.net/projects/xming/open in new window