远程管理KVM,命令行控制KVM,console连接,透传
远程管理虚拟机
首先,将虚拟机改成桥接模式,才可以相互连接。
打开宿主机的虚拟系统管理器
输入要远程管理的IP地址。
然后输入密码,显示连接。
打开远程管理的主机的设置,设置VNC服务器和所有接口,就可以打开远程终端。
然后重启libvirtd服务
systemctl restart libvirt-bin
命令行管理虚拟机
virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式
语法结构:virsh <command> <domain-id> [OPTIONS]
virsh help #查看帮助
virsh help list #查看list的各种参数用法
virsh list #查看宿主机正在运行的虚拟机
virsh list --all #列出当前宿主机上所有的虚拟机
virsh start vm1 #开启vm1虚拟机
virsh shutdown vm1 #关闭一台虚拟机
virsh destroy vm1 #强制关闭某一台虚拟机
virsh autostart vm1 #开机自启动虚拟机vm1
virsh autostart --disable vm1 #关闭开机自启动
virsh edit vm1 #编辑vm1虚拟机的配置文件
virsh pool-list #列出存储资源池
创建一个磁盘卷
qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2
查看磁盘信息
qemu-img info /export/kvm/test.qcow2
克隆一个虚拟机
virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2
命令行下创建 && 管理虚拟机
Virt-install:命令行下创建虚拟机的命令,不过在它后面需要跟上很多的参数
--name: 虚拟机的名字。
--disk Location: 磁盘映像的位置。
--graphics : 怎样连接 VM ,通常是 SPICE 。
--vcpu : 虚拟 CPU 的数量。
--ram : 以兆字节计算的已分配内存大小。
--location : 指定安装源路径
--network : 指定虚拟网络,通常是 virbr0 或者自己设定的 br0
例如:
virt-install --name=test --disk path=/export/kvm/test.qcow2 --ram=1024 --vcpus=1 --graphics spice --location=/export/download/software/iso/CentOS-7.3-x86_64-DVD.iso --network bridge=br0
virsh help 打印帮助
virsh attach-device 从一个 XML 文件附加装置
virsh attach-disk 附加磁盘设备
virsh attach-interface 获得网络界面
virsh detach-device 从一个 XML 文件分离设备
virsh detach-disk 分离磁盘设备
virsh detach-interface 分离网络界面
virsh define 从一个 XML 文件定义(但不开始)一个域
virsh undefine 删除一个虚拟机
console连接虚拟机
新安装一台虚拟机后,没有ip的情况下,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。
在小虚拟机中添加ttyS0许可,允许root登录
grubby --update-kernel=ALL --args="console=ttyS0"
重启。
测试:
virsh console vm-name #连接虚拟机
ctrl + ] #退出连接
透传(嵌套)
一、查看小型机是否支持VT
grep vmx /proc/cpuinfo
没有结果,说明小型机并没有把宿主机的VT功能透传,所以无法在小型机中嵌套KVM虚拟机。
二、CPU虚拟化透传
在宿主机创建文件vim /etc/modprobe.d/kvm-nested.conf
添加 options kvm_intel nested=1 #启用嵌套虚拟化功能,并且透传永久生效。
三、重新加载模块并验证
modprobe -r kvm_intel #删除旧的模块
modprobe kvm_intel #重新加载模块
cat /sys/module/kvm_intel/parameters/nested #结果是Y,透传功能开启。
四、修改透传配置文件
virsh edit Vm-Name
将文件中的 custom 改为 host-passthrough
host-passthrough:直接将物理CPU暴露给小型机使用
修改为:
五、重启小型机
查看小型机是否透传成功
lsmod | grep kvm
grep vmx /proc/cpuinfo