虚拟化第二天

virt-manager创建虚拟机

注意勾选
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远程管理kvm虚机

在这里插入图片描述
在这里插入图片描述
有些情况下,有一个要配置的地方。 因为 KVM(准确说是 Libvirt)默
认不接受远程管理,需要按下面的内容配置被管理宿主机中的两个文件:
#vim /etc/default/libvirt-bin

start_libvirtd="yes"
libvirtd_opts="-d -l"

#vim /etc/libvirt/libvirtd.conf

listen_tls = 0
listen_tcp = 1
unix_sock_group = "libvirtd"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
auth_tcp = "none"

virsh命令行下管理虚拟机

语法结构:
#virsh <command> <domain-id> [OPTIONS]

help 列出命令下的所有参数
help list 列出 list 命令下的参数

#virsh list 列出当前宿主机上处于运行状态的虚拟机
#virsh list --all 列出当前宿主机上所有的虚拟机
#virsh start vm1 (虚拟机name) 开启某一台虚拟机
#virsh shutdown vm1 (虚拟机name) 正常关闭一台虚拟机
#virsh destroy vm1 强制关闭某一台虚拟机
#virsh autostart vm1 开机自启动虚拟机vm1
#virsh autostart --disable vm1 关闭开机自启动
#virsh edit vm1 编辑某个虚拟机的配置文件
#virsh pool-list 列出存储池

#qemu-img create -f qcow2 -o size=9G /export/kvm/test.qcow2
创建一个大小为 50G 的,格式为 qcow2 的磁盘镜像

查看磁盘信息:
#qemu-img info /export/kvm/test.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 形式下还有更多的命令
virsh help 打印帮助
virsh attach-device 从一个 XML 文件附加装置
virsh attach-disk 附加磁盘设备
virsh attach-interface 获得网络界面
virsh destroy 删除一个域
virsh detach-device 从一个 XML 文件分离设备
virsh detach-disk 分离磁盘设备
virsh detach-interface 分离网络界面
virsh define 从一个 XML 文件定义(但不开始)一个域
virsh undefine pikachu1 删除一个虚机域

克隆一个虚机:
#virt-clone -o vm2 -n vm4 -f /var/lib/libvirt/images/vm4.qcow2
(克隆要提前安装:#yum -y install virt-clone)

kvm通过virsh console连入虚拟机

新安装一台虚拟机后,是无法通过virsh console 命令连入虚拟机中的,这时我们需要开启虚拟机的console功能。

对于centos7
(1)在虚机里运行

#grubby --update-kernel=ALL --args="console=ttyS0"

(2)重启虚机

#reboot

kvm虚拟化透传

KVM 虚拟化需要处理器对虚拟化技术的支持,当我们需要进行虚拟机嵌套虚拟机时,我们需要让虚拟机中处理器对 VT 功能的支持达到透传的效果。

nested 虚拟机嵌套( kvm on kvm ):nested 技术,简单的说,就是在虚拟机上跑虚拟机。

KVM 虚拟机嵌套和 VMWare 原理不同, VMWare第一层是用的硬件虚拟化技术,第二层就是完全软件模拟出来的,所以 VMWare 只能做两层嵌套。 KVM 是将物理CPU 的特性全部传给虚拟机,所有理论上可以嵌套 N 多层。

1、查看一层客户端是否支持 VT

#grep vmx /proc/cpuinfo

查询未果,证明一层 KVM 的虚拟机,并未将宿主机处理器的 VT 功能成功透传。所以,没有对 VT功能的支持,我们不能实现在该层虚拟机中嵌套KVM 虚拟机。
2、在物理服务器上为嵌套虚拟机做准备 — CPU 虚拟化透传

#vim /etc/modprobe.d/kvm-nested.conf
在文件中添加下面语句
options kvm_intel nested=1

在宿主机启用 kvm_intel 模块的嵌套虚拟化功能,并且使透传永久有效

重新加载 kvm 模块

#modprobe -r kvm_intel -r参数:remove掉kvm_intel模块
#modprobe kvm_intel 加载kvm_intel模块

验证是否加载成功

#cat /sys/module/kvm_intel/parameters/nested

在这里插入图片描述
Y —“Y” 表示 cpu 虚拟化透传功能开启

3、编辑需要做虚拟化透传的虚拟机的配置文件

#virsh edit centos7 ( Virtual Machine Name )
<cpu mode='host-passthrough'>
#host-passthrough 直接将物理 CPU 暴露给虚拟机使用,在虚拟机上完全可以看到的就是物理 CPU的型号

4、进入虚拟机中查看cpu是否透传成功

#lsmod | grep kvm

在一层虚拟机中查看cpu是否支持虚拟化

#grep vmx /proc/cpuinfo

猜你喜欢

转载自blog.csdn.net/PpikachuP/article/details/89001688