KVM 配置.note
参考链接:https://wiki.debian.org/KVM#Libvirt_default_network
# --location 指定的是安装镜像的位置,使用 lsblk查看本地挂载的安装镜像(44GB的那个就是),一般都是 /dev/sr0
其它参数都好理解1、配置 KVM:
apt install -y virt-manager bridge-utils(1)配置网卡:
# Mail1:
vim /etc/network/interfaces
## hwaddress 参数不是必须的,它能够自定义 MAC地址

# Mail2:
vim /etc/network/interfaces
## hwaddress 参数不是必须的,它能够自定义 MAC地址

(2)创建虚拟机:
virt-install --name vm01 --os-variant debian11 --memory 1024 --vcpus 1 --disk size=4 --network bridge=br0 --location /dev/sr0 --graphics none --console pty,target_type=serial --extra-args "console=ttyS0"
# console这里不能够有任何空格
## 13.2版本命令:
virt-install --name vm01 --osinfo debian13 --memory 1024 --vcpus 1 --disk size=4 --network bridge=br0 --location /dev/sr0 --graphics none --console pty,target_type=serial --extra-args "console=ttyS0"

稍等一会就会自动进入kvm了:

然后执行安装操作即可
安装需要的时间比较久,建议比赛时提前做kvm,本次实验kvm安装了一个半小时
## 如果哪个参数忘记了,例如:console 可以使用命令查看:
virt-install --console help
(3)虚拟机操作:
# 进入虚拟机:
virsh console vm01
# 查看所有虚拟机:
virsh list --all
# 启动虚拟机:
virsh start vm01
# 进入虚拟机关闭虚拟机:
virsh console vm01
poweroff
Ctrl + ] //退出
# 强制关闭虚拟机:
virsh destroy vm01
# 删除虚拟机:(需要先关闭虚拟机)
virsh undefine vm01
# 退出虚拟机:(按键盘)
Ctrl + ]·如果有时虚拟机安装后一直卡在grub界面:

# 在这个界面按 e 编辑 grub
### 这个模式的grub只能够通过快捷键移动光标:
## 使用 Ctrl + N 下移
## 使用 Ctrl + F 右移
## 使用 Ctrl + B 左移
## 使用 Ctrl + P 上移
# 进系统后修改:
vim /etc/default/grub
2、虚拟机迁移:
(1)配置NFS共享虚拟机根目录:
# 将虚拟机存储的机器(Mail1)配置为NFS服务器:
## 共享 /var/lib/libvirt/images 目录
apt install -y nfs-kernel-server
vim /etc/exports
exportfs -av
# Mail2上挂载nfs目录:
apt install -y nfs-client
vim /etc/fstab
mount -a
(2)迁移虚拟机:

需要先完成前面的nfs挂载步骤
# 虚拟机必须是开机状态才能够进行迁移
virsh migate --live --persistent --undefinesource --unsafe vm01 qemu+ssh://172.16.100.102/system可以看到迁移后Mail1本地已经没有虚拟机了:

Mail2查看:

# 要完成题目的要求需要在Mail1和Mail2两端都给对端传ssh密钥,使他们都能够免密连接ssh
Mail1:
ssh-keygen
ssh-copy-id root@172.16.100.102
Mail2:
ssh-keygen
ssh-copy-id root@172.16.100.101# 配置 vmmigrate命令:
## 可以在/root/.bashrc 配置 alias:Mail1:

Mail2:

source ~/.bashrc
## 也可以将其配置成shell命令放到 /usr/bin/目录下
vim /usr/bin/vmmigrate //新建一个文件,将virsh ... 命令写入即可
chmod 777 /usr/bin/vmmigrate3、客户端通过ssh访问kvm虚拟机:

(1)虚拟机 挂载镜像源安装软件包:
# 将 /dev/sr0 挂载进虚拟机
virsh change-media vm01 sdb /dev/sr0 --block
# 安装软件包:
virsh console vm01
apt-cdrom add
apt install -y vim dbus ssh(2)虚拟机 配置IP:
vim /etc/network/interfaces
systemctl restart networking
(3)虚拟机配置ssh服务:
配置允许 root 用户登录
(4)防火墙配置dnat:
操作过程这里不赘述,在边界防火墙上将22端口映射到虚拟机IP即可
将 47.119.161.17 映射到 172.16.100.110(虚拟机IP) 的22端口即可
# Router1:
vim /etc/nftables.conf
(5)客户端配置路由、ssh密钥拷贝给 虚拟机:
# 配置 47.119.161.17的路由指向 Router1:
apt install -y frr
vtysh
conf t
ip route 47.119.161.17 255.255.255.255 47.119.161.30
end
wr
# 配置 ssh:
ssh-keygen
ssh-copy-id root@47.119.161.17
·测试:

4、vmcli 命令:

# Client:
vim /usr/bin/vmcli
chmod 777 /usr/bin/vmcli