欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kvm虚拟机管理

程序员文章站 2022-05-29 22:21:52
...

远程管理kvm虚拟机

virt-manager不仅可以在本地主机上管理kvm虚拟机,也可以远程管理其他宿主机上的虚拟机。
首先我们需要检查本主机是否安装了openssh-askpass

yum -y install openssh-askpass

接着我们只需要进入菜单栏中File选择添加连接,之后就能通过这里管理其他虚拟机。

virsh命令行管理虚拟机

virsh既有命令行模式,也有交互模式。在shell命令行下直接输入virsh就进入交互模式;在virsh后加上命令参数就是命令行模式。

virsh help 查看帮助信息
virsh list 列出所有运行中的kvm虚拟机
virsh list --all 列出所有kvm虚拟机
virsh start centos7.0 启动某台虚拟机
virsh shutdown centos7.0 关闭某台虚拟机
virsh destroy centos7.0 强制关闭某台虚拟机
virsh autostart centos7.0 设置某台虚拟机为开机自启
virsh autostart --disable centos7.0 关闭开机自启
virsh pool-list 列出存储池
virsh undefine centos7.0 删除一个虚拟机
virsh define 从一个XML 文件定义(但不开始)一个域
virsh edit centos7.0 编辑某台虚拟机配置文件

我们既可以用virsh命令行来修改虚拟机配置文件,也可以直接在宿主机中修改:

vim /etc/libvirt/qemu/centos7.0.xml

虚拟机克隆

virt-clone -o vm1 -n vm2 -f /var/lib/libvirt/images/vm2.qcow2

kvm虚拟化透传

nested虚拟机嵌套:简单来说,就是要在虚拟机上跑虚拟机。
kvm的虚拟机嵌套与VMWare原理不同:VMWare第一层使用硬件虚拟化,第二层完全由软件模拟,因此VMWare只能做两层嵌套;而kvm是将物理CPU的特性完全传给虚拟机,只要硬件性能允许,就可以嵌套无数层。
KVM 虚拟化需要CPU对虚拟化技术的支持,当我们进行虚拟机嵌套虚拟机时,我们需要让虚拟机CPU对 VT 功能的支持达到透传的效果。我们来查看一层虚拟机是否支持VT功能:

cat /proc/cpuinfo | grep vmx

如果没有结果就说明一层虚拟机并未将宿主机CPU的VT功能成功透传,我们需要手动进行CPU虚拟化透传。
在最外层服务器上执行:

echo 'options kvm_intel nested=1' > /etc/modprobe.d/kvm-nested.conf
重新加载kvm_intel模块
modprobe -r kvm_intel
modprobe kvm_intel
修改虚拟机配置文件,使物理CPU直接暴露给虚拟机
virsh edit centos7.0
  <cpu mode='host-passthrough' check='none'/>

之后我们可以看到在虚拟机上也支持VT功能了。

相关标签: kvm