KVM嵌套虚拟化nested之CPU透传

作者:吴业亮
博客:http://blog.csdn.net/wylfengyujiancheng

嵌套式虚拟nested是一个可通过内核参数来启用的功能。它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化。该特性需要内核升级到Linux 3.X版本 ,所以在centos6下是需要先升级内核的,而在centos7下已默认支持该特性,不过默认是不开启的,需要通过修改参数支持。
启用Nested

# echo 'options kvm_intel nested=1' >/etc/modprobe.d/kvm-nested.conf

卸载模块

# modprobe -r kvm_intel

重新加载模块

# modprobe kvm_intel

查看Nested是否启用成功

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

修改虚拟机cpu的mode

# virsh edit centos7.3
<cpu mode='host-passthrough'>

关闭虚拟机

# virsh shutdown centos7.3

启动虚拟机

# virsh start centos7.3

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

这里写图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码定义了一个名为config_t的结构体,其中包含了四个成员变量:ID、Parame、Battery和Voltage,它们的数据类型分别为uint8_t和uint32_t。这些数据类型是C语言中的固定宽度整数类型,具体的宽度取决于编译器和操作系统的实现。例如,uint8_t表示无符号8位整数,uint32_t表示无符号32位整数。这些类型的目的是为了确保在不同平台上具有相同的宽度,以便在不同的系统上具有可移植性和一致性。 此外,代码中还定义了一个名为Config_Read的函数,该函数接受一个指向config_t结构体的指针作为参数,并返回一个int类型的值。该函数的作用是读取配置信息,并将其存储在传入的config_t结构体中。 以下是一个示例演示如何使用这段代码: ```c #include <stdio.h> typedef struct{ uint8_t ID; uint32_t Parame; uint8_t Battery; uint8_t Voltage; } config_t; int Config_Read(config_t *Parame); int main() { config_t myConfig; int result = Config_Read(&myConfig); if (result == 0) { printf("Config read successfully!\n"); printf("ID: %u\n", myConfig.ID); printf("Parame: %u\n", myConfig.Parame); printf("Battery: %u\n", myConfig.Battery); printf("Voltage: %u\n", myConfig.Voltage); } else { printf("Config read failed!\n"); } return 0; } ``` 请注意,上述示例中的Config_Read函数需要根据实际情况进行实现,以便从某个地方读取配置信息并将其存储在config_t结构体中。相关问题如下:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值